当前位置: 代码迷 >> 综合 >> Dex2jar?JD-GUI?apktool反编译apk文件
  详细解决方案

Dex2jar?JD-GUI?apktool反编译apk文件

热度:88   发布时间:2024-01-20 10:06:49.0

http://blog.sina.com.cn/illdvm

 

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

dex2jar.bat 使用最新的可能需要根据提示使用另外一个命令。

 

 

3. 通过jd-gui将jar文件反编译为java文件

运行jd-gui,打开文件classes_dex2jar.jar,可以看到源码,同时,你还可以通过Save Source或Save All Source,将源码进行保存。

 

4. apktool这是把apk应用解压缩的工具,解压缩后可以看到apk文件的xml布局文件和图片等等,也就是可以看到apk的资源文件了
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,
命令行解释:apktool    [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 Application Package...”和“Export Unsigned Application Package...”,一个是带RSA数字签名,一个是不带数字签名,根据需要选一个,然后按照向导操作即可,最终生成的Apk就是混淆过代码的了