雖說現在都在玩農藥了,但是偶爾玩一兩個原生游戲你會發現里邊植入了廣告,這些廣告彈出的時間不一定,有的直接游戲啟動就會彈出,有的需要過了游戲的某一關卡才會彈出,真的很蛋疼,包括Googleplay的彈窗,看著著實不爽。今天就簡單說下破除這些驗證和廣告的簡單技巧,方式簡單粗暴,但是很奏效。 彈窗:
以上的兩張圖片都是來自于原生游戲中的彈窗,解除這類驗證比較簡單: 在我們反編譯后的smali代碼總直接全局搜索geterrordialog,你會看到如下圖:(PS:本人使用的是VSCode-win32-1.8.0) 我們在GoogleApiAvailability.smali中直接刪掉geterrordialog中的方法體(不要 刪掉最后的v0寄存器),至此,彈窗這塊就解除掉了。 廣告: 接下來我們說廣告的問題,谷歌的廣告基本以全屏的activity加載url的方式載入,也不排除有banner廣告,(即以橫幅的形式顯示在游戲界面)。破除廣告我們就不去看他是怎么實現的了,在這里說一種簡單的粗暴的方式,就是把這個activity直接給他干掉,為啥敢這樣做呢?想一下既然是以url來加載的廣告,那這個app肯定會遇到沒有網絡的情況,沒有網絡怎么辦,難道加載廣告就讓他崩掉?肯定不能這樣嘛,所以我們就放心大膽滴破壞掉廣告這部分即可,大致思路就這樣。怎么知道廣告是哪個activity呢?我們運行adb shell ,將程序調到廣告的頁面,然后我們運行一行命令 dumpsys activity ,查看棧中activity的信息, 找到onresumed ,后邊的即為當前的activity啦。 一般的這類都統一寫成了com.google.android.gms.ads.AdActivity,我們直接在清單文件中刪掉這個類就可以啦。 已上只是粗略的破解方式,大神有更好的方式歡迎交流, 寫的爛,望大家多多包涵,予以指正。