G
gaiyueyue
Unregistered / Unconfirmed
GUEST, unregistred user!
首先我安装了一个钩子<br>procedure StartHook; stdcall;<br>begin<br> if GetMsgHook = 0 then<br> begin<br> WriteToFile('已经进入starthook');//WriteToFile是我为了调试方便才用的<br>//功能是看看程序是运行到什么时候出错不前进的,它在C盘下生成1.txt<br> GetMsgHook := SetWindowsHookEx(WH_GETMESSAGE,GetMsgHookProc, HInstance, 0);<br> WriteToFile('已经进入安装完starthook');<br> while GetMessage(MsgHook, 0, 0, 0) do<br> begin<br> WriteToFile('已经将机器码写入内存');<br> WriteASM;<br> end;<br> end;<br> end;<br><br>我现在的问题是把代码写到DLL里面之后,用我的EXE文件,上面放一个按钮,按一下就StartHook安装钩子,这样就好用没出现问题,可是当我把这个DLL注入到EXPLORER进程之<br>后用CreateThread(nil, 0, @StartHook, nil, 0, ThreadID)启动StartHook,程序走到WriteToFile('已经进入安装完starthook');这一行就不走了,后面的<br>while GetMessage(MsgHook, 0, 0, 0) do 也不执行,哪位好心人告诉我这是为什么啊,我弄了一晚上了也没找到原因啊?