Android常用逆向工具+單機游戲破解


android開發環境搭建

我理解的學習路線是首先要掌握和了解常見的工具、搭建環境。然后就是緩慢的積累特征,通過長期的練習使自己進步,通過android逆向課程的學習。常用的工具如下:

android SDK工具包

(1)adb.exe:android debug bridge 安卓調試橋連接手機、模擬器。

D:\AndroidTools\Android_SDK\platform-tools

(2)monitor.exe:安卓設備監視器

D:\AndroidTools\Android_SDK\tools\monitor.bat

adb.exe 用於調試,monitor.exe用於監視

android adb shell命令約等價於linux shell命令

android集成開發的開發環境

(1)Android Studio

(2)IntelliJ IDEA

Android模擬器

(1)原生的模擬器

(2)BlueStacks[藍疊]

(3)夜神

(4)海馬玩

Android逆向工具

(0)集成類工具:jeb、apkkiller

(1)反編譯工具:

baksmali.jar:將dex文件反匯編成smali代碼

smali.jar:將smali代碼匯編生成dex文件(android的可執行文件)

apktool.jar:基於smali、basksmali工具開發的,可以反編譯apk文件成smali,也可以將smali文件回編譯成apk文件,

(2)清單文件解密工具:

AXMLPrinter2.jar:清單解密工具,反編譯apk中的xml文件

APKParse.jar:套用了Apktool中解析xml文件的源碼。

APK15PBParse.jar:APKParse.jar修改而成,修復了原有工具的bug。

(3)APK簽名工具:

signapk.jar:使用apktool生成的apk文件,是不能直接安裝到模擬器或是手機中的,因為沒有簽名就會報錯。

(4)dex轉jar工具

dex2jar:將dex文件轉化為java jar包,因為轉成jar包之后,方便使用JD-GUI工具反編譯成java源碼。

(5)java源碼反編譯工具

JD-GUI:使用JD-GUI打開jar包,可以看到反編譯的源碼。

游戲破解思路

(1)找尋支付成功的信息,獲取支付相關的函數。
(2)將支付成功的smali指令注入到支付失敗的函數中。

操作步驟

(1)打開monitor,點擊游戲中的購買按鈕,抓取到支付的字符串。

(2)在apkkiller轉換編碼為unicode編碼

(3)在apkkiller搜索字符串,然后使用自帶的JD-GUI工具查看源碼。

(4)在源碼中定位到支付相關的函數。payCancel、payFailed、paySuccess

(5)到apkkiller中查找與支付相關函數相關的smali文件。然后smali指令中傳參的常量值記錄下來。

(6)在函數窗口處查找購買失敗的函數(payFailed)、購買成功的函數(paySuccess)的函數傳參值,將兩者對比。

(7)對比出來傳參值的區別后將購買成功(paySuccess)的函數傳參值和購買失敗(payFailed)的函數傳參值相互替換。

(8)將修改后的值Ctrl+s保存后再編譯一遍,得到編譯后的APK放到模擬器中運行就可以達到破解的效果了。

(9)運行效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM