我使用远程注入向目标进程注入了一个DLL想在目标DLL的初始化中安装一个钩子...问:如何获取DLL所在进程的主线程, 有啥办法? 问:钩子必须安装在主线程上吗?我自己开一条线程让其马上运行,然后将钩子安装在我自己的线程上,可行吗?谢谢!!!新手。。打扰大家了!
解决方案 »
- webbrowser控件如何获取打开的URL
- ActiveX 如何重载方法
- 请教:WINDOWS下SOCKET实现文件传输SEND ERROR???
- 我使用我机器上的VC,在按钮上写汉字时汉字的表现形式是"??"?我将dialog的Properties中的language设为Chinese(P.R.C)了,这是怎么回事?
- 远程桌面最小化后,视频图像无法显示
- 在托管c++中怎样把String转换成char*?
- 何解
- 谁能讲讲并口通讯在Windows下的实现
- 请问怎么重新绘画?
- 菜鸟问题!读取.ini文件
- 江湖救急,Inno Setup打包工具,点击安装文件检测此文件是否已经打开(顶着有分)
- CAsyncSocket 服务端Close问题
不知道你说的是不是安装钩子函数SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId)最后两个参数的问题
比如说在某个窗口上安装钩子,
HWND g_Hwnd =::FindWindowEx(NULL,NULL,"窗口Class",NULL);DWORD g_dwThreadId;
GetWindowThreadProcessId(g_Hwnd, g_dwThreadId); //返回值存放在g_dwThreadId中
或者把返回值放入DWORD PID中:
DWORD PID=GetWindowThreadProcessId(g_Hwnd, g_dwThreadId);HINSTANCE hDll = ::GetModuleHandle("xxxx.dll");接下来就可以只在你想HOOK的那个窗口安装钩子了(这里解释一下,比如钩子函数中使用的是键盘Enter,当按下Enter怎样怎样,这里的意思是只有在这个窗口上当按下Enter才怎样怎样)
HHOOK g_hKey =SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hDll,PID);可能我说的不是你想要的哦