Android逆向之旅---手遊「狂野飆車極速版」內購破解教程

編碼美麗發表於2018-04-09

感謝「許江渭」同學投稿,也歡迎廣大安全逆向愛好者積極投稿,分享不僅是一種精神也是一種快樂!


好久沒投稿了,主要是最近沒學到什麼新的東西,也比較忙,今天主要是想寫個so檔案在ida中的跳轉指令是如何生成的,就拿一個手遊例項來講,以我的習慣是,如果拿到一個apk檔案,首先就是先丟進Android killer反編譯,然後重新打包,再執行遊戲!


為什麼不是先安裝呢?主要是因為如果安裝了,然後進行遊戲,經過一堆新手教程,看到要破解的內容了(比如要修改金幣,或解鎖關卡),這時候再去反編譯,想要重新安裝的話,就無法覆蓋安裝了,又要過一堆新手教程才能觸發那個點,所以就是先反編譯,這是我的習慣,下面進入正題:

 

一、需要的工具

Android killer

IDA

010Editor

計算器(Windows自帶)

手機

 

二、逆向分析

還是和往常一樣先把apk丟進Android killer反編譯,安裝之後發現是手機螢幕一直是黑屏,猜測這個apk可能是做了手腳,還是以我以往的步驟,回退一步,使用四哥的kstool 先 hook簽名試試。關於kstools說明:Android中一鍵爆破簽名工具;安裝之後又是黑屏,這就哇塞了,好吧,也有可能這個遊戲本身就是不相容我的手機,安裝原版的試試,可以進

640?wx_fmt=png&wxfrom=5&wx_lazy=1

那就可以非常確定這個遊戲是真的做了防護。過了簽名驗證還是沒用這就操蛋了,因為個人習慣,我都是先試了所有的方法之後沒轍了,再去看看日誌有沒有什麼發現,這裡還是按照我的習慣來,那就把原包直接重新簽名試試。安裝後,竟然也可以執行,這樣看來有可能對dex檔案做了完整性校驗,這種情況就很難辦了,可能是驗證.dex的MD5值,或者xxx,各種校驗.。既然直接重新簽名可以執行,那我就改改.so檔案試試,(這裡是要破解內購,國內的很多遊戲基本上內購都是從smali層入手,我們這裡就不從smali層入手了,由於上面做了一堆校驗,這裡就先放棄去找smali中的校驗了(也有可能在別的地方校驗))。我們解壓這個apk檔案,找到lib\armeabi-v7a目錄下最大的那個.so檔案

640?wx_fmt=png

用ida載入後,如果smali層要跟native層互動的話,肯定有要以java_xxxxx為函式名,這裡我們直接在Export欄搜尋:pay 試試,如下圖:

640?wx_fmt=png


果真有一堆跟smali層互動的支付函式,這裡我們點選最後一個函式進去看看

640?wx_fmt=png

640?wx_fmt=png 

640?wx_fmt=png

從上上上圖中我們可以看到支付失敗和支付成功的邏輯差不多,就只有一個點是不一樣的,那這個地方很大可能性就是起到失敗和成功的關鍵,我們先假設smali層的支付會跟native層的這些函式互動,那我們就直接把PayFailed中的那個關鍵跳轉也改為和PaySuccess一樣,接下來就是關鍵的東西來了,會涉及到一些公式。

640?wx_fmt=png

 

計算公式: (B-(A+8))/4;以上面為例:(22B640 - (37F15C + 8)) / 4 = FFFFFFFFFFFAB137;得到結果後,取最後6位,即:FAB137;再倒序,得到:37B1FA + EB

 

按照這個公式,我們就把PayFailed中的那個改過來,都是跳轉到sub_22B640,具體怎麼算就按照上面那個公式來算,算出來之後使用010Editor編輯器,根據偏移地址把指令改過來

640?wx_fmt=png

最後改完之後應該是這樣的,如下圖:

640?wx_fmt=png

不要忘記這裡還有些支付方法(第一,二,三條),也順手把他改過來,套路跟上面一樣

640?wx_fmt=png

 

改完之後,替換原來的那個.so檔案,重新打包,簽名,執行遊戲。 哈哈哈,成功!

640?wx_fmt=gif


嚴重說明

本文涉及到的遊戲樣本和破解後的apk檔案可以去小密圈自取,為了安全考慮不進行公開,希望大家利用本文技術作為研發目的,絕不可以用於非法目的,否則後果自負與本文作者無任何關係!點選立即進入小密圈

 

三、總結

這裡主要講到跳轉指令是怎麼生成的,和利用一些關鍵詞去修改,這只是我的一些思路,如果你有搞怪的方法,還請留言一起探討下,最後還是那句:以上只是用來技術交流,如果您使用該已經破解的遊戲用於任何非法用途,均與本作者無關。

 

手機檢視文章不方便,可以網頁看

http://www.520monkey.com



《Android應用安全防護和逆向分析》

點選檢視圖書詳情

640


長按下面

相關文章