有个好工具办事真是事半功倍,这里使用了GDA3.8是个反编译APK的工具,可以直接将DEX反编译成java。
相关介绍:https://www.52pojie.cn/thread-632104-1-1.html
一、提取APK
游戏直接要用平台安装,不单独提供下载,所以需要使用ADB命令从模拟器内提取出来
二、分析代码
将APK直接拖入工具,很快就反编译完毕了
三、找到检测函数
通过类名判断,还是比较容易就找到了以下片段
这里的readSysProperty就是读取系统相关信息了,这里检查了几个变量
1、gsm.version.baseband 基带信息,不能包含1.0.0.0
2、ro.build.flavor 渠道信息,不能包含vbox
3、ro.product.board CPU型号,不能包含android
4、ro.board.platform 主板平台,不能包含android
5、cat /proc/self/cgroup 检查cgroup文件是否存在
6、ro.board.platform的值必须与ro.product.board相同
前5个检测都不能为空,同时最后suspectCount大于等于2条,否则就会被检测了。
四、针对方案
这5条系统信息,其中gsm的信息修改起来不容易,我们就不改了,根据代码的要求只要小于2条不符合条件就可以通过虚拟机检测,所以我们修改其他4条信息,同时满足ro.board.platform = ro.product.board 即可
五、修改系统信息
1、ro开头的信息是保存在手机的一个文件内,这里要用到RE管理是(文件浏览器),打开 /system/build.prop 文件(注意需要读写权限,否则不能修改)
这里拿雷电的模拟器测试,可以看到有3处里面只有ro.product.board为空,因为ro.product.board和ro.board.platform需要一致所以我们写成一样 aosp-user,保存即可。
2、然后查找下 /proc/self/cgroup 是否存在
好了,这样就满足了4个条件,可以顺利的通过检测了。
注:本文用到软件,可通过链接下载:
1、GDA3.8
http://www.gda.wiki:9090/down/GDA3.80.zip
2、RE文件浏览器
http://acj4.0098118.com/pc6_soure/2019-7/com.speedsoftware.rootexplorer_999496.apk