本逆向安全章节是我业余之间编写的,也借鉴了前辈的经验来给大家做一个简单的文字逆向安全教程,欢迎大家讨论和指正,共同学习。禁止非法用途。教程我从最简单的开始给大家做一个简单的讲解d3d 类的3d游戏和fps游戏黑屏、透视等功能。后面有更多的经验分享给大家。
这节课还是用老掉牙的方法,对上节课完善。这节课目的是:
1.你想你实现的一些功能不想给别人看到
2.优化cpu和GPU
3.这个知识后期做透视做准备
技术讨论QQ:2273545181 Q群:550839408
DrawPrimitive渲染 虚函数,不能根据函数名称获取函数地址 HOOK?
DrawIndexedPrimitive渲染
SetRenderState() 渲染状态
BeginScene开始渲染
EndScene结束渲染
Present显示后置缓冲的动画
HRESULT DrawIndexedPrimitive (
D3DPRIMITIVETYPE Type,
INT BaseVertexIndex, UINT MinIndex,
UINT NumVertices, UINT StartIndex,
UINT PrimitiveCounts);
偏移计算=5F097740-5f040000 = 57740 Loadlibrary
公式: DrawIndexPrimitive函数地址=模块D3D9基地址+偏移
//HMODULE hm = LoadLibrary("d3d9.dll"); //575F0
DWORD addr_real_drawPrimitive = (DWORD)hm + 0x575F0; //挂钩 addr_real_drawPrimitive变量的值就是函数地址
HookDetours(&(PVOID&)addr_real_drawPrimitive, (PVOID)NewDrawPrimitive, GetCurrentThread());