2013年12月21日 星期六

[HACK] Android APP hack

Android 平台上的程式使用 Java 程式語言。 Java 編譯出來的 .class 檔其實是給 JVM 看的 Byte code ,而其實 Android 所編譯出來的 class 檔會再經過編譯轉換成給 Dalvik VM 看的 byte code,也就是我們會在 apk 檔案中看到的 classes.dex 檔案。

在 hack 的過程中,學習軟體架構、瞭解系統如何運作是一個重點。另外一個重點則是:知己知彼,百戰不殆。知道人家如何破解,才能夠知道該防禦什麼。

首先,工欲善其事,必先利其器。處理 .apk 檔案的過程中需要一些輔助工具:
1. 解壓縮軟體。用來打開 .apk 包
2. apktool。用來做 .apk => .smali, .smali => .apk 的轉換
3. Dex2jar。用來將 classes.dex 轉換成 classes.jar,以及重新打包 .apk 之後用來做簽章處理
4. JD-gui。用來將 classes.jar 解析成 .java



※此篇文章僅供學術交流,嚴禁轉載及引用或做其他用途※
※使用本文章之任何技巧所造成的任何損失請自行負責※
以最近在玩的 Epic Defense 作為處理範例。目標是,希望把賺錢的速度變快一點
[ 操作步驟 ]
1. 下載該遊戲的 .apk 檔

2. 使用 7zip 解壓縮 .apk,取出 classes.dex

3. 使用 dex2jar 套件將 classes.dex 轉成 .jar
# d2j-dex2jar.bat classes.dex

4. 使用 JD-gui 大致搜尋一下要修改的位置 (JD-gui 吃 .jar 檔)

5. (可略) 如果受不了 JD-gui 的搜尋功能,可以用 JD-gui 匯出所有的 .java 檔,再用自己習慣用的工具來查找










6. 找到目標程式行之後,記住附近幾行的關鍵字。 EnemyHandler.java, gold, addGold, addStones

7. 使用 apktool 重新解開 .apk 包
# apktool.bat d input.apk 

8. 開啟 EnemyHandler.smali 檔案,根據關鍵字查找

9. 接下來... 惡補一下 .smali 語言格式,目標是讓錢跳快一點,所以預計要做的處理是:讓原本賺的錢 * 100
修改如下: (改完記得存檔)
-L 536: .locals 12
+L 536: .locals 13
+L 863: const/16 v12, 0x64
+L 864: mul-int/2addr v9, v12

10. 使重新打包成 .apk

11. 進行簽章  (結束)



[ Reference ]
3. JD-gui



2 則留言:

Deng Deng 提到...

請問能再上傳一次 apktool 嗎~
還有您下面那個關於神魔之塔 ACS 偵測那個網站並沒有提供密碼,請問能提供一下密碼嗎~可以的話請寄信給我謝謝^^

匿名 提到...

Coin Casino Review Canada - Bonuses & Free Spins 2021
➤ No Deposit งานออนไลน์ Bonuses ☑️ Mobile ✚ Fast Payouts ☑️ 메리트 카지노 쿠폰 Secure Payments ⚡ Secure Payments ☑️ Fast Withdrawals ⚡ Fast Payouts! 인카지노