天天看點

Dex2jar JD-GUI apktool反編譯apk檔案

1. 下載下傳工具

dex2jar下載下傳位址:http://code.google.com/p/dex2jar/downloads/list

JD-GUI下載下傳:http://java.decompiler.free.fr/?q=jdgui

apktool :https://code.google.com/p/android-apktool/downloads/list

2. 通過dex2jar将apk轉換為jar檔案

  • 從apk中抽取classex.dex檔案 

雖說dex2jar可以直接從apk抽取出jar檔案,但是會經常遇到一些問題,是以常用的方法是将.apk檔案,重命名為.zip,解壓縮後,找到classes.dex檔案

  • 運作dex2jar生成.jar檔案

cmd

cd C:\Users\Administrator\Desktop\dex2jar-0.0.9.13

    dex2jar.bat   classes.dex

    生成classes.dex.dex2jar.jar

3. 通過jd-gui将jar檔案反編譯為java檔案

運作jd-gui,打開檔案classes_dex2jar.jar,可以看到源碼,同時,你還可以通過Save Source或SaveAll Source,将源碼進行儲存。

4. apktool這是把apk應用解壓縮的工具,解壓縮後可以看到apk檔案的xml布局檔案和圖檔等等,也就是可以看到apk的資源檔案了

将下載下傳的兩個包解壓到同一個檔案夾下,應該會有三個檔案:aapt.exe,apktool.bat,apktool.jar

在指令行下定位到apktool.bat檔案夾,輸入以下指令:apktool d C:\*.apk C:\*檔案夾,

指令行解釋:apktool  d   [apk檔案]   [輸出檔案夾]

特别注意:你要反編譯的檔案一定要放在C槽的根目錄裡

=============================================

project.properties檔案

将proguard.config前面的#去掉,就可以利用ProGuard來混淆代碼了

proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt

用數字簽名生成的apk才會被混淆,Run或Build Project/Build All來生成Apk,是不會混淆代碼的

Android Tools,如下圖所示,其下有兩個子菜單項:“Export Signed ApplicationPackage...”和“Export Unsigned ApplicationPackage...”,一個是帶RSA數字簽名,一個是不帶數字簽名,根據需要選一個,然後按照向導操作即可,最終生成的Apk就是混淆過代碼的了