Android APK反編譯

主要目的

反編譯APK的目的主要是用于學習,查看代碼,了解思路,也可以用于了解自己的應用缺陷。

工具

反編譯工具 apktool,dex2jar,jd-gui,Jadx,ClassyShark,反編譯工具比較多,目前只介紹這幾款工具,一般是前面三款工具配合使用,網上很多工具其實就是對這三款工具進行的一個包裝。

先介紹apktool,dex2jar,jd-gui這三款工具,也是我最開始接觸的反編譯工具,流傳也是最靠譜的。

注意:以下所有工具幾乎都需要JDK支持

apktool

apktool Logo
apktool Logo

反編譯apk,輸出資源文件和源碼的smali文件,可以查看和提取布局、圖片文件及。

命令行(注意路徑)

apktool d xxx.apk

用法就這么簡單,在當前目錄下會生成xxx(apk文件名)目錄,里面可以查看和提取資源文件及smali文件。

指定目錄命令行(注意路徑)

apktool d xxx.apk -o /xxx/xxx

幫助命令行(注意路徑)

apktool help

官方介紹及下載

dex2jar

dex2jar Logo
dex2jar Logo

將dex或apk文件轉換為jar文件,工具名稱已經非常明白了。

dex文件的獲取方式(Mac)

第一種 修改后綴名為zip,雙擊文件解壓Apk就可以獲取 xxx.dex文件

第二種 命令行unzip xxx.apk -d ./xxx 解壓Apk獲取xxx.dex文件

命令行(注意路徑)

sh dex2jar.sh xxx.dex

在當前目錄下會生成xxx_dex2jar.jar文件,然后再用jd-gui工具游覽jar文件。

上面是我以前的做法,寫這篇博客的時候學習了新方法,在新版本的dex2jar已經支持apk了,所以可以省略獲取dex文件的步驟。

命令行(注意路徑)

sh dex2jar.sh xxx.apk

Github及下載地址

jd-gui(Java Decompiler)

jd-gui Logo
jd-gui Logo

jd-gui是以單獨的程序的方式運行的反編譯工具,用于瀏覽jar文件中的class文件。使用方式比較簡單,不做過多的介紹,雙擊運行,打開jar文件就可以游覽了。

官方介紹及下載

Jadx

Jadx Image
Jadx Image

這個工具集合了前面3款工具的功能,支持apk、dex、jar、class、zip格式文件。

使用步驟(Mac)

  1. 下載jadx
  2. 解壓文件
  3. 命令行cd /xxx/xxx/jadx-0.6.0/bin(注意路徑)
  4. 命令行sh jadx-gui

使用步驟(Windows)

在第三步直接進入解壓的目錄jadx-0.6.0/bin下運行jadx-gui.bat即可。

Github

ClassyShark

ClassyShark Image

具體介紹見

【stormzhang】ClassyShark——apk分析利器

Github

下載地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容