淺談 Android 的逆向工程

Android?

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

起因

看到放在「Hack」的分類上,便可以得知,是因為想要修改遊戲參數而開始涉略⋯⋯

提到 Android 的遊戲開發方式,我們可以簡單地分為兩種類型:

  1. 以 Java 開發
  2. 以 Unity 開發

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

先說結論

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

以至於一時之間無法找到我需要的參數來做修改⋯⋯

不過,就先記錄一下如何走到看得到程式碼這一步!

使用到的工具

  1. Apk tool
  2. dex2jar
  3. 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 不熟,所以只能進展到這邊就停下腳步⋯⋯

希望有經驗的高手們能夠給予一些協助及引導!

相關參考資料

  1. [Android] 人人都會的 apk 反編譯
  2. [教學] 手機遊戲 apk 檔修改基礎介紹與思路

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s