toolbox無限時(shí)間教程
提示
toolbox是經(jīng)過混淆的 本教程類名不通用
僅提供思路 別照抄
up是業(yè)余玩家 如有錯(cuò)誤多多包涵 演示版本 toolbox 5.4.53 Minecraft 32位 1.20.12 ------------------------------------------------------------------ 打開toolbox 隨便點(diǎn)擊一個(gè)高級(jí)功能 出現(xiàn)彈窗 使用開發(fā)者助手分析界面
拿到"觀看廣告"文本的16進(jìn)制id 0x7F09019D
轉(zhuǎn)為小寫用mt Dex編輯器在代碼中搜索 定位到類d21 0x7f09019d轉(zhuǎn)為十進(jìn)制是2131296669
d21部分java代碼 //點(diǎn)擊事件 圖中不完整 findViewById.setOnClickListener(new b21(this, aVar, context, findViewById2, findViewById, lvVar)); 追蹤到類b21 這是一個(gè)很重要的類 b21部分java代碼
//圖中不完整 Toast.makeText(context, context.getString(2131755202, new Object[]{Integer.valueOf(Math.round(15.0f))}), 1).show(); Toast提示的內(nèi)容是 您最多只能累積 %d 分鐘的高級(jí)功能使用時(shí)間。 從而得知 這是判斷看廣告前 時(shí)間是不是超過了某一閾值(900秒) bVar.n("internal/premium/remaining_time")則是獲取高級(jí)功能使用時(shí)間 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層函數(shù)C對(duì)外開放了個(gè)n函數(shù)供調(diào)用 由于沒實(shí)力只能作罷 換個(gè)方向 new c21(d21, context, bVar) 新建了個(gè)對(duì)象 去看看
又發(fā)現(xiàn)一個(gè)Toast提示 看來b方法是廣告加載失敗的回調(diào)
相比之下a方法和b方法僅少了Toast提示
c方法沒有內(nèi)容
d方法又是什么呢
調(diào)用了io.mrarm.mctoolbox.bridge.b中的t方法
public final void t() {
I(900.0f);
}
private static native void I(float f);
900.0f剛才見過是900秒 15分鐘 那么我們有理由猜測這是加時(shí)15min的方法
調(diào)用了d21的g方法
public static int d0 = 0;
public static /* synthetic */ int g() {
int i = d0 + 1;
d0 = i;
return i;
}
對(duì)d21類內(nèi)的一個(gè)int變量自增 看不出什么
接下來證明我們的猜想
在b21觀看廣告的點(diǎn)擊事件中調(diào)用d方法
d方法并不是靜態(tài)方法 沒有c21對(duì)象怎么調(diào)用呢
看看這句
((px0) lvVar).b.b(new c21(d21, context, bVar), "premium_ticket", 0);
對(duì)象有了吧
smali代碼
.line 77
.line 78
new-instance v2, Lc21;
新建c21對(duì)象
.line 79
.line 80
invoke-direct {v2, p1, v1, v0}, Lc21;->
時(shí)間還能疊加 但是這樣太累了 能不能一次多加點(diǎn) 回到io.mrarm.mctoolbox.bridge.b 修改 public final void t() { I(900.0f); } 你大可以把900改大 但沒效果 這個(gè)函數(shù)如果刪了只要不清應(yīng)用數(shù)據(jù)就沒事 這個(gè)暫時(shí)沒什么頭緒 晚安