打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DLL注入并显示窗口(转)
要实现DLL注入并显示窗口有一非常关键的问题就是通过远程线程注入DLL后,注入线程会成功后退出,如果在这时你做了CreateDialog那这个窗口是一闪而过的。(如果你装了HOOK,他也将是失败的。此时要解决这问题就是在不影响消息循环的情况下停住线程。这时我们想到了用消息循环while(GetMessage...){Dispatch...},或在这个线程上做.DoModal()。网上有人这么实现了。这里单开线程。如果是模态的对不用再建立隐藏窗口了。非模态就要再新的线程中开个隐藏窗口进行DOMODULE()。
void ShowDialog(CTemp *pDlg)
{
//pDlg->ShowWindow(SW_HIDE);
// hWndDlg = CreateDialog(theApp.m_hInstance,MAKEINTRESOURCE(IDD_MAIN),NULL,DlgProc); // 这是做非模态对话框用的。这种情况如果不加处理窗口是显示不出来的。
// hWnd = CWnd::FromHandle(hWndDlg);
// hWnd->ShowWindow(SW_NORMAL);
CMainDlg* dlg = new CMainDlg;
hWnd =CWnd::FromHandle(dlg->m_hWnd);
SetWindowHook();
dlg->DoModal();//用这种模态的就用隐藏窗口进行DOMODAL()了,当建立非模态时下面的是必要的。
UnhookWindowHook();

}
BOOL CToolApp::InitInstance()
{
CWinApp::InitInstance();
CTemp* pDlg=new CTemp;
::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ShowDialog,(LPVOID)pDlg,NULL,NULL);
return TRUE;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
请教个小问题, 跨线程传窗口对象指针,程序崩溃
MFC子对话框建立与关闭
在DLL中使用资源(一)
windows的消息队列与消息循环
VC中模态与非模态对话框的显示与关闭
VC++模态对话框和非模态对话框 | 求索阁
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服