文章來源
i春秋
這段時間大師傅安排了安卓逆向練習。首先 0 基礎沒有代碼開始學起也是可以的,不用太過於執着於”我沒有代碼功底就學不會”,我可以很明確的說,我也沒有多少代碼功底,都是偶爾被大師傅逼着看。但是簡單的也就僅僅能看懂,寫出來又是另一個問題了。有時候我們學習很多東西需要的代碼知識不多,記住一些主要函數,語句就好了,不懂就有道翻譯(很多也就是英語,我英語也不行,也不用想着不懂英語就不能編程什么的。)或百度,用到的時候對着那幾個主要的函數,語句你還能不懂?
00X1:
安卓逆向基礎工具有:
1.AndroidKiller (需安裝JDK)
2.ApkIDE (需安裝JDK)
3.ApkToolkit,APK上上簽
安卓模擬器推薦:
1.夜神模擬器
2.海馬模擬器
這些我們用的工具僅僅是AndroidKiller,模擬器可以隨意夜神模擬器特性就是不卡,方便但是很多不兼容;海馬模擬器,性能穩定但易卡;這里我們選用夜神模擬器。
常用基礎的smali語句函數有:
Const 賦值
return-void返回空
Goto 跳轉
Cond 分支
判斷語句:
if-eq 等於
if-ne 不等於
if-lt 小於
f-ge 大於等於
if-gt 大於
if-le 小於等於
if-eqz 等於
if-nez 不等於
if-ltz 小於
if-gez 大於等於
if-gtz 大於
關鍵詞:
Success成功
Fail 失敗
詳細可以參考:Smali基本語法 - lee0oo0
00x2:
首先想破解一款小游戲需要最先知道它是否加密加殼,因為 0 基礎開始,加密加殼就先不管;然而去打開這款游戲查看是否有充值功能,以及整個流程。分析這款小游戲對於你來說能破解的幾率有多大,如果大那么你是否有這么多的時間去調試測試更改破解,值不值得去破解,再綜合你本身的能力去考慮這件事;如果不行那就先保留下來,再找另一個小游戲去破解。
這里演示的小游戲是“經典瑪麗”,用AndroidKiller查看有沒有加殼,我以在i春秋提供過很多破解工具https://bbs.ichunqiu.com/thread-23270-1-1.html

沒有加殼那么先打開這款apk看看

首先出來的是一個廣告,這里得知是移動應用的,也就是可能存在收費接口也可能是移動的收費接口。
進入游戲我們可以看到這款游戲是存在充值的

點擊“超值裝備禮包”查看

點擊“立即購買”

這里可以很明確的看到是中國移動的收費接口。
這里最簡單的最基礎的就是搜索關鍵詞,關鍵詞在哪?點擊購買再退出的時候就有 比如:

“充值失敗”這就是關鍵詞,我們可以嘗試性的去用AndroidKiller搜索。

“充值失敗”需要轉為Unicode編碼進行搜索 並且跟進這個位置。
一般我們直接看smali代碼很蛋疼所以可以轉為java查看


這樣我們就可以很直觀的看到這代碼是說什么的
前面也提到了 Success是成功 Fail 是失敗,那么這里我們直接把Fail 改成Success試試。
更改需要保存再點擊編譯

原來安裝在模擬器上的原版“經典瑪麗”需要卸載掉 才能安裝修改后的“經典瑪麗”,因為簽名不同。
修改過后的“經典瑪麗”在購買再退出就什么提示也沒但是也沒有購買成功,其實我們改的只是一個分支 $后面有數字的smali文件 其實是分支,那么我們改的時候可能少改了。
那么我們可以報着有殺錯沒發過的心理去修改 直接把全部的“onFail”替換為“onSuccess”

因為簽名都一樣所以這里就不用再去卸載了,直接安裝就好。

好了,這就修改成功了。那么你覺得出現了“充值失敗”不太美觀,這里大家可以自行修改,相信大家也懂怎么修改吧?
好了,那么說到不美觀,一打開的時候出現了兩個移動廣告圖片試試也得去掉?
這里介紹的方法簡單粗暴,因為它是圖片我們不從代碼入手直接刪除這兩個圖片就好。

總結:
多試多練,代碼不懂就多看,英語不行也多看,沒有說代碼基礎,英語基礎一定要達到什么什么程度;不會說不會寫,那么至少能模糊看懂也就夠了。