各位高人:
小弟遇见这样的问题:
我做了一个dll,此dll是有钩子函数的,可以来记录键盘的输入,然后我通过CreateRemoteThread,WriteProcessMemory的远程注入的方式将此dll注入远程进程,由于有钩子,所以在dll的DLL_PROCESS_ATTACH下用了_beginthread函数来新开一个线程来挂载钩子(不开新线程的话,可能会有问题,我试过),结果是可以正常记录目标进程的输入的,可是在卸载dll的时候遇到了问题.
本来,如果没有钩子,通过CreateRemoteThread方式调用FreeLibrary是可以卸载加载的dll模块的,可是我发现在有开线程挂钩子之后,那样就卸载不了了,而且DLL_THREAD_DETACH也会被调用,影响到DLL_PROCESS_DETACH的调用,现在我的问题就是,对于这样的钩子,到底该如何卸载,是要先unhook钩子吗,还是要先关线程,如果要关,是在DLL_THREAD_DETACH里还是在DLL_PROCESS_DETACH中调用呢?
烦请高人解答....
小弟遇见这样的问题:
我做了一个dll,此dll是有钩子函数的,可以来记录键盘的输入,然后我通过CreateRemoteThread,WriteProcessMemory的远程注入的方式将此dll注入远程进程,由于有钩子,所以在dll的DLL_PROCESS_ATTACH下用了_beginthread函数来新开一个线程来挂载钩子(不开新线程的话,可能会有问题,我试过),结果是可以正常记录目标进程的输入的,可是在卸载dll的时候遇到了问题.
本来,如果没有钩子,通过CreateRemoteThread方式调用FreeLibrary是可以卸载加载的dll模块的,可是我发现在有开线程挂钩子之后,那样就卸载不了了,而且DLL_THREAD_DETACH也会被调用,影响到DLL_PROCESS_DETACH的调用,现在我的问题就是,对于这样的钩子,到底该如何卸载,是要先unhook钩子吗,还是要先关线程,如果要关,是在DLL_THREAD_DETACH里还是在DLL_PROCESS_DETACH中调用呢?
烦请高人解答....
解决方案 »
- 求高手帮忙用MFC做一个简单的音乐播放器 ,说来惭愧啊,这本来是我们的课程设计,但MFC根本就不懂得用 ,而且过两天就要交了 ,也没时间去看书了, 请好心人帮
- 急急急!获得当前屏幕最前面的一个窗口大小(即有焦点的)
- 再问 关于昨天CListCtrl控件显示 字符 个数的问题
- 有关messagebox()
- 如果能及时的得到文本框的内容!
- VC如何生成DLL文件
- 求助:STL->List的Sort()和Find()问题。
- 在用图片横铺标题栏,并将关闭最小化按键用图片换掉!
- 再提一个简单问题,大侠们救命啊
- 别一天到晚写程序,一起研究一下软件产品开发完后的著作权、专利、版权、转让等相关法律问题
- 树控件的小问题
- 初级界面问题!
你要初始化或者执行清理,可以定义类及全局对象,在构造函数中初始化,在析构函数中清理