使用 JEB 进行静态分析
- JEB:一款强大的跨平台 Android 静态分析工具
- 相比 jd-gui、jadx、bytecode-viewer 这类 jar 查看工具,JEB 提供类似 IDA Pro 的方法交叉引用与重命名功能
- JEB 的脚本化功能在自动分析与对抗代码混淆中很实用
安装 JEB
- 下载地址:提取码: x9ma
- 官方地址:JEB Decompiler
- JEB 是用 Java 开发的。在本地解压后,会得到三个执行脚本:
- jeb_macos.sh 用于 macOS 系统,jeb_linux.sh 用于 Linux 系统,jeb_wincon.bat 用于 Windows 系统
JEB 的静态分析功能
- Windows 环境下,打开 jeb_wincon.bat
- 将要分析的程序拖入,等待分析完成
- 在左侧栏中双击“Manifest”选项,会显示 APK 解码后的 Manifest.xml 信息
- 双击“Certificate”,会显示 APK 中的证书公钥、有效日期、签名及证书的 MD5、SHA-1、SHA-256 指纹信息
- 双击“Resources”,会展开 APK 解码后的资源信息(这些资源信息可在 JEB 中直接预览)
- 双击“Bytecode”,会显示 DEX 中的所有类和方法
- 双击任意类,会显示它的 Dalvik 汇编代码
- 在汇编代码界面按“Tab”键,会切换到 Java 代码视图
- 在任意方法上按“X”键,会显示所选方法的交叉引用情况
- 在想要添加注释的地方按“/”键,会弹出一个注释对话框,在里面输入想要添加的注释内容,然后点击“确定”即可添加一条注释
- JEB 的另一个强大的功能是支持代码视图的符号重命名
- 经过上面的修改后,显示的内容已和真实代码很接近。很多时候,可将 JEB 中反编译的代码复制到项目中正常编译
- 在 Bytecode 反汇编界面单击反汇编代码界面底部的“String”栏(中文界面为“字符串”),会列出 DEX 中所有字符串信息
- 在 Bytecode 反汇编界面按“Ctrl+F”组合键,打开搜索对话框,也可搜索 DEX 中的方法、类及字符串信息