首页
社区
课程
招聘
[求助]win7 64位如何远程注入DLL显示窗口问题
发表于: 2015-9-29 09:02 8837

[求助]win7 64位如何远程注入DLL显示窗口问题

2015-9-29 09:02
8837
本人最近在研究DLL远程注入,想注入dll到一个游戏里面,同时显示封装在dll里面的窗口,用的是win7 64位系统,我在初始化的过程中加入了Messagebox,注入后可以提示,但是后面的dialog->modal确是显示不出来,在网上搜了下,也加入了message的dispatch等功能,还是显示不出来,求大哥帮助,怎么样才能把注入的dll里面封装的对话框资源注入的时候显示出来,谢谢了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 210
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在窗口初始化函数里,开个线程,线程里用  模态  domodal方法显示
2015-9-29 15:38
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个不行啊,我开始时没用线程,后来单独开了个线程,createthread里面opendialog还是不行啊
2015-9-29 15:55
0
雪    币: 210
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我用的是MFC的dll ,那个方法可以,  不知道你用的什么   非模态窗口会一闪而过,速度快了都看不到闪。 模态会一直存在
2015-9-29 16:26
0
雪    币: 32
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
将资源窗口建置为非模态窗口

再将游戏窗口设定为父窗口

如果游戏fps太高 导致窗口闪烁

就hook刷新事件, 一起刷新你的窗口即可
2015-9-29 17:23
0
雪    币: 35
活跃值: (612)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你用模态窗口 会堵塞消息 。。游戏肯定老掉线

一般都是挂钩子 让钩子挂在主线程上 然后再 创建非模态窗口。

看了你另个帖子 说钩子不行 有保护 想远程注入DLL挂在游戏里是吧   因为远程注入是多线程的  执行完毕 线程就停止了 所以窗体闪一下就消失了

你可以加消息循环就不会退出了 而且也不会卡

CMainDlg *pTestDlg = NULL;
BOOL CTestMFCApp::InitInstance()
{
        CWinApp::InitInstance();
        pTestDlg = new CTestMFCDlg;
        pTestDlg->Create(IDD_MainDlg);
        pTestDlg>ShowWindow(SW_SHOW);
        MSG  msg;
        while (GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }

        // AfxMessageBox( "提示测试下 弹窗 卸载DLL");  //因为上边是消息死循环 只有遇到 WM_QUIT 才会消息死循环退出
         if (pTestDlg)
         {
                 delete pTestDlg;
                 pTestDlg= NULL;
         }
        return TRUE;
}

卸载DLL就有点麻烦了  我也暂时无法完美解决这问题  主动退出可以调用
::PostMessage(m_hWnd,WM_QUIT, 0, 0);  可以完美卸载DLL

但如果先关闭被注入的目标程序 那DLL没接收到WM_QUIT消息  那进程就没办法关闭 DLL会一直在。任务管理器也可以看到。
要怎么处理好这个 你自己想想了
2015-10-4 23:49
0
游客
登录 | 注册 方可回帖
返回
//