-
-
[求助]关于远程线程注入DLL后DLL中安装HOOK的问题
-
发表于:
2013-11-9 22:35
7100
-
[求助]关于远程线程注入DLL后DLL中安装HOOK的问题
DLL InitInstance() 中创建个线程用于创建DLL窗口 并在线程中 设置HOOK 用于显示 隐藏DLL窗口下面是代码
BOOL CDLLApp::InitInstance()
{
CWinApp::InitInstance();
::CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)CreatedllWindow,this,NULL,NULL);//创建窗口线程
return TRUE;
}
UINT CreatedllWindow(LPVOID lpParam)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDLLApp *p = (CDLLApp *)lpParam;
pMixSet = new CDIASMIX();
pMixSet->Create(IDD_DLG_SMix); //创键窗口
pMixSet->ShowWindow(Ture);
HHOOK abc;
DWORD tid=::GetWindowThreadProcessId(pSZMdata->gHwnd,NULL); //pSZMdata->gHwnd 为被注入的进程窗口句柄
abc=SetWindowsHookEx(WH_GETMESSAGE,KeyboardProc,theApp.m_hInstance,tid); //设置hook
if (abc==NULL)
{
AfxMessageBox("Hook失败");
}
else
{
AfxMessageBox("Hook成功");
}
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
if(GameHwnd== 0 ||!IsDialogMessage(GameHwnd,&msg) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}
KeyboardProc 回调函数 我就不贴了 就是判断窗口是隐藏就显示 是显示就隐藏
DLL 是通过另一个EXE程序远程注入到宿主进程当中的。
程序一运行到SetWindowsHookEx 的时候就一直重复注入DLL 到进程里。。 我想单个的HOOK 宿主进程的窗口 明显上面方法不行。求指导该SetWindowsHookEx该怎么写才能实现这功能。或者其他方法也行只要实现按键盘某个键 显示或者隐藏DLL窗口。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!