最近OpenAI的chatGPT很火,chatGPT是一个大型的语言模型,能够生成人类语言的文本,主要用于对话式的问答和聊天,以及模拟人类的对话行为

有关chatGPT的介绍就不多赘述了,相关内容很多,这是它们的官网OpenAI API

而Geptto是一个IDA插件,它使用了chatGPT的API,通过调用API,能够在IDA中让chatGPT识别函数,对函数实现的功能进行描述,并且根据函数的功能将变量重命名为易于理解的形式(而不是IDA中的v1 v2...)

Geptto开源,地址如下JusticeRage/Gepetto: IDA plugin which queries OpenAI's davinci-003 language model to speed up reverse-engineering (github.com)

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则用于重命名变量,也可以使用快捷键调用。根据作者的测试,重命名变量通常在解释函数功能之后使用效果更好。

以下是两种方式使用前后的对比图

最新文章

  1. js-特效部分学习-offsetParent、scrollHeight 、动画函数的封装
  2. SharePoint 2013 内容部署功能简介
  3. jQuery学习笔记(2)
  4. Yarn中如何生成状态机图
  5. Most Powerful(ZOJ 3471状压dp)
  6. linux移植简介[MS2]
  7. 使用VisualStudio进行单元测试之一
  8. PHP创建桌面快捷方式实例
  9. 打造阅读Linux源代码利器
  10. Java基础-运行原理及变量(01)
  11. 腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来
  12. 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现高斯分布参数推断
  13. SpriteBuilder中节点位置类型为百分比时不能定位的解决
  14. pdf 下载demo
  15. [转载]vb 时间戳与时间互转
  16. Linux学习笔记:nginx基础
  17. JavaScript百宝箱
  18. C#生成不重复的N位随机数
  19. nginx 限制并发访问及请求频率
  20. 全网最详细的CentOS7里安装MySQL时出现No package mysql-server available错误的解决办法(图文详解)

热门文章

  1. EFK-2:ElasticSearch高性能高可用架构
  2. python动态参数
  3. Linux 宝塔部署 ASP.NET Core 应用
  4. Docker容器获取宿主机信息
  5. LeetCode - 二维数组及滚动数组
  6. 关于Azure-AzCopy在Linux环境下的安装
  7. 一篇文章带你了解网页框架——Vue简单入门
  8. 5.MongoDB系列之索引(二)
  9. js红宝书学习笔记(一)引用类型
  10. Linux实战笔记_CentOS7_格式化磁盘