关于Callisto 


Callisto是一款基于人工智能实现的二进制代码漏洞分析工具,该工具的主要目的是通过自动化方式反编译研究人员输入的二进制代码文件,并通过输出的伪代码进行迭代分析,以查找C伪代码中潜在的安全漏洞。


该工具使用了Ghidra的Headless反编译器来驱动二进制代码文件的反编译和分析部分,伪代码的分析最早是由Semgrep SAST工具实现的,但现在迁移到了GPT-3.5-Turbo,以验证Semgrep的发现或识别其他潜在的安全漏洞。


该工具可以帮助广大研究人员分析二进制代码文件或识别0 day漏洞,通过分析,我们可以识别出二进制代码文件中的特定区域或易受攻击的组件,然后通过动态测试来对发现进行验证和利用。

 工具要求 


1、如果你想要使用GPT-3.5-Turbo功能的话,你必须要在OpenAI网站上创建一个API令牌,并将其存储到项目目录下的config.txt文件中;
2、Ghidra;
3、Semgrep:pip install semgrep;
4、requirements.txt中指定的其他依赖组件;
5、确保你Ghidra目录的正确路径在config.txt文件中进行了配置;

工具安装 


由于该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/JetP1ane/Callisto.git

然后切换到项目目录中,使用pip工具和项目提供的requirements.txt安装该

工具所需的其他依赖组件:

cd Callisto
pip install -r requirements.txt

 工具使用 

我们可以直接使用下列命令运行Callisto:


python callisto.py -b <path_to_binary> -ai -o <path_to_output_file>

参数解析

-ai(可选):启动OpenAI GPT-3.5-Turbo分析 功能,你需要先在config.txt配置文件中填写有效的OpenAI API密钥;
-o(可选):指定存储输出结果的文件路径;
-all:该参数将控制工具通过OpenAI分析功能执行工具所有的功能,并忽略Semgrep的扫描结果,该参数需要结合-ai参数一起使用;

使用样例


python callisto.py -b vulnProgram.exe -ai -o results.txtpython callisto.py -b vulnProgram.exe -ai -all -o results.txt

 工具运行截图 



工具使用演示 


 项目地址 


Callisto:https://github.com/JetP1ane/Callisto