怪物卡車2-3.58 dex驗證破解

用到的工具:AndroidKille,IDA,HxD,Notepad++,Android設備一台
Apk下載地址:https://ppt.cc/fhkjZx
這是未修改的可以下載練習
1.首先檢查apk是否有簽名驗證,開啟AndroidKille使用它裡面的簽名工具,簽名完成後安裝sign.apk,通過這項步驟可以看到沒有簽名驗證可以正常開啟遊戲,為什麼要做這項檢查?因為修改apk完幾乎都是要重新簽名不然無法安裝,如果開發者有加簽名驗證防護然後當apk被重新簽名開啟app的時候就會閃退或跳出盜版提示

2.這時用AndroidKille反編apk在smali資料夾裡添加或修改代碼,回編譯安裝顯示上圖遊戲啟動畫面就閃退了,猜測開發者加了dex驗證只要dex被改動開啟app就閃退
#dex反編譯後就是smali資料夾,smali資料夾回編後就是dex
#就算你沒有改動dex,反編和回編dex這兩個操作在有dex驗證的apk裡也會閃退

3.Ok在上面的簽名驗證和dex驗證的兩項檢查發現該遊戲加了dex驗證現在開始來破解,複製apk反編後的路徑F:\AndroidKiller_v1.3.1\projects\com.tophotapp.madtruck2\Project

4.開啟Notepad++按Ctrl+F,貼上剛剛的路徑然後搜classes.dex,看看有哪些檔案調用classes.dex,可以看到有兩個jar和底下兩個簽名apk時生成的CERT.SFMANIFEST.MF這個都不是我們要改的,有Android逆向修改so經驗的應該都知道從so開始找關鍵因為驗證或者是遊戲的資源幾乎都在so裡,照著路徑把libgame.so複製到桌面


5.開ida把桌面的libgame.so拖進去,底下出現finished就可以開始找關鍵了,按Shift+F12叫出字符串在按Ctrl+F搜classes.dex,把搜到的結果點進去

6.D4340記住這個地址
BNE的16進位:05 D1
BL的16進位:13 F0 D8 FC

7.打開HxD按Ctrl+G搜D4340
BNE改BEQ
BNE:05 D1改05 D0
BL改空指令
BL:13 F0 D8 FC改00 00 00 00
至於為什麼要那樣改?我也不知道ಠ_ಠ隨便亂改改成功的,裡面代碼和執行邏輯沒一個看得懂…

記得保存

8.這樣就完成了,然後把改好的so拉到AndroidKille裡覆蓋沒修改的so,接著回編安裝看效果

最後...今天是2018的最後一天時間過得好快又過一年了,祝!新年快樂^_^
_________________________________

教程到此結束,分享請註明出處