博客
关于我
SymCC 使用教程
阅读量:472 次
发布时间:2019-03-06

本文共 1011 字,大约阅读时间需要 3 分钟。

SymCC 使用教程

项目介绍

SymCC 是一个基于 LLVM 的 C 和 C++ 编译器,它将混合执行(concolic execution)直接集成到二进制文件中。SymCC 可以作为 clang 和 clang++ 的替代品,用于软件开发。它通过编译时插入符号执行代码,显著提高了符号执行的速度,使其更接近原生执行速度。SymCC 是一个开源项目,遵循 GPL-3.0 许可证。

项目快速启动

安装依赖

在开始使用 SymCC 之前,需要确保系统中安装了必要的依赖项,包括 LLVM 和 Clang。可以通过以下命令安装这些依赖项:

sudo apt-get update
sudo apt-get install -y cmake llvm clang

克隆项目

首先,从 GitHub 克隆 SymCC 项目:

git clone https://github.com/eurecom-s3/symcc.git
cd symcc

构建项目

使用 CMake 构建 SymCC:

mkdir build
cd build
cmake -G "Unix Makefiles" ..
make

使用 SymCC 编译代码

使用 SymCC 编译 C 或 C++ 代码:

./symcc /path/to/your/source.c -o output

应用案例和最佳实践

应用案例

SymCC 可以用于各种安全相关的应用,例如:

  • 漏洞检测:通过符号执行分析程序路径,发现潜在的安全漏洞。
  • 模糊测试:结合模糊测试工具(如 AFL),提高测试覆盖率。

最佳实践

  • 结合 AFL 使用:SymCC 可以与 AFL(American Fuzzy Lop)结合使用,提高模糊测试的效率。
  • 优化编译选项:根据具体需求调整编译选项,以达到最佳性能。

典型生态项目

SymQEMU

SymQEMU 是一个基于 QEMU 的工具,它利用 SymCC 进行符号执行,扩展了 QEMU 的功能,使其能够执行符号执行。

LibAFL

LibAFL 是一个模糊测试库,支持与 SymCC 结合进行符号执行,提供了更强大的测试能力。

GNATfuzz

GNATfuzz 是一个 AdaCore 开发的工具,它集成了 SymCC,用于生成测试用例,提高代码覆盖率。

通过以上教程,您可以快速上手 SymCC,并了解其在安全领域的应用和相关生态项目。

转载地址:http://ximbz.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
查看>>
NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
查看>>
NIFI大数据进阶_使用NIFI表达式语言_来获取自定义属性中的数据_NIFI表达式使用体验---大数据之Nifi工作笔记0024
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>
NIFI大数据进阶_内嵌ZK模式集群2_实际操作搭建NIFI内嵌模式集群---大数据之Nifi工作笔记0016
查看>>
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_实际操作_03---大数据之Nifi工作笔记0035
查看>>
NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033
查看>>
NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_02---大数据之Nifi工作笔记0034
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>