首页
社区
课程
招聘
[原创]非静态成员函数定位及HOOK以DirectX内部成员函数为例
发表于: 2016-3-4 16:10 6934

[原创]非静态成员函数定位及HOOK以DirectX内部成员函数为例

2016-3-4 16:10
6934

本方法相对比较通用,以HOOK DirectX 的内部成员函数为例,Dx的DLL,如d3d9.dll ,D3DX9_42.dlll并没有导出API,只导出了部分如Direct3DCreate9,而关键功能函数如DrawIndexedPrimitive没有导出。

以D3DX9_42.dlll的D3XFont类的DrawTextA为例子

   第一步:编写一个程序,调用要HOOK的功能函数,以DX的例子BasicHLSL(路径:\\Microsoft DirectX SDK (February 2010)\Samples\C++\Direct3D\BasicHLSL)为模板,在OnResetDevice函数(选这个函数是因为,改变下设置就可以激活)中添加代码

DWORD dwAddrPtr2=0x11223344; //这个用于CE搜索内存定位(包括只读属性)
    __asm
    {
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
    }
    RECT rect = { 10, 10, 500,200 };
    DWORD DW5=g_pFont->DrawTextA(NULL, "XXXXXXXXXXX", -1, &rect, 0,D3DCOLOR_XRGB(255,255,255));
    __asm
    {
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
        nop;
    }
    DWORD dwAddrPtr3=0x11223345; //用于定位

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

收藏
免费 4
支持
分享
最新回复 (7)
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
我是来膜拜QQ号的
2016-3-4 19:43
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个方法 八错, 感谢分享。
2016-3-4 19:59
0
雪    币: 2325
活跃值: (4862)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
·······为什么不直接下VS 下断调试······!
2016-3-4 21:16
0
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一个程序加载了,d3d9,d3d9_41,d3d8thk,通常情况下HOOK哪个dll优化CPU.
2016-3-6 13:56
0
雪    币: 177
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1通用方法
2CE高效
2016-3-9 19:21
0
雪    币: 177
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
要看你优化哪些地方
2016-3-9 19:22
0
雪    币: 177
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
1通用方法
2CE高效
2016-3-9 19:23
0
游客
登录 | 注册 方可回帖
返回
//