更新于 

IDA智能翻译插件Gepetto安装

0x01 基本配置

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

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

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

Geptto开源,地址如下Gepetto

Geptto 安装

以下是在windows中安装Gepetto插件,首先进入它们的仓库下载源码,源码内容如下图

然后,将gepetto.py复制,保存在IDA/plugins文件夹下。

此外,你需要注册一个chatGPT的账号,并获取API key

现在假设你已经注册好了chatGPT的账号,点击右上角的个人头像查看API key:

选择创建一个API key,复制API key,然后打开保存在plugins里的gepetto.py文件,在此处添加你的API key,作为变量openai.api_key的值

Gepetto的使用

现在,使用你的IDA随意打开一个二进制文件,选择一个函数按F5完成反汇编,然后在反汇编窗口右键,会有一个Gepetto的选项卡

Explain function可以解释函数功能,Rename variables则用于重命名变量,也可以使用快捷键调用。根据作者的测试,重命名变量通常在解释函数功能之后使用效果更好。

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

0x02 全平台配置(仅限于Windows可用)

windows 平台

step1.把编辑好的Geptto文件放到IDA的Plugin中
step2.下载python3.8版本并且配置环境变量
step3.cmd打开regedit 编辑 Python3TargetDLL 字符为你的python3下面的 python3.dll 目录
step4.使用Python中的 python3.exe -m pip install 下载你需要的插件(openai)
step5.运行IDA根目录下的idapythonswitch.exe 选择你使用的python版本,默认使用Python3TargetDLL 配置下的目录

Linux 平台(Kali Linux)

执行流程如下 > IDA Pro 7.6 (Windows) => Wine 6.x => Rosetta2
step1.确保安装了wine
step2.把编辑好的Geptto文件放到IDA的Plugin中
step3.winecfg 设置系统为 windows10 点击ok

step4.wine c:/ 打开文件夹,右键选择

查看IDA安装目录

step5.wine regedit 编辑注册表,配置Python3TargetDLL

step6.使用wine ida.exe 打开ida进行测试

  • 没看到插件,查看报错信息

  • 得到两点

    • 1).openai 库不存在,无法打开对应的文件
    • 2).默认使用的不是python3 而是 python/3 说明使用的目录不对
      解决:
      运行IDA根目录的idapythonswitch.exe确定使用的python版本

      弹出这个界面表示正常配置了Python.dll文件,使用
      wine Desktop/IDAPro/ida.exe运行,发现程序没有启动,并且报错了

到了这一步就卡住了

MacOs平台

和KaliLinux配置步骤一致,都是配置好了之后到了那一步卡住了

C:\users\spider\Documents\IDAPro77Portable\python38\python38.dll

0x03 QA总结

IDA安装chatGPT插件Geppto
https://bbs.kanxue.com/thread-270804.htm
link