關于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