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));