Gepetto:使用chatGPT来对函数功能进行分析并重命名变量的IDA插件
最近OpenAI的chatGPT很火,chatGPT是一个大型的语言模型,能够生成人类语言的文本,主要用于对话式的问答和聊天,以及模拟人类的对话行为
有关chatGPT的介绍就不多赘述了,相关内容很多,这是它们的官网OpenAI API
而Geptto是一个IDA插件,它使用了chatGPT的API,通过调用API,能够在IDA中让chatGPT识别函数,对函数实现的功能进行描述,并且根据函数的功能将变量重命名为易于理解的形式(而不是IDA中的v1 v2...)
Gepetto安装#
以下是在windows中安装Gepetto插件,首先进入它们的仓库下载源码,源码内容如下图
然后,将gepetto.py复制,保存在IDA/plugins文件夹下。
此外,你需要注册一个chatGPT的账号,并获取API key,注册chatGPT需要有梯子,具体方法见此处注册ChatGPT全攻略 (qq.com)
现在假设你已经注册好了chatGPT的账号,点击右上角的个人头像查看API key:
选择创建一个API key(这里我已经创建过了)
复制API key,然后打开保存在plugins里的gepetto.py文件,在此处添加你的API key,作为变量openai.api_key的值
Gepetto的使用#
现在,使用你的IDA随意打开一个二进制文件,选择一个函数按F5完成反汇编,然后在反汇编窗口右键,会有一个Gepetto的选项卡
Explain function可以解释函数功能,Rename variables则用于重命名变量,也可以使用快捷键调用。根据作者的测试,重命名变量通常在解释函数功能之后使用效果更好。
以下是两种方式使用前后的对比图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通