首页
社区
课程
招聘
[旧帖] 如何远程注入DLL里面显示里面对话框问题 0.00雪花
发表于: 2015-9-29 10:05 9194

[旧帖] 如何远程注入DLL里面显示里面对话框问题 0.00雪花

2015-9-29 10:05
9194
本人最近封装了一个游戏DLL,里面做了个对话框界面,想远程注入到游戏里面,用VS2012做的,注入后,用OD查看游戏里面已经有了注入的DLL,但是启动代码里面的对话框确是根本不显示,主要用的CDioag1 dlg;dlg.domal.好像根本就没有执行,但是换上Messagebox却是可以提示,不知为什么,请大神指点,谢谢。本人用的win7 64位系统。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (23)
雪    币: 237
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
应该dll对话框资源问题没处理好。
2015-9-29 10:25
0
雪    币: 55
活跃值: (273)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
使用内存创建一个对话框试试,要不就在dll中 使用类似AfxSetResourceHandle()这样的函数,加载自己的对话框。也可以在dll中创建一个rpc服务(实现进程间通信),自己在写个带对话框的进程,跟注入游戏的dll进行rpc通信,这样就不用在dll里面弄对话框了。
2015-9-29 10:34
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一楼能不能说清楚一点啊,我就是在MFC DLL Library里面添加了一个对话框的资源,然后跟它添加了一个CDialog的类,这样不行吗?
2015-9-29 11:30
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
3楼的有没有现成的资源给参考参考啊,我是菜鸟,你说的内存弄我不是很懂啊,我现在很需要一个能运行的东西参考参考
2015-9-29 11:31
0
雪    币: 112
活跃值: (57)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
6
你先不用注入测试。

你在DLL上,加一个接口, showDlg.
你再写个测试程序,调用你的Dll的接口showDlg, 看看对话框是否能出来。


一步一步排查问题。
2015-9-29 12:05
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我之前遇到这个问题,可能是线程切换的问题~创建一个线程在线程内载入试试~
2015-9-29 12:07
0
雪    币: 5461
活跃值: (1410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
http://bbs.pediy.com/showthread.php?t=196880&highlight=

请参见这个贴子。
2015-9-29 12:32
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
7楼的我用新开了个线程,还是不行啊
2015-9-29 15:15
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
8楼的是钩子技术,这个我在win7 32位的上面可以,在64位上的游戏就hook不了了,不知怎么的
2015-9-29 15:16
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
6楼的我试试看,看行不行
2015-9-29 15:18
0
雪    币: 55
活跃值: (273)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我用SetWindowsHookEx注入64位进程,在dll里面显示对话框,没问题啊,可以给你发代码。如果在注入的dll中显示对话框仅仅是为了执行命令的话,根本不需要对话框,实现进程间通信就可以。
2015-9-29 15:40
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
用钩子普通程序是没啥问题,但是游戏里面有保护,钩子安装上去后,按键根本没有反应啊,我现在想从远程注入这块来解决问题,我试试进程间通信试试看,但是还是不死心啊,还是想做个界面出来方便啊
2015-9-29 15:59
0
雪    币: 55
活跃值: (273)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
加好友啊,一起研究研究,给我发份远程注入代码。都一样的吧?只要能把dll弄到目标进程就可以的。在dll入口函数那儿调对话框,或者弄个快捷键弹对话框应该没问题的。对话框带消息循环的,得在线程里面调。pity_468@126.com  发邮件啊 亲
2015-9-29 16:13
0
雪    币: 55
活跃值: (273)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
HWND hwndDLG = NULL;
hwndDLG =CreateDialog(NULL,MAKEINTRESOURCE(IDD_DLG_MSG),NULL,(DLGPROC)DlgProc);
ShowWindow(hwndDLG, SW_SHOW);
这样也可以弄出来的 试试看啊
2015-9-29 16:32
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
用minihook,很简单的,在DLL里面重新注册#3266
2015-10-4 12:53
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
能不能给我发个代码啊,加QQ,285194116,谢谢了,国庆回家了趟,没及时回复,抱歉
2015-10-8 08:26
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
楼上的能不能讲的清楚点啊,我菜鸟啊,minhook?
2015-10-8 08:27
0
雪    币: 36
活跃值: (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
当非主线程退出后该线程中创建的窗口也会消失,加个循环就好了
参考:http://blog.csdn.net/norains/article/details/2023957
2015-10-8 09:40
0
雪    币: 10
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我做过一个CS打字器,相同问题,在winxp可以显示子窗口,在win7就不能显示.窗口风格用WS_CHILD试试.
2015-10-8 11:32
0
雪    币: 55
活跃值: (273)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
我确定 是你资源没用好,AfxSetResourceHandle()查下这个函数。程序默认会调用自己的资源,使用dll中的资源必须指定dllhandle给程序,mfc的dll,在调用domodule之前用下AfxSetResourceHandle()。例子:http://blog.csdn.net/segen_jaa/article/details/7860404  使用win32的dll有点麻烦。亲,对你有帮助给点分啊帮老衲转正
2015-10-13 18:27
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
dlg->ShowWindow(SW_HIDE);
dlg->RunModalLoop();
dlg是窗口类的实例。
2016-1-21 02:55
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
楼主威武
2016-6-28 14:31
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
#include "DlgControl.h"
CDlgControl* g_pDlgControl = NULL;

if(g_pDlgControl==NULL)
        {
                g_pDlgControl = new CDlgControl;
                g_pDlgControl->Create(IDD_DIALOG_CONTROL,NULL);
                g_pDlgControl->ShowWindow(SW_SHOW);
                g_pDlgControl->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

                CString sMsg;
                sMsg.Format(TEXT("0x%x 创建对话框"),g_pDlgControl);
                OutputDebugString(sMsg);
        }
2016-7-4 14:21
0
游客
登录 | 注册 方可回帖
返回
//