首页
社区
课程
招聘
关于全屏模式的DX游戏下弹出对话框的思路探讨
发表于: 2009-1-14 13:25 12725

关于全屏模式的DX游戏下弹出对话框的思路探讨

2009-1-14 13:25
12725
DX全屏模式下,想弹出一个非模态的对话框,但是很遗憾的是,DX会在刷帧的时候将弹出的对话框刷掉。
DX7游戏中,貌似可以通过FlipToGDISurface 及CreateClipper等手段可以实现,但是这些函数的调用都需要DX窗口的创建时的参数地址,若在游戏运行后再挂接DLL,仿佛难以实现。小生尝试在一个程序中用CreateProcess()去启动游戏,然后在游戏创建的时候即让其挂起,然后使用 FileMaping 方式注入DLL,由此想截获 DirectDrawCreateEx 、CreateSurface等函数,苦战一月,未果,但此运用在诸多外挂中非常常见,不知各位高手如何做到,万分感激

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 576
活跃值: (1500)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
用VC, C++写挂技术交流群
既然这么多人要学挂,我就建个群吧,方便大家交流一下

    进群只做技术交流,发广告的一律T。

用VC, C++写挂,交流群:65422642,
2009-1-14 22:11
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
好像金山游侠可以做到?
2009-1-14 22:23
0
雪    币: 217
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个貌似n年前网上就有相关文章了啊,你google下呢。
2009-1-14 23:14
0
雪    币: 224
活跃值: (15)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
很想了解一下,感觉象DX与GDI混编问题.
2009-1-15 00:09
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
setparent(game_handle)
2009-1-15 00:30
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
网上流传的,95%都是同一篇文章,利用一种键盘hook加载DLL,然后弹出模态对话框的方式,弹出时候,游戏会被停止,而且还不能保证100%正常弹出
2009-1-15 09:10
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
金山游侠确实可以做到,不光是在DX游戏,还是OpenGL游戏中都可以弹出,弹出时,游戏可以继续运行,猜测金山是做了显卡驱动级的hook....
2009-1-15 09:18
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
先尝试一下,不知是否可行
2009-1-15 09:34
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
阁下的想法大约是想自己建一个窗体,然后把DX绑架过来,以达到去掉DX游戏全屏的效果,这样无论我们怎么弹对话框,都不会被刷新掉了,虽然有点曲线救国,但还是试了一下,发现对于DX游戏不能成功。
2009-1-15 09:48
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
继续等待高人指点```
2009-1-15 09:49
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
继续期待···
2009-1-15 16:08
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=;]...[/QUOTE]
我也想知道,就和那些显示fps的软件一样,说白了就是怎么hook dx
2009-2-3 04:13
0
雪    币: 93
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
我正在研究,貌似和COM相关,目标是实现像金山游侠一样通用的智能弹出技术,有消息就通知大家~

另外金山游侠已经老了,不是所有游戏都能弹出,有兴趣的可以逆向一下他的代码。
2009-2-3 09:55
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
尝试一下窗口置于最高层
2009-2-3 09:59
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
1.通用方式
hook DX再用DX在游戏里画出来就行了,哎~不能用标准控件,不过画出来后可以通过一些小技巧~~~~
2.特殊方式
显卡XX大法!
3.取巧
多数游戏只要hook DX处理好层叠问题,然后暂停其线程,标准GUI法弹出一个框框~~
2009-2-3 14:30
0
雪    币: 93
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
我在研究第一种,想用CEGUI方便点。唉。
楼上的第三种方法原理是不是必须暂停其线程让D3D不刷屏了?“处理好层叠问题”的意思是不是Hook后创建一个置顶的覆盖层?然后在该层创建GUI?放点详细原理吧.......
楼上大侠留个Mail,我好向你讨教几招啊。
2009-2-3 17:16
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
见过一个外挂在DX里使用GUI窗体的,不过应该不是"弹"出,不知道怎么搞的
2009-3-19 13:39
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
19
三种方式中的某种~~
反正都是GUI~~弹出和使用效果上一样,都是在游戏界面里的~~
2009-3-19 14:33
0
雪    币: 1
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我可以作到 QQ:19699100
2009-6-4 21:08
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
可以弹出....

键盘钩子加载的DLL,此时是属于游戏窗口线程...

弹出是肯定可以弹出的,当弹出的对话框获取焦点,游戏就停住...

可以另开一条线程来弹出对话框就可以了..
2009-6-4 22:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
到hack.gameres.com学习学习吧,曾经做过一个,Hook,Hook,Hook 呵呵
2009-6-4 22:20
0
雪    币: 287
活跃值: (18)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
不知道楼主是否实现了这个功能,如果实现了告诉我一声好吗,我也想实现这个功能
2010-1-18 16:18
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
directx是基于COM架构的
2010-1-18 21:35
0
雪    币: 178
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
................................................................................beginthreadex
2010-1-18 21:45
0
游客
登录 | 注册 方可回帖
返回
//