Android反編譯:反編譯工具和方法
前言
開發過程中有些時候會遇到一些功能,自己不知道該怎麼做,然而別的軟體裡面已經有了,這個時候可以採用反編譯的方式,解開其他的程式,來了解一些它的做法,同時啊,還可以借鑑別人的軟體結構,資原始檔,等等,哈哈。那我就來講解一些關於反編譯相關的知識,主要分三篇,第一篇介紹反編譯的工具和方法,第二篇,介紹smali的語法,第三篇介紹如何防止反編譯,主要通過這幾篇文章,瞭解如何去做反編譯和程式碼加固。
工具
apktools-目前最強大的反編譯工具
輕鬆反編譯apk,解析出資原始檔,xml檔案,生成smali檔案,還可以把修改後的檔案你想生成apk。
支援windows,linux,mac。
下載地址:https://code.google.com/p/android-apktool/downloads/list 請自備梯子
dex2jar
將apk中的dex檔案轉換成為jar檔案,很多人不會看smali檔案,還是看java類檔案比較舒服,這個時候可以藉助這個工具來轉成java,也是支援windows,linux,mac。
下載地址:http://code.google.com/p/dex2jar/downloads/list
jd-gui
檢視jar檔案,基本可以看到Java Class檔案了,也是支援mac,windows,linux。
下載地址:http://jd.benow.ca/
apktool的命令列綜合工具推薦 apktool plus
其實是別人寫的一個工具,集合了apktool的功能,另外還支援給apk簽名。最新版本是v9update6,只支援windows系統。
下載地址:http://dl.dbank.com/c0jndlkbu4#
進行反編譯
使用apktools
在apktools目錄下執行以下命令
./apktool d pathtoapk outdir #mac linux
apktool.bat d pathtoapk outdir #window
這樣就可以反編譯成功了,可以檢視其中的資原始檔,smali檔案,當然有的app進行了特殊處理,不是全部可以反編譯的。
同時apktool還可以對反編譯後的檔案逆向成apk檔案,格式如下。
./apktool b apppath outpath
逆向後的檔案要是無簽名的需要先簽名才可以安裝。
使用dex2jar
apk檔案本身其實就是一個zip壓縮包,先講apk改成一個.zip檔案解壓後得到一個classes.dex。到dex2jar的目錄,執行以下命令.
./d2j-dex2jar.sh pathtoclasses.dex #mac linux
d2j-dex2jar.bat pathtoclasses.dex #wind
之後會生成一個jar檔案,用jd-gui開啟就可以看到其中的java程式碼了。
其他
其實我們使用的反編譯也就這些足夠了,通常很多時候無法獲取很多的程式碼,畢竟人家也有措施應對的。
相關文章
- android 反編譯Android編譯
- java反編譯工具Java編譯
- android反編譯工具總結Android編譯
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- Android 反編譯指南Android編譯
- .net反編譯工具ILSpy編譯
- android 防止反編譯的若干方法Android編譯
- Java編譯與反編譯Java編譯
- Android反編譯和程式碼混淆Android編譯
- Android反編譯工具Apktool淺析Android編譯APK
- Android反編譯工具ApkTool的使用Android編譯APK
- 反編譯apk編譯APK
- 使用ilasm 和 ildasm編譯和反編譯工具對DLL檔案修改ASMLDA編譯
- Android反編譯:smali語法Android編譯
- 如何反編譯Android 5.0 framework編譯AndroidFramework
- 關於Android APK反編譯AndroidAPK編譯
- Reflector(.Net的Dll反編譯工具)編譯
- 反編譯 iOS APP編譯iOSAPP
- Java反編譯工具使用對比,最好用的Java反編譯工具 --- JD-GUI、XJadJava編譯GUI
- Java 反彙編、反編譯、volitale解讀Java編譯
- Android反編譯和微信機器人初探Android編譯機器人
- android 反編譯APK取原始碼。Android編譯APK原始碼
- 7 款開源 Java 反編譯工具Java編譯
- 7款開源Java反編譯工具Java編譯
- jad反編譯工具的那些事編譯
- [轉]andriod的apk檔案相關的編譯反編譯工具APK編譯
- 反編譯系列教程(上)編譯
- 反編譯系列教程(中)編譯
- Eclipse配置反編譯Eclipse編譯
- 小程式反編譯教程編譯
- 安卓反編譯詳解安卓編譯
- Java反編譯器剖析Java編譯
- jive論壇反編譯編譯
- 反編譯技術探究編譯
- c#程式反編譯C#編譯
- Android的反編譯(佈局植入篇)Android編譯
- Android APK反編譯技巧全講解AndroidAPK編譯
- android反編譯相關命令總結Android編譯