工具cryptbara使用记录
# 问题描述
配置使用cryptbara
# 步骤
# 部署
1、首先创建python环境, 3.8+
conda create -n cryptbara python=3.9 -y
1
2、按照对应的jdk版本, 11+
sdk install java 17.0.19-tem
1
3、设置AI 的api key。修改相关代码
# 修改cryptographicTools/cryptbara/llm/llm_detector.py 的 client = OpenAI() 这一行
client = OpenAI(
base_url="https://xplt.sdu.edu.cn:4000/v1"
)
# 修改 cryptographicTools/cryptbara/llm/llm_detector.py 的 model="gpt-4o-mini-2024-07-18" 这一行
model="SDU-AI/DeepSeek-V4-Flash"
1
2
3
4
5
6
2
3
4
5
6
# 在环境中设置环境变量
export OPENAI_API_KEY="sk-..."
1
2
2
4、安装相关依赖
pip install -r requirements.txt
1
5、安装joern (这一步之前安装过,所以简单放命令)
curl -L -o joern-install.sh https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x joern-install.sh
./joern-install.sh --interactive
# 添加以下内容到~/.bashrc
export PATH=$PATH:$HOME/path_to/bin/joern/joern-cli/bin
# 激活环境
source ~/.bashrc
# 可以使用joern 命令确认是否可以正常执行
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 使用
1、将要分析的python文件放到 target_files 文件夹下面。这个文件夹可以自己新建。
2、运行脚本
bash run.sh
1
具体运行结果会保存在run_results/{SESSION_TAG}/中。
简单的csv判定文件在cryptbara主文件夹下面,具体例子是cryptbara/results_20260624_154907_llm_summary.csv
3、也可以复现,需要在cryptbara主文件夹下面运行,不要在shell子文件夹中,不然t内置的arget文件夹相对路径不对。
# Static analysis only (Joern + AST)
bash shell/run_all.sh --session=20260624_100425
# LLM-based detection only
bash shell/run_llm.sh --session=20260624_100425
1
2
3
4
2
3
4
# PS
建议运行前确认jdk版本,python版本,joern是否可以正常调用,OPENAI_API_KEY是否配置了。