IDA逆向分析chatgpt插件 Gepetto

发布时间 2023-08-18 15:46:52作者: bonelee

Gepetto 是一个 Python 脚本,它使用 OpenAI 的 gpt-3.5-turbo 和 gpt-4 模型来为 IDA Pro 反编译的函数提供含义。目前,它可以要求 gpt-3.5-turbo 解释函数的作用,并自动重命名其变量。这是一个简单的示例,说明它可以在几秒钟内提供什么结果:

设置

只需将此脚本(以及gepetto/文件夹)放入您的 IDA 插件文件夹 ( $IDAUSR/plugins) 中即可。默认情况下,在 Windows 上,这应该是%AppData%\Hex-Rays\IDA Pro\plugins(您可能需要创建该文件夹)。

您需要将所需的包添加到 IDA 的 Python 安装中,脚本才能正常工作。通过检查以下注册表项查找 IDA 正在使用哪个解释器: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA(Windows 上的默认值%LOCALAPPDATA%\Programs\Python\Python39:)。最后,使用相应的解释器,只需运行:

[/path/to/python] -m pip install -r requirements.txt
 

⚠️您还需要编辑配置文件(如gepetto/config.ini)并添加您自己的 API 密钥,可以在此页面上找到该密钥。请注意,OpenAI API 查询不是免费的(尽管不是很贵),您需要设置付款方式。

⚠️为了使用 GPT-4,您需要访问 API。可以在 此地址索取。如果您的帐户不支持 GPT-4,API 将返回以下错误消息:

The model: `gpt-4` does not exist
 

用法

正确安装插件后,您应该能够从 IDA 伪代码窗口的上下文菜单中调用它,如下面的屏幕截图所示:

从“编辑”>“Gepetto”菜单在 Gepetto 支持的模型之间切换:

 

我自己的效果图:

 

当然,设置了下ss代理:

[Gepetto]
MODEL = gpt-3.5-turbo

# Specify the program language. It can be "fr_FR", "zh_CN", or any folder in locales. Defaults to English.
LANGUAGE = zh_CN

[OpenAI]
# Set your API key here, or put it in the OPENAI_API_KEY environment variable.
API_KEY = 你自己的key

# Set your OpenAI Proxy here, or put it in the HTTPS_PROXY environment variable.
# Such as: OPENAI_PROXY = http://127.0.0.1:7890
OPENAI_PROXY = http://127.0.0.1:1080