標籤:反編譯 android
概述
Android APK反編譯是個有趣的事情。我們可以對APK反編譯進行漢化破解工作等。
Android APK反編譯主要涉及三個工具的使用,分別是
- apktool
- dex2jar
- jd-gui(即jad)
本文附帶工具整理下載
Android-ApkTool功能: 可以反編譯成smali的中間代碼檔案和可人類友好的XML資源檔如AndroidManifest.xml
項目地址:原地址:https://code.google.com/p/android-apktool/,但是該項目已經搬遷至http://ibotpeaches.github.io/Apktool/
使用說明:
官方文檔地址:http://ibotpeaches.github.io/Apktool/documentation/
項目最新版本為2.0,與1.x版本的使用差異:
Examples of new usage in 2.0 vs 1.5.xOld (Apktool 1.5.x)<span style="white-space:pre"></span>New (Apktool 2.0.x)apktool if framework-res.apk tag<span style="white-space:pre"></span>apktool if framework-res.apk -t tagapktool d framework-res.apk output<span style="white-space:pre"></span>apktool d framework.res.apk -o outputapktool b output new.apk<span style="white-space:pre"></span>apktool b output -o new.apk
下面為具體使用
基本:apktool d testapp.apkDecoding反編碼:$ apktool d foo.jar// decodes foo.jar to foo.jar.out folder$ apktool decode foo.jar// decodes foo.jar to foo.jar.out folder$ apktool d bar.apk// decodes bar.apk to bar folder$ apktool decode bar.apk// decodes bar.apk to bar folder$ apktool d bar.apk -o baz// decodes bar.apk to baz folder構建Building$ apktool d foo.jar// decodes foo.jar to foo.jar.out folder$ apktool decode foo.jar// decodes foo.jar to foo.jar.out folder$ apktool d bar.apk// decodes bar.apk to bar folder$ apktool decode bar.apk// decodes bar.apk to bar folder$ apktool d bar.apk -o baz// decodes bar.apk to baz folder
dex2jar簡介 :把dex檔案轉換成jar檔案項目地址:原地址:https://code.google.com/p/dex2jar/,最新項目地址:http://sourceforge.net/p/dex2jar/使用:文檔地址:http://sourceforge.net/p/dex2jar/wiki/UserGuide/; http://sourceforge.net/p/dex2jar/wiki/Faq/版本:原地址版本為0.0.9.5,新地址版本為2.0要求環境:JDK7
// For Linux, Mac OSX, Cygwinsh /home/panxiaobo/dex2jar-version/d2j-dex2jar.sh /home/panxiaobo/someApk.apk// For WindowsC:\dex2jar-version\d2j-dex2jar.bat someApk.apk
然後可以使用jd-gui查看產生的jar檔案
jd-gui介紹:直接通過jar查看源碼項目地址:http://jd.benow.ca/使用:略
Android APK反編譯相關工具下載及使用