图4:某修改器通过注入so实现读写内存等功能
二、加速器:
加速器也具有通用性,游戏开发商通常通过使用时间函数来进行相关判断。通过加快或者减慢时间,来达到某一类的效果,例如:体力恢复、竞速类游戏、技能CD等,这类操作严重影响了游戏平衡。常见的加速器有:GG修改器(含有加速功能)、烧饼加速器、叉叉加速器等。
图5:GG修改器修改时间进行加速作弊
下面列举了不同情况下实现加速器的原理:
1. 通用方式:劫持gettimeofday,clock_gettime等时间函数。
图6:某加速器劫持gettimeofday加速
2. U3D引擎:调用U3D引擎提供的函数直接设置时间倍率实现。
3. cocos2d引擎:修改Cocos2D引擎提供的函数实现。
三、虚拟空间:
通常修改器和加速器在使用的过程中需要更高的Root权限以实现对游戏进程进行操作。虚拟空间的出现解决了这一些问题,他能够使游戏进程和外挂进程隶属于同一个用户空间,并直接对游戏进行非法操作,其需要代理系统服务等一类的操作,但这一类操作能够被主流游戏安全厂商所检测。
下面展示了虚拟空间被外挂开发者所利用,实现手机免root也能够使用外挂的方式。
图7:在多开器中运行作弊软件免Root运行
四、修改代码逻辑重打包:
由于游戏引擎各不相同,游戏代码逻辑存在于不同位置,针对不同游戏需要不同的处理方式。
1. mono
mono是Unity运行dll脚本十分重要的组件,而dll脚本存储在 asset/bin/data/managed目录下,外挂分析者能够直接反编译Assembly-CSharp.dll修改代码逻辑进行破解,达到免费购买、增加伤害、攻击加速等非法功能