首页
社区
课程
招聘
关于Hook DirectX
2012-8-21 09:29 15845

关于Hook DirectX

2012-8-21 09:29
15845
--------------
背景
--------------

鄙人在半月前接受任务,开始调研如何抓取其他程序例用DirectX(以下称DX)的overlay输出的图像。

--------------
方案 & 实现
--------------

经查资料,自己确定的方案为:使用Hook技术,对DX相关接口进行拦截,进而得到接
口指针,然后再得到虚函数表。再跟据实际情况将虚函数表中的某函数地址替换为自
己的函数地址。

--------------
 问题 
--------------

目前调研几近完成,但美中不足的是,我写的程序必须先于目标进程启动。为达到注入
目的,我在程序中大张旗鼓的安装了一个的全局钩子。如果目标进程启动时,我还没有
安装钩子(为了注入目标进程),那么是没法Hook DX函数的。如何解决?请高手说
说思路。


--------------
相关 
--------------

文字描述可能有些抽像,又不例贴代码。
通常,我们做API Hook, 将替换的函数写于一DLL内,然后DLL内再安装一个全局钩
子(如WH_SHELL),这样,其他进程启动时,这个DLL也就“自动”注入到这个进程。
不过,前题也同样是,我们先安装了DLL里的全局钩子。这种请况跟上述我描述的问题,
其实是相同的。

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

收藏
点赞0
打赏
分享
最新回复 (9)
雪    币: 108
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bakurise 2012-8-21 09:53
2
0
自己启动目标程序,使用suspend参数让目标启动后挂起,然后各种插入随你爱好,然后在resume

或者各种进程监视,发现目标后先suspend目标,插入了再resume
雪    币: 962
活跃值: (1536)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loqich 2012-8-21 15:46
3
0
后启动可以Hook DX啊。。很简单的,自己先创建一个d3d对像,确定函数地址,再hook就可以了
雪    币: 258
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
zhangluduo 1 2012-8-21 22:55
4
0
感谢楼上的思路,我试试先.
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
viphack 4 2012-8-21 23:06
5
0
HOOK 做透视?
雪    币: 1275
活跃值: (41)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
suiyu 2012-8-22 17:32
6
0
后启动也是可以的,Hook CBT钩子,在激活的时候进行函数的替换!很多D3D,在游戏切换的时候会有ReSet等之类的调用!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sssa2000 2012-8-24 00:27
7
0
伪造一个 fake_d3d.dll,内部实现所有d3d的接口。
雪    币: 40
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
冷月无风 2013-8-15 18:18
8
0
这个 不错  很感兴趣 可否联系下··
雪    币: 46
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
永驻零一 2013-8-15 18:33
9
0
没接触过
雪    币: 114
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqlinhai 2013-8-15 18:44
10
0
原来是挖坟的,无语了。。
游客
登录 | 注册 方可回帖
返回