apktool、dex2jar、jd-gui的區別及詳解

https://blog.csdn.net/themelove/article/details/53126360java

反編譯相關:

apktool    做用:資源文件的獲取,能夠提取出圖片文件和佈局文件進行查看python

dex2jar    做用:將apk反編譯成java源碼(classes.dex轉化成jar文件)windows

jd-gui       做用:查看APK中的classes.dex轉化成的jar文件,即源碼文件工具

概述:apktool dex2jar  jd-gui他們三個都和反編譯相關,可是側重點不一樣,當咱們有不一樣的需求時,選擇不一樣的工具,能夠獲取不一樣的資源。一般狀況下,咱們能夠三者結合起來用。佈局

apktool下載地址優化

dex2jar下載地址ui

jd-gui下載地址spa

我彙總的三個工具包下載.net

 

apktool的使用:xml

cmd下進入到apktool目錄下執行:apktool d xxxxx.apk


運行結果:

能夠看到用apktool反編譯apk以後的目錄如上:assets 目錄和res目錄下的文件和原工程中的資源文件同樣,lib下是一些第三方的.so文件,smail中是calsses.dex轉化成的

smail文件,並不可讀

apktool的主要用途:

1.能夠獲取apk裏的資源文件

2.能夠反編譯以後修改AndroidManifest.xml文件中的一些配置,好比mete-data,能夠用於多渠道打包的實現。

3.assets目錄下放置的配置文件也能夠修改。

 

應用場景:咱們手動反編譯修改AndroidManifest.xml中mete-data中的渠道號,在用apktool b [修改好以後的文件目錄]  回編成apk,注意,在回編以後的apk是未簽名的apk,咱們須要從新用jdk中的jarsigner.exe對apk進行簽名,再用zipalign.exe對簽名後的apk進行對齊優化操做,最終使其成爲一個可用的apk.

以上步驟就是手動修改AndroidManifest.xml來手動打包一個渠道包的過程,咱們固然能夠將全部的渠道號配置在一個配置文件中,將以上步驟都用批處理或者python寫的打包工具來代替,也就是咱們常說的多渠道打包工具。這樣也避免出錯的機率。

還不會?教你反編譯apk手動修改AndroidManifest.xml再回編打一個渠道包

 

dex2jar的使用:

1.首先將下載好的xxx.apk更名爲xxx.rar,方便解壓,解壓以後以下圖:

2.以後將咱們下載好的dex2jar.zip解壓進入到以下目錄:

圖中選中的就是咱們要用到的工具。

3.打開cmd 進入到該目錄執行  d2j-dex2jar.bat xxxx.classes.dex 以下圖

運行結果以下圖:

會在批處理所在目錄生成classes-dex2jar.jar文件

該步驟主要是將classes.dex---------->xxxxxxx.jar文件,而xxxxx.jar裏面就是咱們的.class文件,解壓xxxxx.jar後目錄以下:

咱們知道xxxxxx.class 的字節碼文件咱們是不能直接預覽的。因此咱們要用到下面的工具

 

3.jd-gui的使用

查看xxxxxxx.jar裏的源碼

1.找到咱們下載的jd-gui-windows-1.4.0.zip並解壓,找到jd-gui.exe,並把上面步驟中生成的xxxxxx.jar文件拖進去,便可看到反編譯以後的源碼,大功告成:

相關文章
相關標籤/搜索