淺談 Android 的逆向工程

Android?

是的,這篇正是要寫有關於 Android 的逆向工程,儘管這也很可能是本站唯一一篇XD

起因

看到放在「Hack」的分類上,便可以得知,是因為想要修改遊戲參數而開始涉略⋯⋯ 提到 Android 的遊戲開發方式,我們可以簡單地分為兩種類型:

  • 以 Java 開發
  • 以 Unity 開發 這篇主要會以 Java 開發的遊戲作為內容分享(因為我想改的遊戲是此類型XD)

先說結論 我目前還沒有修改成功,因為這款遊戲有對 apk 進行混淆的動作⋯⋯

以至於一時之間無法找到我需要的參數來做修改⋯⋯ 不過,就先記錄一下如何走到看得到程式碼這一步!

使用到的工具

  • Apk tool
  • dex2jar
  • jd-gui

Apk tool

apk tool 主要負責將 .apk 拆開來,在反編譯之後,可以看到一堆 .smali 及 resource 的相關檔案, 也是負責將修改完的檔案重新包回 apk 的工具。 而由於我沒有修改任何 Code,所以只有解出 .smali 和 resource,看看裡頭有什麼東西和圖片影音檔而已。

dex2jar 和 jd-gui

dex2jar 的功用在於將 .apk 轉成 .jar,配合 jd-gui 打開 .jar 來探究其 source code 內容是什麼。

流程總結

配合上述的三個工具,大概的流程應該是先以 dex2jar 和 jd.gui 來研究程式碼, 並使用 apk tool 拆開 .apk 後修改 .smali,最後重新打包成一個 .apk 安裝到模擬器或手機之中。 因為和 Android 不熟,所以只能進展到這邊就停下腳步⋯⋯ 希望有經驗的高手們能夠給予一些協助及引導!

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus