Gepetto是一个Python脚本,它使用OpenAI的gpt-3.5-turbo模型为IDA Pro反编译的函数提供含义。 目前,它可以要求gpt-3.5-turbo解释函数的作用,并自动重命名其变量。 下面是一个简单的示例,说明它可以在几秒钟内提供的结果:
设置
只需将此脚本(文件夹以及gepetto-locales
)拖放到 IDA 插件文件夹中($IDAUSR/plugins
)。 默认情况下,在 Windows 上,这应该是 %AppData%\Hex-Rays\IDA Pro\plugins
(您可能需要创建文件夹)。
您需要将所需的包添加到 IDA 的 Python 安装中,脚本才能正常工作。 通过检查以下注册表项Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA
来查找(Python3TargetDLL) IDA 正在使用的解释器:(在 Windows 上默认:%LOCALAPPDATA%\Programs\Python\Python39
)。 最后,使用相应的解释器,只需运行:
1 2 |
[/path/to/python] -m pip install -r requirements.txt |
⚠️您还需要编辑脚本并添加自己的 API 密钥,该密钥可在此页面上找到。 请注意,gpt-3.5-turbo 查询不是免费的(虽然不是很贵),您需要设置一种付款方式。
⚠️警告⚠️Gepetto现在正在使用OpenAI最新的gpt-3.5-turbo模型。如果您最近升级了,请确保您使用的是最近的 openai
Python 包的版本。requirements.txt
该文件已相应地升级。
用法
正确安装插件后,您应该能够从 IDA 伪代码窗口的上下文菜单中调用它, 如下面的屏幕截图所示:
您还可以使用以下热键:
- 请 gpt-3.5-turbo 解释该功能:
Ctrl
+Alt
+H
- 为函数的变量请求更好的名称:
Ctrl
+Alt
+R
初步测试表明,如果您首先要求对函数进行解释,则要求更好的名称效果更好 – I 假设因为 GPT-3.5-turbo 然后使用自己的注释来提出更准确的建议。 人工智能的回复有随机性。如果由于某种原因您得到的初始响应不适合您, 您始终可以再次运行该命令。
局限性
- 该插件需要访问 HexRays 反编译器才能运行。
- GPT-3.5-Turbo 是一种通用语言模型,很可能会出错!始终对返回的结果持批评态度!
翻译
您可以通过在第一行中编辑脚本的区域设置来更改 Gepetto 的语言。例如,使用插件 在法语中,您只需添加:
1 |
language = "fr_FR" |
所选区域设置必须与“gepetto-locales 文件夹中的文件夹名称”匹配。如果所需的语言不可用, 您可以通过自己添加来为项目做出贡献!参与的翻译门户在Transifex上。