Gepetto是一个Python插件,它使用各种大型语言模型来为IDA Pro(≥7.4)的函数提供含义。它可以利用它们来解释函数的功能,并自动重命名其变量。这是一个简单的示例,说明了它仅在几秒钟内就可以提供的结果:
只需将此脚本( gepetto.py
以及gepetto/
文件夹)放入您的IDA插件文件夹( $IDAUSR/plugins
)中。默认情况下,在Windows上,这应该是%AppData%Hex-RaysIDA Proplugins
(您可能需要创建它)。
您需要将所需的软件包添加到IDA的Python安装中,以便脚本工作。查找通过检查以下注册表密钥来查找的解释器IDA使用: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA
(Windows上的默认值: %LOCALAPPDATA%ProgramsPythonPython39
)。最后,使用相应的解释器,只需运行:
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini
的形式找到)并添加自己的API键。对于Openai,可以在此页面上找到。请注意,API查询通常不是免费的(尽管不是很昂贵),因此您需要与相应的提供商建立付款方式。
只要您正在考虑将与OpenAI类似的API公开的任何提供商,对其他型号的支持不太困难。查看gepetto/models
文件夹以获取灵感,或者如果无法弄清楚,请打开问题。
插件正确安装后,您应该能够从IDA的伪代码窗口的上下文菜单中调用它,如下屏幕截图所示:
从编辑> Gepetto菜单中的Gepetto支持的模型之间切换:
Gepetto还提供了一个可以直接从IDA向LLM提出问题的CLI界面。确保在输入栏中选择Gepetto
:
可用以下热键:
Ctrl
+ Alt
+ G
Ctrl
+ Alt
+ R
初步测试表明,如果您首先要求对功能进行解释,请要求更好的名称效果更好 - 我认为,因为该模型然后使用其自己的评论来提出更准确的建议。 AI的答复有一个随机性。如果由于某种原因,您得到的初始响应不适合您,则可以随时再次运行命令。
您可以通过编辑配置中的语言来更改Gepetto的语言。例如,要使用法语插件,您只需添加:
[Gepetto]
LANGUAGE = " fr_FR "
所选的语言环境必须匹配gepetto/locales
中的文件夹名称。如果没有所需的语言,您可以通过自己添加来为该项目做出贡献!为所需的语言环境创建一个新文件夹(例如: gepetto/locales/de_DE/LC_MESSAGES/
),并使用更新的.po
文件打开一个新的拉请请求,您可以通过复制和编辑gepetto/locales/gepetto.pot
(替换所有用smsgstr ins msgstr
用本地化版本)来创建该请求)。