tags: [‘入门级’]
categories: ‘逆向分析’
# 案例目标
- 去除账号验证
- 去除实名认证
# 环境准备
- MT 管理器 / NP 管理器
- JEB/jadx(非必须)
- 模拟器 / 安卓手机
- root (否)
- 目标 APP
# 破解步骤
# 绕过账号验证
开启 MT 管理器的 Activity 记录功能
启动成功后打开我们需要破解的 APP,他会启动游戏平台验证账号,我们回到游戏就会看到下面的页面。
进入 MT 管理器查看记录,最后的一个活动是 com.txxxxx.pay.sdk.library.TxxAlertDialog$1,那我们从它开始入手。
找到这个类 com.txxxxx.pay.sdk.library.TxxAlertDialog
我们得到 new 它的地方。
进入并分析一下。
搜索一下哪里调用了销毁弹窗,验证通过必定需要销毁,找起来更快。
进入分析一下。
看看哪里还个调用了
这里我验证过了,修改它们即可去除验证。
快速定位关键字 checkLicense = licensed
(不出意外只有一个结果)
然后搜索定位函数 checkLicense
在smali代码中修改对应的值就能去除验证了。
重新签名安装后启动看看效果吧。
# 绕过实名认证
开启 MT 管理器的Activity 记录功能,然后启动 APP 弹出实名弹窗之后回到 MT 管理器,可以看到只有一个 Activity -> com.lixxthgame.abi.UnityPlayerActivity
在 UnityPlayerActivity 中并没发现什么可疑的地方,那就得找新的办法了。
我们来试试新的关键字 “identify”,需要实名认证,估计会使用这个单词。
看看这个 IdentifyHelp 类是干什么用的。
IdentifyHelp 中有个方法 CompareTimeUp18 翻译过来就是 对比年龄到 18(估计是用出生日期和当前时间对比)
看看那些地方调用了 CompareTimeUp18
选择第一个,进入到方法 antiAddication,分析一下。
进入 setBigMan 或 setIdenfity 中
将 isBigMan 和 isIdenfity 的初始值置为 true 即可去实名认证了。
在smali代码中修改对应的值就能去除验证了。
快速定位关键字 LoaclUser{name=
(不出意外只有一个结果)
搜索定位 isIdenfity