我可以实现全局HOOK API,但卸载HOOK却出现卸载不完全的问题,即DLL还被使用着.
我是通过注入DLL到目标程序然后再挂钩子,在DLL里,我有一段退出的卸载钩子的代码
initializationfinalization
API_HookDown;
其中
procedure API_HookDown; stdcall;
begin
UnHookWindowsHookEx(Hook);
if @OldCreateRemoteThread <> nil then
RepointFunction(@MyCreateRemoteThread, @OldCreateRemoteThread);
end;不知道还差什么地方没有做好,导致DLL在注入的主程序退出后,依然还被使用呢?
我是通过注入DLL到目标程序然后再挂钩子,在DLL里,我有一段退出的卸载钩子的代码
initializationfinalization
API_HookDown;
其中
procedure API_HookDown; stdcall;
begin
UnHookWindowsHookEx(Hook);
if @OldCreateRemoteThread <> nil then
RepointFunction(@MyCreateRemoteThread, @OldCreateRemoteThread);
end;不知道还差什么地方没有做好,导致DLL在注入的主程序退出后,依然还被使用呢?
http://topic.csdn.net/u/20080927/16/421ccb51-f91f-46de-b47b-ef512cccedd7.htmlhttp://topic.csdn.net/u/20080926/11/b2d612c0-8ec7-4022-a6ce-db0f2884cf6c.html?949073249一起等待答案吧。
真不知道,咱们Delphi论坛到底Hook高手都为啥不出现呢,救命啊
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
在UnHookWindowsHookEx(Hook);之前