一、系统环境
OS: Windows_NT x64 10.0.19045
python:3.8.10
Node.js: 18.17.1
frida :14.2.14
objection:1.11.0
vscode: 1.87.2
device:nexus 5x-7.1.2
二、详细分析
前言:
通过界面文字可以发现 flag 要通过抽奖获取,点击十连抽之后大概率是无法抽到flag的,并且要等待很长时间后才能再次抽奖,很明显面对这种应用直接上工具盘它
正文:
应用没加壳,使用 jadx 打开后看到里面有两个 Activity,WishActivity和FlagActivity
两个Activity的主要逻辑都比较简单,WishActivity用于抽奖判断,FlagActivity用于 flag 计算
# 应用启动后就会启动定时器线程对抽奖次数进行累加
public int[] f2496o = {10, 0, 0};#10,0,0分别表示可抽奖次数,已抽奖次数,增加抽奖次数倒计时
/* renamed from: p */
public int[] f2497p = {1, 2, 4, 8, 16, 32, 64, 128};#增加抽奖次数每次倒计时
/* renamed from: q */
public Timer f2498q = new Timer();
/* renamed from: r */
public Runnable f2499r = new Runnable() { // from class: b.b.a.b
@Override // java.lang.Runnable
public final void run() {
WishActivity wishActivity = WishActivity.this;
TextView textView = (TextView) wishActivity.findViewById(R.id.tvResStatus);
int[] iArr = wishActivity.f2496o;
if (iArr[2] > 0) {
iArr[2] = iArr[2] - 1;
} else {