反编译工具之Jadx
jadx 是一款功能强大的反编译工具,使用起来简单方便(拖拽式操作),不光提供了命令行程序,还提供了 GUI 程序。一般情况下,我们直接使用 GUI 程序就可以了。
jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk
, .dex
, .jar
,.zip
等格式的文件
就比如说我们需要反编译一个 jar 包查看其源码的话,直接将 jar 包拖入到 jadx 中就可以了
安装SDK: https://www.oracle.com/java/technologies/downloads/
[依赖]
java的安装见之前文章,这里就不再述
保证java已经正常安装即可:
java -version # 看到打印安装成功 ''' java version "1.8.0_371" Java(TM) SE Runtime Environment (build 1.8.0_371-b11) '''
[安装]
github地址: https://github.com/skylot/jadx/releases
[使用]
1.下载直接解压即可(注意不要放在有中文的路径)
2.把apk直接拖入软件即可
根据关键词搜索对应的代码
常用方式:
1) 在找到某个方法之后, 想要查看他的调用,右键选择"查找用例" 即跳转到过去
2)在资源文件中可以看到启动文件AndroidManifest.xml, 其中信息
包名: package
反混淆
一般情况下,为了项目的安全,我们在打包发布一个 apk 之前都会对其代码进行混淆加密比如用无意义的短变量去重命名类、变量、方法,以免代码被轻易破解泄露。
经过混淆的代码在功能上是没有变化的,但是去掉了部分名称中的语义信息。
为了代码的易读性,我们可以对代码进行反混淆。
在 jadx 中,我们通过 Tools -> Deobfuscation 即可开启反混淆功能。