apk反編譯-源碼閱讀

一、準備工具

提示:這些工具在官網都不好下載,偶也是廢了好大力氣呢,建議直接下載我提供的網盤鏈接

(1) 使用工具介紹:

1. apktool 最新版 jar 包
作用:資源文件獲取,可以提取出圖片文件和佈局文件進行使用查看
2. dex2 jar 的zip包
作用:將apk反編譯成java源碼(classes.dex轉化成jar文件)
3. jd-gui 工具
作用:查看APK中classes.dex轉化成出的jar文件,即源碼文件

(2) 使用工具下載與安裝:

1.apktool_2.3.4 jar 包(2018.10.31 目前最新版)
百度網盤地址:https://pan.baidu.com/s/1svF53LnKTZLwPABUA8_aOA 密碼:top9

2.dex2 2.0 jar 包(2018.10.31 目前最新版)
百度網盤地址:https://pan.baidu.com/s/1dAqUojefElj31WTWuLQCIw 密碼:6igx

3.jd-gui 1.4.0(2018.10.31 目前最新版)
百度網盤地址:https://pan.baidu.com/s/1FNH5FtGECcz4uq5NUYOxkw 密碼:dm1j

二、Apk 反編譯步驟

(1) 使用 apktool 反編譯 apk 得到圖片、XML配置、語言資源等文件

1.將上述下載好的 3 個工具統一放到一個文件夾中(目錄最好不好有中文),並解壓 zip 文件,例如:
在這裏插入圖片描述

2.打開 cmd/終端,進入上述工具目錄
在這裏插入圖片描述
在這裏插入圖片描述

3.運行apktool_2.3.4.jar這個jar文件來將 apk文件進行反編譯,在java中,運行可執行jar包的命令是:

java -jar apktool_2.3.4.jar d -f apk文件絕對路徑 -o 輸出的目錄

例如: 使用如下的命令運行apktool_2.0.1.jar反編譯com.leiting.app.apk

java -jar apktool_2.3.4.jar d -f D:\apkDecompile\ocrTest.apk -o source

這個命令是啓動 apktool_2.3.4.jar 將同級目錄下的com.leiting.app.apk文件執行反編譯,然後將反編譯生成的文件存放到 apk 文件同級的 source 目錄下,截圖:

在這裏插入圖片描述

4.然後就會生成源文件的目錄,有開發經驗的大概能看出點什麼
在這裏插入圖片描述

5.重要的有【res】目錄和【AndroidManifest.xml】
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

以上就是使用 apktool 這個工具將一個 apk 反編譯得到圖片、XML配置、語言資源等文件的過程

(2) 使用 dex2jar 反編譯 apk 得到 Jar 包

將要反編譯的 APK 後綴名改爲 .rar 或者 .zip,並解壓,得到其中的classes.dex 文件(它就是java文件編譯再通過dx工具打包而成的),如下圖所示:

在這裏插入圖片描述

將獲取到的classes.dex放到之前解壓出來的工具【dex2jar-2.0】文件夾內,如下圖所示:
在這裏插入圖片描述

在命令行下進入到 dex2jar.bat 所在目錄,輸入"d2j-dex2jar classes.dex",截圖:

在這裏插入圖片描述

命令執行完成之後,在當前目錄下就可以看到生成的Jar文件了,如下圖所示:
在這裏插入圖片描述

反編譯 classes.dex 得到 classes-dex2jar.jar 文件之後,就可以使用【jd-gui】工具將 class 文件反編譯成 java 源代碼了

(3) 使用 jd-gui.exe 工具將 class 文件反編譯成 java 源代碼

1.打開 jd-gui.exe 程序(不需要安裝,之前 zip 包解壓即可)

在這裏插入圖片描述

在這裏插入圖片描述

2.將jar包拖到 jd-gui.exe裏面,就可以看到 java 源代碼:
在這裏插入圖片描述

三、出錯提示:

如果那不出錯了,基本就是工具版本的問題,建議全部下載最新版或者全部使用我提供的版本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章