首页 > 其他分享 >Gepetto:使用chatGPT来对函数功能进行分析并重命名变量的IDA插件

Gepetto:使用chatGPT来对函数功能进行分析并重命名变量的IDA插件

时间:2022-12-06 11:11:20浏览次数:91  
标签:插件 函数 Gepetto API key chatGPT IDA

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

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

 

标签:插件,函数,Gepetto,API,key,chatGPT,IDA
From: https://www.cnblogs.com/level5uiharu/p/16954665.html

相关文章

  • ChatGPT 编写的 Rust 二叉树
    //定义二叉树节点structNode{  //节点值  value:i32,  //左子树  left:Option<Box<Node>>,  //右子树  right:Option<Box<Node......
  • IDEA 必装插件
    FreeEnhancedMybatis这是一款增强IDEA对mybatis支持的插件,基于之前的插件FreeMybatisPlugin做了修改,主要功能如下:生成mapper.xml文件快速从代码跳转到mapper及从ma......
  • 第一章、chrome插件
    目录一、chromeextensions(扩展)1、introduction(介绍)2、tutorialstructure(教程结构)3、thebigpicture(大局)4、extensiontypes(扩展类型)5、mainfest(清单)二、helloworld1、......
  • Docker远程挂载volumn插件vieux/sshfs
    通常,用在本地容器需要挂载一个远程目录的时候来使用安装vieux/sshfs插件dockerplugininstall--grant-all-permissionsvieux/sshfs使用镜像加速,我是没有下载成功......
  • 开发谷歌插件(三)
    经过了两天的摸索,基本的一些功能和需要的前期准备工作已经ok那么就开始创建钱包吧:首先要引入三个npm包:constbip39=require('bip39')const{hdkey}=require('eth......
  • 开发谷歌插件--web3钱包(一)
    之前开发了一款谷歌插件,因为很简单没有什么好记录的。这次记录下一款新的钱包功能的插件,其中遇到的问题,以及解决方案。首先遇到的问题就是唤醒:小狐狸钱包应该都用过,点击......
  • UE4 WebUI插件使用指南
    在开发数字孪生应用程序的时候,除了三维场景展示之外,也需要开发丰富和酷炫的2D页面。使用UE4的UMG开发图表显得比较笨拙。而通过Web插件允许开发者创建丰富的基于WebHTML......
  • 精选、前端开发N个必备的 VSCode 插件
    目录​​一、汉化vscode​​​​二、vue2代码提示​​​​三、格式化高亮vue代码​​​​四、实时预览网页效果​​​​五、html标签​​​​六、格式化代码​​​​七、规......
  • jquery插件系列之 - Slider滑块
    概述    滑动条是一种简单的设置一定范围内参数的插件。    官方示例地址:http://jqueryui.com/demos/slider/          ·参数(参数名:参数类型:......
  • struts2跟hibernate结合的一个不错的才插件fullhibernateplugin
    今天发现一个不错的struts2跟hibernate整合的插件,名字叫fullhibernateplugin,是开源的,地址在:​​​http://code.google.com/p/full-hibernate-pl......