最近接到了一個神奇的Android App開發專案,也就是沒有原始碼的使用者介面修改專案。
這也看出了現在台灣Mobile專案開發的火熱程度{企業竟然接受了不包含SOURCE CODE}的開發條件,一點點的心得感想。
甚麼是APK
APK (全名Android Package)是利用ZIP的壓縮技術將所有軟體執行所需要的檔案打包成一個安裝包裹,如果解開的話會看到這幾個主要的部分:
- XML File:Android 的View與Global軟體設定檔
- Classes.dex:編譯過的原始碼,若使用apktools作解壓縮的話產生的所有的原始碼會被解開成smali,smali檔案是dalvik的assemble檔案。
逆向工程的開始
我們透過幾個簡單的方式記型逆向工程
我們透過幾個簡單的方式記型逆向工程
- 使用ZIP解壓縮APK檔案,以取出classes.dex
- 使用APKTOOL解壓縮APK取出XML File
- 使用JD-GUI反解譯class assemble
- 建立新的Android Project將XML File與classes放進新的專案
- 完成逆向
Content Reference
沒有留言:
張貼留言