某讯TXX安全组件分析(一)

前几天分析某U3D写的游戏,发现了一个很常见的安全组件,这东西功能还是比较强大的,而且也见过很多次了,每次均让我失手,这两天抱着死缠烂打的心态就怼了一波,仅仅对【去年的某个旧版本】的功能进行分析,本文不包含任何直接【修改、欺骗】安全组件的行为,而且新版本有很大的不同,仅供大家学习与交流。

众所周知,U3D游戏无非就是通过修改脚本来达到作弊的目的,所以一些厂家也会想法设法保护自己的核心部分,由于大多数游戏公司没有开发安全套件的实力,只好使用一些惯用的手段,如接入第三方安全加固或安全组件。

我接触的这款游戏就包含了某训的安全组件tersafe。

相信不少朋友都知道这家公司是谁,贵公司在PC平台上的业绩怕是众所周知,如今把自家产品移植到安卓平台上,并搞成了平台,允许第三方接入,上报大量的数据到自家平台,其实目的也是很明确的,恶心的话就不多说了,大家都懂。

首先用DnSpy打开Assembly-CSharp.dll

结果提示这并不是一个有效的PE文件,那么就用老套路,直接怼libmono.so

既然都接入第三方平台了,我就不信你有实力自己重写mono不是?

void __fastcall mono_image_open_from_data_with_name(int a1, int a2, int a3, int a4, int a5, int a6, char a7, int a8)
{
    mono_image_open_from_data_with_name_0(a1, a2, a3, a4, a5, a6, a7, a8);
}

mono_image_open_from_data_with_name_0肯定是自己定义的东西了。

还原算法(加密/解密)

其实就是位运算,我这里写了一份C#的。

MonoScriptHelper

注意,还原过的dll依旧没办法直接在反编译工具里面检查, 如图修改.net的元信息即可。->BJSB

另外一种办法是直接dump,效果也比较好,直到今天依旧是通杀状态,推荐使用这种办法获取脚本。

但是修改并且加密回去后,发现游戏可能正常启动,点击登陆就会提示连接服务器失败,这显然是有问题的,而问题就出在了安全控件上,下一篇会放出对手机TP的功能的一些分析,希望感兴趣的朋友能够一起讨论。

发表评论

电子邮件地址不会被公开。 必填项已用*标注