# dex2jar
## dex2jar软件包说明
dex2jar包括以下组件:
用于读取Dalvik可执行文件. DEX/.odex的dex读取器。 有一个与ASM相似的轻量级API。
-用于转换的dex翻译器。 以dex-ir格式读取dex命令,经过几个调整,转换为ASM格式。
– dex-ir在翻译器中使用,用于表示dex指令。
-深度工具。 处理. class文件。 例如,修改apk文件或模糊化jar文件等。
– d2j-smali [反汇编待发行dex文件并将其恢复为smali文件; 或者从smali文件编译到dex文件中。 与smali/baksmali不同,它的语法相同,但该工具支持desc类型的转义。 “Lcom/dex2jar\t\u1234; ”
– dex写入器[待发布]使用与dex读取器相同的方法写入数据。
原项目地址:3359 github.com/pxb 1988/de x2 jar /
dex2jar主页| [Kali的dex2jar项目](http://git.Kali.org/gitweb/?) p=packages/dex2jar.git; a=summary )
-作者:潘小博
-证书: Apache-2.0
### dex2jar包中包含的工具
通过调用# # # # d2j-jar 2d exdx将jar转换为dex
“““
root@kali:~# d2j-jar2dex -h
调用d2j-jar2dex –将jar转换为dex。
用法: d2j-jar2dex [参数]
参数:
-f,–force强制写作
-h,–help显示此帮助信息
-o,–output输出. dex文件,缺省路径为$ current _ dir/[ jar-name ]-jar 2d ex.dex
版本: 0.0.9.15
“““
# # d2j-jar-remap -重命名jar文件中的包(package ) /类(class ) /方法(method ) /域(field )
“““
root @ kali :~# d2j-jar-remap-h
d2j-jar-remap–重命名jar文件中的包(package ) /类(class ) /方法(method ) /域(field )
用法: d2j-jar-remap [参数]
参数:
-c,- -用于重构–config的配置文件。 必须指定此项目
-f,–force强制写作
-h,–help显示此帮助信息
-o,–output输出. jar文件。 缺省路径为$ current _ dir/[ jar-name ]-remap.jar
版本: 0.0.9.15
联机帮助文档:https://code.Google.com/p/de x2jar/wiki/deobfuscatejarwithdextool
“““
# # d2j-de x2 Jar将dex转换为jar
“““
root@kali:~# d2j-dex2jar -h
将D2J-DEX2Jar–DEX转换为jar
用法: d2j-dex2jar [参数] 0号文件[其他文件]
选项:
-d,- -调试信息翻译调试信息
-e,–exception-file具体的例外信息文件默认为$ current _ dir/[ file-name ]-error.zip
-f,–force强制写作
-h,–help显示此帮助信息
-n,–not-handle-exception不会捕获dex2jar抛出的异常
-o,–output输出. jar文件。 缺省值为$ current _ dir/[ file-name ]-de x2 jar.jar
-os,–optmize-synchronized同步调整
-p,–print-ir将ir输出到Syste.out
-r,–reuse–在生成reg Java.class文件时重用注册表
-s与–topological-sort/-ts相同
-ts,–topological-sort可以用拓扑逻辑组织块,生成更多的可读代码
-v,–verbose显示进展状况
:版阅读器-1.15、翻译器-0.0.9.15、ir-1.12
“““
# # de x2 jar此工具已弃用。 如果可能的话,请使用d2j-dex2jar
“““
root@kali:~# dex2jar
此工具已被弃用,若可能请使用d2j-dex2jar。
dex2jar 版本: 翻译器-0.0.9.15
dex2jar file1.dexORapk file2.dexORapk …
“`
### d2j-jasmin2jar–将.j文件编译为.class文件
“`
root@kali:~# d2j-jasmin2jar -h
d2j-jasmin2jar — d2j-jasmin2jar – 将.j文件编译为.class文件
用法: d2j-jasmin2jar [参数]
参数:
-e,–encoding 指定.j文件编码方式,默认是UTF-8
-f,–force 强制覆写
-g,–autogenerate-linenumbers 自动生成行号
-h,–help 显示此帮助信息
-o,–output 输出.jar文件,默认是$current_dir/[jar-name]-jasmin2jar.jar
版本: 0.0.9.15
“`
### d2j-jar-access–增加或移除jar文件中对类(class)/方法(method)/域(field)的访问
“`
root@kali:~# d2j-jar-access -h
d2j-jar-access — 增加或移除jar文件中对类(class)/方法(method)/域(field)的访问
用法: d2j-jar-access [参数]
参数:
-ac,–add-class-access 增加对class中内容的访问
-af,–add-field-access 增加对field中内容的访问
-am,–add-method-access 增加对method中内容的访问
-f,–force 强制覆写
-h,–help 显示此帮助信息
-o,–output 指定.j文件输出路径,默认是$current_dir/[jar-name]-access.jar
-rc,–remove-class-access 移除对class中内容的访问
-rd,–remove-debug 移除调试信息
-rf,–remove-field-access 移除对field中内容的访问
-rm,–remove-method-access 移除对method中内容的访问
版本: 0.0.9.15
“`
### d2j-asm-verify–校验jar文件中的.class 文件
“`
root@kali:~# d2j-asm-verify -h
d2j-asm-verify — 校验jar文件中的.class 文件
用法: d2j-asm-verify [参数] <0号jar文件> [其他jar文件]
参数:
-d,–detail 显示详细错误信息
-h,–help 显示此帮助信息
版本: 0.0.9.15
“`
### d2j-dex-dump
“`
root@kali:~# d2j-dex-dump -h
将.dex或.apk文件中的数据dump至out.dump.jar文件中
“`
### d2j-init-deobf–为反混淆jar文件生成初始化配置文件
“`
root@kali:~# d2j-init-deobf -h
d2j-init-deobf — 为反混淆jar文件生成初始化配置文件
用法: d2j-init-deobf [参数]
参数:
-f,–force 强制覆写
-h,–help 显示此帮助信息
-max,–max-length 若长度大于指定的最大值则进行重命名,默认最大值是40
-min,–min-length 若长度小于指定的最小值则进行重命名,默认最小值是2
-o,–output 输出.jar文件,默认是$current_dir/[file-name]-deobf-init.txt
版本: 0.0.9.15
“`
### d2j-apk-sign–用测试证书对apk文件进行数字签名
“`
root@kali:~# d2j-apk-sign -h
d2j-apk-sign — 用测试证书对apk文件进行数字签名。
用法: d2j-apk-sign [参数]
参数:
-f,–force 强制覆写
-h,–help 显示此帮助信息
-o,–output 输出.apk文件,默认路径是$current_dir/[apk-name]-signed.apk
-w,–sign-whole 对整个apk文件进行签名
版本: 0.0.9.15
“`
### d2j-jar2jasmin–反汇编jar文件中的.class文件至jasmin文件
“`
root@kali:~# d2j-jar2jasmin -h
d2j-jar2jasmin — 反汇编jar文件中的.class文件至jasmin文件
用法: d2j-jar2jasmin [参数]
参数:
-d,–debug 反汇编调试信息
-e,–encoding .j文件的编码方式,默认是UTF-8
-f,–force 强制覆写
-h,–help 显示此帮助信息
-o,–output .j文件的输出路径,默认是$current_dir/[jar-name]-jar2jasmin/
版本: 0.0.9.15
“`
### d2j-dex2jar用法示例
“`
root@kali:~# d2j-dex2jar /usr/share/metasploit-framework/data/android/apk/classes.dex
dex2jar /usr/share/metasploit-framework/data/android/apk/classes.dex -> classes-dex2jar.jar
“`