逆战都有什么外挂?
的有关信息介绍如下:
地图透视:不显示游戏中设置的物体,直接看到障碍物背后的玩家。
正常游戏截图:
开启地图透视截图:
实现原理:
外挂修改游戏虚表,在游戏调用函数DrawIndexedPrimitive(地址是0x00D44390)进入外挂模块功能函数,进入外挂模块的地址在该函数头偏移0xa4位置,还原eax中的数据,地图透视功能无效。Hook该函数打印函数调用信息:
正常游戏调用函数:dwFuncAddr:0x054448840,是d3d9.dll中的函数。
开启外挂修改虚表后调用模块:dwFuncAddr:0x0b671792,是外模块中的函数,地址的前4位随着每次模块加载的不同会有所不同,后4位偏移基本是不变的。
下面是外挂修改虚表后进入的外挂模块中的函数,因为基址每次加载都不同,偏移是0x1792。
实现地图透视功能函数:
下面是实现地图透视功能函数调用的sub_b5316ae函数的实现,调用d3d9.dll中的GetStreamSource(0,&pStreamData,&iOffsetInBytes,&iStride),返回iStride的值用于区分目标对象。
下面是实现地图透视功能函数调用的loc_b53170b函数的实现,调用d3d9.dll中的SetRenderState函数。
外挂通过直接读取内存地址就可以获取虚表起始地址,
[[[015fa50c]]+ 0xe4]获取SetRenderState函数地址,
[[[015fa50c]]+ 0x194]获取GetStreamSource函数地址,
[[[015fa50c]]+ 0x148]获取DrawIndexedPrimitive函数地址。
其中是游戏015fa50c全局变量地址。



