-
-
[原创]非静态成员函数定位及HOOK以DirectX内部成员函数为例
-
发表于:
2016-3-4 16:10
6934
-
[原创]非静态成员函数定位及HOOK以DirectX内部成员函数为例
本方法相对比较通用,以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; //用于定位
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!