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

关于Hook DirectX

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

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

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

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

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

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


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

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

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 98
活跃值: (79)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己启动目标程序,使用suspend参数让目标启动后挂起,然后各种插入随你爱好,然后在resume

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