本逆向安全章节是我业余之间编写的,也借鉴了前辈的经验来给大家做一个简单的文字逆向安全教程,欢迎大家讨论和指正,共同学习。禁止非法用途。教程我从最简单的开始给大家做一个简单的讲解d3d 类的3d游戏和fps游戏黑屏、透视等功能。后面有更多的经验分享给大家。
原理:hook DrawIndexedPrimitive和DrawPrimitive绘图函数
GetStreamSource 检索绑定到指定数据流的顶点缓冲区。获取模型索引号
过滤删除一些多余的模型画图,保留人物和玩家怪物的模型。
SetRenderState()渲染状态函数,改变其中的渲染参数,可实现不同的透视效果。
DWORD g_jmp_oldAddr = NULL;
__declspec(naked) HRESULT WINAPI Old_DrawIndexedPrimitive(
LPDIRECT3DDEVICE9 m_pDevice,
D3DPRIMITIVETYPE Type,
INT BaseVertexIndex,
UINT MinIndex,
UINT NumVertices,
UINT StartIndex,
UINT PrimitiveCount)
{
_asm
{
mov edi, edi
push ebp
mov ebp, esp
mov eax, g_jmp_oldAddr
jmp eax
}
}
HRESULT WINAPI MyDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pdevice,
D3DPRIMITIVETYPE Ty