使用OpenAI的gpt-3.5-turbo模型为IDA Pro反编译的函数提供含义

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)。 最后,使用相应的解释器,只需运行:

⚠️您还需要编辑脚本并添加自己的 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 的语言。例如,使用插件 在法语中,您只需添加:

所选区域设置必须与“gepetto-locales 文件夹中的文件夹名称”匹配。如果所需的语言不可用, 您可以通过自己添加来为项目做出贡献!参与的翻译门户在Transifex上。

确认

  • OpenAI,显然是为了制作这个令人难以置信的聊天机器人
  • Hex Rays,IDA的制造商,因为他们闪电般的快速支持
  • 卡巴斯基,资助我所有的研究

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部