- from–https://bbs.kanxue.com/thread-276026.htm
- 2023-2-8 12:11 14677
目前,ChatGPT火了,各种方式调戏,能辅助编写各种总结。
对程序猿来说:不但能根据需求写代码,看不懂的代码还能帮忙解读代码,写代码注释。以后的开发文档也不愁了。
还可以编写exp和Fuzz代码,总之,能力很强。
听说有IDA插件,小测一下,算是抛砖引玉吧。
(1)Geptto是一个IDA插件,它使用了chatGPT的API,通过调用API,能够在IDA中让chatGPT识别函数,对函数实现的功能进行描述,并且根据函数的功能将变量重命名为易于理解的形式。
1 2 | https: / / github.com / JusticeRage / Gepetto (附件的脚本改为调用GPT - 3 ,改成中文支持) |
(2)VulChatGPT是在Geptto的基础上进行了一点小修改,返会函数可能存在的漏洞,还可以生成漏洞的利用脚本。
1 2 | https: / / github.com / ke0z / VulChatGPT (附件的脚本改为调用GPT - 3 ,改成中文支持) |
这两个脚本其实原理相同:都用了使用 OpenAI 的 davinci-003 模型为 IDA Pro 反编译的函数提供分析结果。
(3)WPeChatGPT是坛友WPeace在Geptto的基础上做了一些改进,会函数分析、会变量重命名,还能发现可能的漏洞,最后:还可以生成漏洞的利用脚本。
创新点是:可以python还原函数。
v2.0 版本后使用 OpenAI 最新的 gpt-3.5-turbo 模型
1 | https: / / github.com / WPeace - HcH / WPeChatGPT |
1.首先安装openai的python依赖库,建议用python3.6或3.8:
1 | pip install openai |
2.申请或者借一个openai的API Key.
登录openai后,右上角“view API keys”,API keys,创建一个”API keys”.
记下API keys(注意:API Keys只能显示一次)。
把 API keys 放入附件的python脚本的第14行。
3.复制到IDA目录下的plugins目录中,重新启动IDA pro,看是否正常加载(没有报错信息就没什么大问题)。
4.使用方法:使用你的IDA随意打开一个二进制文件,选择一个函数按F5完成反汇编,然后在反汇编窗口右键,会有一个选项卡
选择“VulChat”或“Gepetto”下的子菜单就可以了。
剩下的就是等待了,大约30-60秒,会有返回结果。
函数名称上方增加的注释即是结果。
一个不恰当的例子(没找到合适的二进制漏洞演示文件),只是让大家看看效果。
如下:
因为脚本很好理解。发送要求和伪代码段给openai的API接口过去,大家可以自行修改。
后续改进方向:
1.针对大函数不能解析的问题,发现 code-davinci-002这个模型支持 8000 tokens,建议替换试用效果。
- 场景:假设要分析的文件有1000个函数,手动一个一个发送过去让AI分析太累。让程序自动跑,睡一觉后,二进制文件的分析已经分析完毕。懒人才开始进入人工分析阶段。
实现思路:1.增加“一键分析Sub_开头的所有函数”,2.程序还会判断只有大于100字的函数才做分析。3.多线程或多单线程慢慢解析。