IDA逆向分析chatgpt插件 Gepetto
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