toolbox无限时间教程
提示
toolbox是经过混淆的 本教程类名不通用
仅提供思路 别照抄
up是业余玩家 如有错误多多包涵 演示版本 toolbox 5.4.53 Minecraft 32位 1.20.12 ------------------------------------------------------------------ 打开toolbox 随便点击一个高级功能 出现弹窗 使用开发者助手分析界面
拿到"观看广告"文本的16进制id 0x7F09019D
转为小写用mt Dex编辑器在代码中搜索 定位到类d21 0x7f09019d转为十进制是2131296669
d21部分java代码 //点击事件 图中不完整 findViewById.setOnClickListener(new b21(this, aVar, context, findViewById2, findViewById, lvVar)); 追踪到类b21 这是一个很重要的类 b21部分java代码
//图中不完整 Toast.makeText(context, context.getString(2131755202, new Object[]{Integer.valueOf(Math.round(15.0f))}), 1).show(); Toast提示的内容是 您最多只能累积 %d 分钟的高级功能使用时间。 从而得知 这是判断看广告前 时间是不是超过了某一阈值(900秒) bVar.n("internal/premium/remaining_time")则是获取高级功能使用时间 bVar的类型是b 看smali代码可知 类b 为io.mrarm.mctoolbox.bridge.b private static native float C(String str, boolean z); public final float n(String str) { return C(str, false); } 很明显这是native层函数C对外开放了个n函数供调用 由于没实力只能作罢 换个方向 new c21(d21, context, bVar) 新建了个对象 去看看
又发现一个Toast提示 看来b方法是广告加载失败的回调
相比之下a方法和b方法仅少了Toast提示
c方法没有内容
d方法又是什么呢
调用了io.mrarm.mctoolbox.bridge.b中的t方法
public final void t() {
I(900.0f);
}
private static native void I(float f);
900.0f刚才见过是900秒 15分钟 那么我们有理由猜测这是加时15min的方法
调用了d21的g方法
public static int d0 = 0;
public static /* synthetic */ int g() {
int i = d0 + 1;
d0 = i;
return i;
}
对d21类内的一个int变量自增 看不出什么
接下来证明我们的猜想
在b21观看广告的点击事件中调用d方法
d方法并不是静态方法 没有c21对象怎么调用呢
看看这句
((px0) lvVar).b.b(new c21(d21, context, bVar), "premium_ticket", 0);
对象有了吧
smali代码
.line 77
.line 78
new-instance v2, Lc21;
新建c21对象
.line 79
.line 80
invoke-direct {v2, p1, v1, v0}, Lc21;->
时间还能叠加 但是这样太累了 能不能一次多加点 回到io.mrarm.mctoolbox.bridge.b 修改 public final void t() { I(900.0f); } 你大可以把900改大 但没效果 这个函数如果删了只要不清应用数据就没事 这个暂时没什么头绪 晚安