使用 JEB 进行静态分析

  • JEB:一款强大的跨平台 Android 静态分析工具
  • 相比 jd-gui、jadx、bytecode-viewer 这类 jar 查看工具,JEB 提供类似 IDA Pro 的方法交叉引用与重命名功能
  • JEB 的脚本化功能在自动分析与对抗代码混淆中很实用

安装 JEB

  • 下载地址:提取码: x9ma
  • 官方地址:JEB Decompiler
  • JEB 是用 Java 开发的。在本地解压后,会得到三个执行脚本:
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • jeb_macos.sh 用于 macOS 系统,jeb_linux.sh 用于 Linux 系统,jeb_wincon.bat 用于 Windows 系统

JEB 的静态分析功能

  • Windows 环境下,打开 jeb_wincon.bat
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 将要分析的程序拖入,等待分析完成
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 在左侧栏中双击“Manifest”选项,会显示 APK 解码后的 Manifest.xml 信息
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 双击“Certificate”,会显示 APK 中的证书公钥、有效日期、签名及证书的 MD5、SHA-1、SHA-256 指纹信息
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 双击“Resources”,会展开 APK 解码后的资源信息(这些资源信息可在 JEB 中直接预览)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 双击“Bytecode”,会显示 DEX 中的所有类和方法
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 双击任意类,会显示它的 Dalvik 汇编代码
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 在汇编代码界面按“Tab”键,会切换到 Java 代码视图
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 在任意方法上按“X”键,会显示所选方法的交叉引用情况
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 在想要添加注释的地方按“/”键,会弹出一个注释对话框,在里面输入想要添加的注释内容,然后点击“确定”即可添加一条注释
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • JEB 的另一个强大的功能是支持代码视图的符号重命名
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 经过上面的修改后,显示的内容已和真实代码很接近。很多时候,可将 JEB 中反编译的代码复制到项目中正常编译
  • 在 Bytecode 反汇编界面单击反汇编代码界面底部的“String”栏(中文界面为“字符串”),会列出 DEX 中所有字符串信息
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
  • 在 Bytecode 反汇编界面按“Ctrl+F”组合键,打开搜索对话框,也可搜索 DEX 中的方法、类及字符串信息
    第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)

JEB 的脚本化与插件

第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)
第五章 静态分析 Android 程序(四)(使用 JEB 进行静态分析)

相关文章: