Android Java 反编译工具:jadx

对于Android 的Java 反编译工具,我最先用的是Dex2Jar, 这个工具用了很长时间,也非常好用。为了有更多的选择,扩展视野,此篇介绍另一个开源的反编译工具jadx!

开源地址:https://github.com/skylot/jadx

我是一个懒人,直接copy开源文档如下,自己凑合着看吧,相信大家看懂应该都没有问题!

Downloads

Building from source

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

(on Windows, use gradlew.bat instead of ./gradlew)

Scripts for run jadx will be placed in build/jadx/bin and also packed to build/jadx-<version>.zip

Run

Run jadx on itself:

cd build/jadx/
bin/jadx -d out lib/jadx-core-*.jar
#or
bin/jadx-gui lib/jadx-core-*.jar

Usage

jadx[-gui] [options] <input file> (.dex, .apk, .jar or .class)
options:
 -d, --output-dir        - output directory
 -j, --threads-count     - processing threads count
 -f, --fallback          - make simple dump (using goto instead of 'if', 'for', etc)
 -r, --no-res            - do not decode resources
 -s, --no-src            - do not decompile source code
     --show-bad-code     - show inconsistent code (incorrectly decompiled)
     --cfg               - save methods control flow graph to dot file
     --raw-cfg           - save methods control flow graph (use raw instructions)
 -v, --verbose           - verbose output
     --deobf             - activate deobfuscation
     --deobf-min         - min length of name
     --deobf-max         - max length of name
     --deobf-rewrite-cfg - force to save deobfuscation map
 -h, --help              - print this help
Example:
 jadx -d out classes.dex

Troubleshooting

Out of memory error:
  • Reduce processing threads count (-j option)
  • Increase maximum java heap size:
    • command line (example for linux): JAVA_OPTS="-Xmx4G" jadx -j 1 some.apk
    • edit 'jadx' script (jadx.bat on Windows) and setup bigger heap size: DEFAULT_JVM_OPTS="-Xmx2500M"

Contribution

To support this project you can:

  • Post thoughts about new features/optimizations that important to you
  • Submit bug using one of following patterns:
    • Java code examples which decompiles incorrectly
    • Error log and link to public available apk file or app page on Google play

And any other comments will be very helpfull, because at current stage of development it is very time consuming to findnew bugs, design and implement new features. Also I need to prioritize these task for complete most important at first.


ClassyShark是一款可以查看Android可执行文件的浏览工具,支持.dex, .aar, .so, .apk, .jar, .class, .xml 等文件格式,分析里面的内容包括classes.dex文件,包、方法数量、类、字符串、使用的NativeLibrary等。 使用方法 打开apk文件java -jar ClassyShark.jar -open <YOUR_APK.apk> 将生成的所有数据导出到文本文件里java -jar ClassyShark.jar -dump <BINARY_FILE> 将指定类生成的文件导出到文本文件里java -jar ClassyShark.jar -dump <BINARY_FILE> <FULLY_QUALIFIED_CLASS_NAME> 打开ClassyShark,在GUI界面展示某特定的类 java -jar ClassyShark.jar -open <BINARY_FILE> <FULLY_QUALIFIED_CLASS_NAME> 检测APKjava -jar ClassyShark.jar -inspect <YOUR_APK.apk> 导出所有的字符串 java -jar ClassyShark.jar -stringdump <YOUR_APK.apk> 工具介绍: apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar 作用:将apk反编译java源码(classes.dex转化成jar文件) jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件、 smali-1.2.6.jar  用途:.smali文件 转成 classes.dex文件  说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。 用法举例:命令行:java -jar smali.jar classout/ -o classes.dex 下载:http://code.google.com/p/smali/downloads/list 2、baksmali-1.2.6.jar  用途:classes.dex文件 转成 .smali文件  说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。 用法:命令行:java -jar baksmali.jar -o classout/ classes.dex 下载:http://code.google.com/p/smali/downloads/list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值