dex文件反编译工具dex2jar,下载dex2jar工具
1.首先找到Android软件安装包中的class.dex
把apk文件改名为.zip,然后解压缩找到其中的class.dex文件(或者用7z提取有时间不行),它就是java文件编译再通过dx工具打包成的,所以现在我们就用dex2jar工具来逆方向导出java源文件;
2.把class.dex拷贝到dex2jar.bat所在目录,即dex2jar目录下。
在运行中输入cmd,回车。进入dex2jar所在的目录然后运行
dex2jar.bat classes.dex,生成classes-dex2jar.jar就是所要转化jar包。
如:dex2jar在d盘目录下则输入命令:d:\> cd dex2jar
d:\>dex2jar>dex2jar.bat classes.dex 回车就可以在dex2jar目录下找到classes-dex2jar.bat.jar
------------------转自网络---------------
dex2jar用法
dex2jar:是dex格式文件与jar文件的转换。
下载安装 dex2jar地址:
https://sourceforge.net/p/dex2jar
下载之后解压:
压缩包里,含有多个工具,最常用的是d2j-dex2jar.bat
1)d2j-dex2jar
d2j-dex2jar功能-- 将dex转换为jar
用法: d2j-dex2jar [options] <0号文件> [其他文件]
options:
-d,--debug-info 翻译调试信息
-e,--exception-file <file> 具体的异常信息文件,默认是$current_dir/[file-name]-error.zip
-f,--force 强制覆写
-h,--help 显示此帮助信息
-n,--not-handle-exception 不捕获dex2jar抛出的任何异常
-o,--output <out-jar-file> 输出.jar文件,默认是$current_dir/[file-name]-dex2jar.jar
-os,--optmize-synchronized 同步调整
-p,--print-ir 将ir输出到Syste.out
-r,--reuse-reg 生成java的.class文件时循环使用注册表
-s 与--topological-sort/-ts相同
-ts,--topological-sort 以拓扑逻辑整理块,能够生成更多可读代码
-v,--verbose 显示进度
将需要反编译的dex文件复制到 dex2jar 解压目录下
输入命令: d2j-dex2jar.bat classes.dex
接下来,安装 jd-gui查看jar的内容。
2、d2j-jar2dex
d2j-jar2dex – 调用dx将jar转换为dex
用法: d2j-jar2dex [参数] <目录>
参数:
-f,--force 强制覆写
-h,--help 显示此帮助信息
-o,--output <out-dex-file> 输出.dex文件,默认路径是$current_dir/[jar-name]-jar2dex.dex
3、d2j-jasmin2jar
d2j-jasmin2jar–将.j文件编译为.class文件
用法: d2j-jasmin2jar [参数] <路径>
参数:
-e,--encoding <enc> 指定.j文件编码方式,默认是UTF-8
-f,--force 强制覆写
-g,
--autogenerate-linenumbers 自动生成行号
-h,--help 显示此帮助信息
-o,--output <out-jar-file> 输出.jar文件,默认是$current_dir/[jar-name]-jasmin2jar.jar
4、d2j-jar-access
d2j-jar-access–增加或移除jar文件中对类(class)/方法(method)/域(field)的访问
用法: d2j-jar-access [参数] <jar文件>
参数:
-ac,--add-class-access <ACC> 增加对class中内容的访问
-af,--add-field-access <ACC> 增加对field中内容的访问
-am,--add-method-access <ACC> 增加对method中内容的访问
-f,--force 强制覆写
-h,--help 显示此帮助信息
-o,--output <out-dir> 指定.j文件输出路径,默认是$current_dir/[jar-name]-access.jar
-rc,--remove-class-access <ACC> 移除对class中内容的访问
-rd,--remove-debug 移除调试信息
-rf,--remove-field-access <ACC> 移除对field中内容的访问
-rm,--remove-method-access <ACC> 移除对method中内容的访问
5、d2j-apk-sign
d2j-apk-sign–用测试证书对apk文件进行数字签名
用法: d2j-apk-sign [参数] <apk文件路径>
参数:
-f,--force 强制覆写
-h,--help 显示此帮助信息
-o,--output <out-apk-file> 输出.apk文件,默认路径是$current_dir/[apk-name]-signed.apk
-w,--sign-whole 对整个apk文件进行签名
6、d2j-jar2jasmin
d2j-jar2jasmin–反汇编jar文件中的.class文件至jasmin文件
用法: d2j-jar2jasmin [参数] <jar文件路径>
参数:
-d,--debug 反汇编调试信息
-e,--encoding <enc> .j文件的编码方式,默认是UTF-8
-f,--force 强制覆写
-h,--help 显示此帮助信息
-o,--output <out-dir> .j文件的输出路径,默认是$current_dir/[jar-name]-jar2jasmin/