写在开始
相比于某密的,某鹅的手游保护明显上了一个层级,但是笔者在分析的过程中,发现了还是有较多地方的改进。
注意,本文是基于17年初的版本进行分析。
功能测试
功能强大了很多,包含了ptrace所有线程、三进程保护、字符串加密、文件校验、DLL动态解密、mono动态解密、反修改器、反加速器、反暂停等等…可以看出,功能挺实用的…不过,功能覆盖挺全面,但在涉及上有很多点有逻辑问题,以及有些保护功能反而能加快我们的分析。
详细分析(其实不太详细)
三进程保护、反暂停、反修改器、ptrace:
实现的详细可以参考我之前的一篇文章
http://blog.csdn.net/u011247544/article/details/78248427
说明两点:
1、为什么会用三进程而不是双进程?
目前分析使用三进程的原因可能和GameGuardian修改器有关,该修改器会向ptrace的父进程注入模块解除ptrace,达到可以附加的目的。
2、绕过的思路
实现是通过释放一个可执行文件运行实现的,可以考虑让目标进程无法创建该文件(目前网上其实讲解这部分的手段比较多)。
dll动态解密、mono动态解密:
基于HOOK实现,然后加了一点防dump的手段。
文件校验:
这是一个比较亮眼的功能,原理不复杂,就贴下主要的流程
分析后的思考
其实全局看下来,该保护可以抵御至少百分之八九十的破解者,但对于有一定基础,或者从事相关工作的人群来说,保护的等级还远远不够。缺乏了对破解者思路的认知,只考虑保护了表面的内容,而没有想到保护之后破解者会从哪一面着手进行攻击。攻与防没有绝对,都是相对,应从耦合度、复杂度、随机化、加密强度、隐蔽性等进行多方面考虑。