Einzelnen Beitrag anzeigen

Scorpion3000

Registriert seit: 18. Apr 2004
47 Beiträge
 
Delphi 7 Enterprise
 
#1

uallCollection und shell32.dll

  Alt 15. Feb 2006, 14:27
Hallo Leute!

Ich hab mir die uallCollection mal runtergeladen. Ich möchte die ShellExecute funktion gerne hooken. Leider liefert mir die GetModuleHandle('shell32.dll') immer null zurück bzw dann GetLastError = 126. Wenn ich die Dll über LoadLibrary lade und dann
an HookCode übergebe ändert sich nichts. Ich kann weiterhin ShellExecute aufrufen

Delphi-Quellcode:
   h3:= GetModuleHandle('shell32.dll');
   if h3 = 0 then
      h3:= LoadLibrary('shell32.dll');
   if h3 > 0 then begin
      //ShellExecuteA
      @old_ShellExecuteA:= GetProcAddress(h3, 'ShellExecuteA');
      if @old_ShellExecuteA <> nil then begin
         if not uallHook.HookCode(@old_ShellExecuteA, @My_ShellExecuteA, @Next_ShellExecuteA) then
            ShowMessage('ShellExecuteA Error '+inttostr(GetLastError));
      end
      else
        ShowMessage('ShellExecuteA: error prt = nil');
      //ShellExecuteW
      @old_ShellExecuteW:= GetProcAddress(h3, 'ShellExecuteW');
      if @old_ShellExecuteW <> nil then begin
         if not uallHook.HookCode(@old_ShellExecuteW, @My_ShellExecuteW, @Next_ShellExecuteW) then
            ShowMessage('ShellExecuteW Error');
      end
      else
        ShowMessage('ShellExecuteW: error prt = nil '+inttostr(GetLastError));
   end
   else
      ShowMessage('"Shell32.dll" error h3 <= 0 '+inttostr(GetLastError));
  Mit Zitat antworten Zitat