游戏安全实验室 首页 外挂分析 查看内容

逆战外挂之地图透视外挂透视功能实现分析报告

发布于:2015-11-2 14:31   |    213178次阅读 作者: 管理员    |   原作者: TP

 

外挂版本:逆战地图透视sp1

 

功能描述:

   地图透视:不显示游戏中设置的物体,直接看到障碍物背后的玩家。

   正常游戏截图:

 

开启地图透视截图:

 

实现原理:

外挂修改游戏虚表,在游戏调用函数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全局变量地址。

 

*转载请注明来自游戏安全实验室(https://gslab.qq.com

分享到:
踩0 赞5

收藏

下一篇:逆战外挂十字准心功能实现分析报告

相关阅读
最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部