我可以实现全局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在注入的主程序退出后,依然还被使用呢?

解决方案 »

  1.   

    难兄难弟,参考我的帖子
    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高手都为啥不出现呢,救命啊
      

  2.   

    试试加上这一句(不知道参数写错没有):
    SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
      

  3.   

    全局HOOK  要设置共享NEI 存保存HHOOK 不然每个进程里有份COPY 你直接UNHOOK关不掉的
      

  4.   


    在UnHookWindowsHookEx(Hook);之前