apk反編譯

針對沒有混淆的android應用,我們可以很方便的做到反編譯查看源代碼以及修改源代碼,主要用到工具爲apktool,dex2jar和jd-gui。


1. apktool

下載地址:https://code.google.com/p/android-apktool/

主要作用爲反編譯apk爲res文件和smali文件,通過修改smali文件然後打包會apk再簽名,我們可以做到修改原apk的資源文件和代碼邏輯。

用法爲

apktool d Settings.apk
可以看到在Settings.apk目錄生成一個新的目錄,包含該apk的所有res文件,manifest文件,smali文件。


2. dex2jar

下載地址:https://code.google.com/p/dex2jar/

主要作用爲反編譯apk爲jar文件,之後可以通過jd-gui工具看到源碼。

用法爲

./d2j-dex2jar Settings.apk

該命令會在Settings.apk目錄生成Settings_dex2jar.jar文件。

3. jd-gui

下載地址:http://jd.benow.ca/

主要作用爲查看jar文件對應的源碼。

用法爲

jd-gui Settings_dex2jar.jar

之後就可以看到源碼。

在ubuntu 14.04 64位系統下,可能會提示找不到找不到libgtk-x11-2.0.so.0 ,安裝方式如下:

sudo apt-get install libgtk2.0-0:i386


針對具體需求,使用的工具會有所不同。

a. 查看apk的res文件,用apktool解包即可

b. 查看源碼實現,用dex2jar工具轉化爲jar文件,再用jd-gui工具查看jar文件即可

c. 修改源apk,則一般會通過apktool解包爲smali文件,同時用dex2jar和jd-gui查看源碼邏輯,方便修改smali文件,之後再通過apktool將修改後的res和smali文件打包回apk,再利用其它工具簽名。

發佈了56 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章