JEB Decompiler中文网站 > 使用教程 > JEB Decomplier Android逆向分析脚本
JEB Decomplier Android逆向分析脚本
发布时间:2024/09/29 18:18:28

JEB(Java and Dalvik Decompiler)是一款商业逆向工程平台,支持对 Android 应用的反编译、调试和分析。它能够处理 Dalvik 字节码,并生成可读的 Java 源代码,适用于静态分析中的反编译需求。本节重点介绍如何编写JEB Python脚本来专门辅助分析Android应用程序。

 

1、Dex 单位

 

回想一下 JEB 分析模块产生的IUnits,在 Project Explorer 视图中可见:

2、IDexUnit 和相关类

 

dex 单元接口是访问 dex 元素的入口点:

 

from com.pnfsoftware.jeb.client.api import IScript from com.pnfsoftware.jeb.core.units.code.android import IDexUnit, IApkUnit class SomeScript(IScript): def run(self, ctx): prj = ctx.getMainProject() # current project; None if no project is opened dex = prj.findUnit(IDexUnit) # find the first dex unit #dexlist = prj.findUnits(IDexUnit) # retrieve a list of dex units #apk = prj.findUnits(IApkUnit) # find the first dex unit for m in dex.getMethods(): print m.getSignature() # print method reference descriptor

 

3、dex 文件表示

 

下图是保存 dex 文件信息的 JEB 类型的高级视图。此结构反映了 dex 文件格式。(并非所有类型都已列出,请参阅 API 参考以获取完整列表。)

4、APK 单元

 

Android APK 用 s 表示IApkUnit

 

from com.pnfsoftware.jeb.client.api import IScript from com.pnfsoftware.jeb.core.units.code.android import IApkUnit class SomeScript(IScript): def run(self, ctx): prj = ctx.getMainProject() # current project; None if no project is opened apk = prj.findUnits(IApkUnit) # find the first apk unit print(apk.isDebuggable()) # ...

 

5、UI 客户端细节

 

当脚本在 UI 客户端中运行时,ctx提供给 run() 方法的 是IGraphicalClientContext(扩展IClientContext)。还提供了其他方法以与工作区小部件(单元视图、片段等)进行交互。

下图显示了 UI 元素类型和它们所持有的文档类型之间的关系。

6、dexdec 单位

 

入口点接口是IDexDecompilerUnit,通常是底层的子项IDexUnit。dexdec 单元生成IJavaSourceUnit,保存反编译的元素(类和方法)。

 

7、访问 IR

 

Dex 反编译器插件可以加载在反编译管道期间调用的外部中间表示(IR) 插件,以进一步完善和优化方法反编译。这些插件可以编译为 jar,也可以用 Java 或 Python 编写。

 

以上就是JEB Decomplier Android逆向分析脚本的相关内容。我们可以使用JEB Decomplier进行Android应用的逆向分析,并编写脚本来自动化一些常见的逆向任务。

 

 

 

 


 

读者也访问过这里:
135 2431 0251