QSYM: 专为混合式漏洞扫描定制的实用并行执行引擎
# 禁用 PIN 的 ptrace_scope
$ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
# 安装 z3 和系统依赖项
$ ./setup.sh
# 使用虚拟环境进行安装
$ virtualenv venv
$ source venv/bin/activate
$ pip install .# 禁用 PIN 的 ptrace_scope
$ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
# 构建 Docker 镜像
$ Docker build -t qsym ./
# 运行 Docker 镜像
$ Docker run --cap-add=SYS_PTRACE -it qsym /bin/bash由于 QSYM 依赖于底层内核,因为它的 PIN 过时,我们决定提供一个方便的方法来使用 VM 安装 QSYM。请查看我们的 vagrant 目录。
$ $AFL_ROOT/afl-fuzz -M afl-master -i $INPUT -o $OUTPUT -- $AFL_CMDLINE
$ $AFL_ROOT/afl-fuzz -S afl-slave -i $INPUT -o $OUTPUT -- $AFL_CMDLINE
$ bin/run_qsym_afl.py -a afl-slave -o $OUTPUT -n qsym -- $QSYM_CMDLINE
## 运行以进行测试
~~~~{.sh}
$ cd tests
$ Python build.py
$ Python -m pytest -n $(nproc)如果您发现无法启动 QSYM,并且在 pin.log 文件中收到“undefined symbol: Z3_is_seq_sort”错误,请确保在虚拟环境(env)中编译和生成目标。当您退出此环境并编译目标时,QSYM 无法与目标二进制文件一起工作,并在 pin.log 文件中出现上述错误。这将大大节省您的编译和生成目标的时间,然后在目标上运行 QSYM,QSYM 将如愿以偿地工作!
暂无开放 Issues,或尚未同步最近议题。