JEB Decompiler中文网站 > 使用教程 > JEB Decompiler的API怎么调用 如何扩展JEB Decompiler的功能
JEB Decompiler的API怎么调用 如何扩展JEB Decompiler的功能
发布时间:2024/12/24 10:08:12

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:JEB 5.20.0.202411121942

JEB Decompiler是一款反编译工具,提供了很多API,让程序员可以根据自己的需求扩展软件的功能。本文将为大家介绍JEB Decompiler的API调用方法,并介绍如何通过API扩展JEB Decompiler的功能的相关内容。

一、JEB Decompiler的API怎么调用

JEB Decompiler支持脚本功能,几乎每个脚本中都调用了JEB Decompiler的API,我们可以打开JEB安装路径下的【s-samples】文件夹查看示例。

JEB脚本文件
图1:JEB脚本文件

任意查看一个脚本文件的示例,会发现每一行的开头是【from xxx import xxx】这就是调用JEB Decompiler的过程。这些都是JEB Decompiler已经写好的代码,我们只需要引入,就可以直接使用。

示例脚本代码
图2:示例脚本代码

JEB Decompiler提供的API有很多,我们可以点击菜单栏【帮助-API文档】查看每个API的实现方式,包括参数调用、返回值等信息。

API帮助文档
图3:API帮助文档

二、如何扩展JEB Decompiler的功能

在实际反编译的中工作中,借助脚本可以帮助我们自动化分析过程,节省很多手动操作。借助脚本,然后脚本中调用JEB Decompiler提供的API,用代码实现我们需要的功能,这会大幅增高我们的工作效率。以下是使用JEB Decompiler创建脚本的相关内容。

1、如果是自己网上下载的脚本,需要将脚本文件放入到s目录下。如果需要新建一个脚本,可以继续下面的步骤。

2、在用JEB反编译apk成功后,点击状态栏【文件-脚本-脚本选择器】。

脚本
图4:脚本

3、点击底部【create】,并输入脚本名称,点击【确定】。

创建脚本
图5:创建脚本

4、新建后,会有一段示例代码,我们可以根据自己的需求,手动编写代码,从而实现扩展JEB Decompiler功能的需求。

新建脚本
图6:新建脚本

如果我们需要实现当前打开的JEB项目中的所有单元(包括子单元),并显示每个单元的名称和大小,就可以安装以下步骤:

(1)通过ctx.getMainProject()获取当前打开的项目,如果没有项目则抛出错误。

获取打开的项目
图7:获取打开的项目

(2)遍历项目中所有的【artifacts】,然后获取每个artifacts的units。每个units都会传递给checkUnit方法进行处理。

遍历artifacts
图8:遍历artifacts

(3)checkUnit方法的功能是检查每个units的类型。如果units是二进制单位(IBinaryUnit),它会获取该单位的输入(unit.getInput()),并通过unitinput.getCurrentSize()获取单位的大小,然后输出该单位的名称和大小。

checkUnit方法
图9:checkUnit方法

(4)如果单位具有子单位(通过unit.getChildren()获取),脚本会递归调用checkUnit方法来处理子单位,增加缩进(通过level来表示深度)来区分层级。

递归调用
图10:递归调用

(5)编写完成后,点击底部的【exeute】执行这段代码,可以看到底部日志输出了相关信息。

执行结果
图11:执行结果

三、总结

以上就是JEB Decompiler的API怎么调用,如何扩展JEB Decompiler的功能的相关内容。JEB Decompiler提供了丰富的API,我们可以通过API文档查询API相关信息。调用API编写脚本,可以实现扩展JEB Decompiler功能的需求,希望本文对你有所帮助。

 

署名:Hungry

 

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