首页
社区
课程
招聘
求教D3D9.DLL为什么没有被游戏进程加载?
发表于: 2010-7-9 20:00 4389

求教D3D9.DLL为什么没有被游戏进程加载?

2010-7-9 20:00
4389
我本来想wrap一下D3D9.DLL给一个3D游戏做点手术,已经掉包成功,3D程序都能被监测。但用IceSword监视一下游戏使用模块,发现连D3D9.DLL都没有调,甚至删除了system32下的D3D9.DLL游戏照样玩。这是咋回事,DX9游戏不都是要调D3D9.DLL的吗?游戏可以确定是Directx9的,名字叫穿越火线。有懂这块的吗?
来张图

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 54
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
现在初步确定,d3d9.dll已经在游戏里自备了,因为我把硬盘中所有的d3d9.dll都替换成我的wrapper,或删除,或改名,都对它没影响。可是d3d9.dll也是受MS版权保护的,有什么技术可以把对一个不开放源代码的DLL的封装起来?
2010-7-10 12:41
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qml
3
直接从资源里加载
2010-7-10 14:53
0
雪    币: 54
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
按照你的思路,也就是说任何的代码都可以以数据的方式载入内存,比如将DLL中的内容做成一个buffer,再将这个buffer所在的页面用VirtualAlloc等API提交,映射至物理内存,最后调用时直接嵌入汇编,push完参数,call一下函数地址,返回eax处理也是可行的。这也就构成了调用DLL的第三种方式。。。但这样的话就导致TX必须修改游戏源代码,把所有D3D9的调用改成汇编,或做成宏什么的。而棒子公司是不可能让TX碰源代码的,毕竟此游戏的外国版本根本不用这样的保护。
2010-7-10 15:19
0
游客
登录 | 注册 方可回帖
返回
//