JEB的使用

上一节中我们了解了 jadx 的基本使用方法,体验了其强大的功能。

当然,类似提供反编译功能的工具还有很多,JEB 就是一个。本节我们会结合一个案例学习使用 JEB 反编译和分析 apk 文件的过程。

JEB的简介

JEB 是由 PNF 软件(PNF Software)机构开发的一款专业的反编译 Android App 的工具,适用于逆向和审计工程,功能非常强大。相比 jadx,JEB 除了支持 apk 文件的反编译和 Android App 的动态调试,还支持 ARM、MIPS、AVR、Intel-x86、WebAssembly、Ethereum(以太坊)等程序的反编译、反汇编、动态调试等。另外,JEB 能解析和处理一些 PDF 文件,是一个极其强大的综合性逆向和审计工具。

由于本章主要讲 Android 逆向相关的内容,所以多关注它和 Android 相关的功能。对于 Android App,JEB 主要提供如下功能。

  • 可以对 Android App 和 Dalvik(Android 虚拟机,类似 Java 中的 JVM)字节码执行精确和快速的反编译操作。

  • 内置的分析模块可以对高度混淆的代码提供虚拟层次化重构,对分析混淆代码很有帮助。

  • 可以对接 JEB API 来执行一些逆向任务,支持用 Java 和 Python 编写自动化逆向脚本。

JEB 支持 Windows、Linux、Mac 三大平台,目前主要分为三个版本:JEB CE(社区版)、JEB Android(Androld版)、JEB Pro(专业版)。JEB CE 提供一些基础的功能,如反编译 dex 文件,反编译和反汇编 Intel-x86,但不支持反编译 Dalvik 字节码。JEB Android 则更专注于 Android 系统,支持反编译 dex 文件,也支持反编译和反汇编 Dalvik 字节码。JEB Pro 则是 “完全体”,支持官网介绍的所有功能。三个版本的具体功能对比可以参考官网( https://www.pnfsoftware.com/jeb )的介绍。JEB CE 是免费的,JEB Android 和 JEB Pro 都是收费的,需要购买许可证才可以使用。

准备工作

实战

模拟

总结

本节我们通过一个案例讲解了比较基本的 App 逆向过程,包括 JEB 工具的使用方法、动态调试和代码追踪操作等,还通过分析代码厘清了基本逻辑,最后模拟实现了 API 的参数构造和请求发送,得到最终的数据。

当然本节介绍的内容仅是 JEB 所有功能的冰山一角,更多关于 JEB 的使用教程可以参考其官方文档 https://www.pnfsoftware.com/jeb/manual/