API HOOK 的dll,不能同时被多个进程装载使用,为什么?
用《windows核心编程》里的例子,在dll中,DLL_PROCESS_ATTACH时,进行SetWindowsHookEx:
g_hhook = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc,0, dwThreadId); //g_hhook放在共乡数据段
当多个进程装载这个dll时候,只有第一个进程中dll起作用。其他的进程会崩溃。
问题点数:20、回复次数:4Top
1 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2005-08-02 16:02:38 得分 0
我有这本书的全部例子代码~~你说的是哪一个??
我看看去先!Top
2 楼zhengle2008(机箱)回复于 2005-08-02 16:18:43 得分 0
书里有个inject的工具,可以把dll注到其它进程里,但那个程序里它把dll注入,做完后马上就卸掉dll了,你改一下,让dll先不要卸掉。
再启动一个这个程序,把dll注另外一个程序,这时候dll不起作用了。Top
3 楼zhengle2008(机箱)回复于 2005-08-02 16:26:51 得分 0
dll你可以随便就用书那个,把"进程中的 dll 都列出"来功能的那个dll是来试试。Top
4 楼qrlvls( 空 气 )回复于 2005-08-03 09:04:52 得分 0
是由于你的代码没有处理好,通过技巧是可以处理掉的
你需要保证区分Dll中的进程相关的和无关的数据访问Top




