天天看點

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

反編譯apk是每個android開發者都會遇到的問題,最近研究了一下apk的反編譯問題。在網上搜尋了一些資源,都覺得不是很全,不是很适合類似于我這樣初次接觸apk反編譯的人使用。于是就想着寫下自己反編譯apk檔案的一些步驟。一是為了分享一下自己學習到的東西;二是為了記錄下這些流程,如果下一次自己給忘記了,還能看看今天所寫的。

在網上的反編譯工具很多,但是适合自己的才是最好的。下面就來分享一下,自己是怎麼反編譯apk的。

一、工具

1、jdk:java檔案運作的環境支援,目前最新版本是jdk1.8.0_45,可以直接到oracle網站下載下傳。

2、jd-gui:用于反編譯jar檔案

3、apktool:用于反編譯apk中的xml檔案

4、dex2jar:用于将apk反編譯成jar包

二、步驟

1、下載下傳工具,這肯定不用說,沒有工具何來下一步。jdk下載下傳後,需要配置環境變量,這個百度一下根據步驟來就OK。其他工具,到我網盤下載下傳就好。

連結:http://pan.baidu.com/s/1eQvoG06 密碼:a4nw 工具解壓到自己的檔案夾中。準備發要反編譯的apk檔案。如:我将這三個工具都放到F:\apk反編譯工具\反編譯工具包 這個目錄下。

2、首先将亂碼的xml檔案反編譯成我們能看懂的。到xxxxx\apktool1.5.2目錄下,按住Shift鍵+滑鼠右鍵,選擇在此處找開指令視窗,打開DOS指令框,直接在xxxxx\apktool1.5.2目錄下;也可以win鍵+R也能打開,然後cd到xxxxx\apktool1.5.2目錄下。輸入指令:apktool d xxxxx yyyy xxxxx:你apk的目錄加apk的加字尾的檔案名 yyyy:反編譯後存儲資料的目錄

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

找到反編譯後的資料目錄,打開。這個目錄下的xml檔案就是可以打開檢視的,并不是亂碼了。其中smali檔案是對src目錄檔案的反編譯,這裡也可以用一個smali反編譯工具來對些檔案夾裡的檔案反編譯成java檔案。這裡我不用這個檔案裡的smali檔案。

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

3、其次是對dex檔案的反編譯,dex檔案其實就是android源碼打包後的檔案。更改apk檔案字尾為zip或是rar,用壓縮工具打開找到.dex的檔案解壓到相應的目錄下。

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

打開DOS指令框,切換到dex2jar目錄下,dex2jar.bat xxxx.dex,編譯完成後,會在dex檔案目錄下生成classes_dex2jar.jar檔案。

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

4、接下來就用jd-gui工具打開jar檔案,生成java檔案。

android apk反編譯 apktool、dex2jar、jd-gui工具的使用

5、最後将這反編譯出的java檔案和反編譯出的xml檔案合并,就完成了一個apk的反編譯工作。

這樣能反編譯出大部分的apk。

繼續閱讀