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