Skip to content

南京大学软件测试课,模糊测试方向课程大作业,被测程序以及构建脚本

Notifications You must be signed in to change notification settings

Slinet6056/NJU-AT-fuzz-targets

 
 

Repository files navigation

NJUse 软件测试课程作业(模糊测试方向)

在原项目基础上添加了更多比较 Tricky 的构建脚本,现在可以一键构建所有目标程序并生成初始种子 😋。使用方法:进入sh目录,运行chmod +x build_all.sh && ./build_all.sh即可,结果位于根目录下的output文件夹中。

默认不使用afl-tmin进行种子最小化,结果目录下的tmin文件夹为afl-cmin结果,设置环境变量ENABLE_AFL_TMIN=1可以开启。

南京大学软件学院,2024 秋季软件测试课程,模糊测试方向代码大作业选题指定的模糊目标程序。 选择该课题的小组应当在了解AFL++运行原理的基础上,参考 AFL++的实现,使用 Java 或者 Python 语言自行实现模糊器。

1 项目结构

本项目目前包括以下内容:

  • fig/: 统计图表示例,供参考。
  • sh/: 一些比较 Tricky 的构建脚本,供参考。
  • *.tar.gz: 项目压缩包。

2 常见指令

这里列举一些使用 afl-cc 插装 C/C++项目时的常见指令。

# 安装常见依赖
apt-get install -y libtool build-essential cmake python3 gcc clang llvm file binutils

# 指定C/C++编译器。
export CC=<path-to-aflpp>/afl-cc
export CXX=<path-to-aflpp>/afl-cc

# 使用Autotools构建系统编译项目的典型流程。
./autogen.sh
./configure --disable-shared
make

# 使用cmake生成Makefile,之后编译项目。
cmake -S <path-to-src> -B <path-to-build> -G "Unix Makefiles"
cd <path-to-build>
make

3 模糊目标详细信息

下表为模糊目标/被测程序信息,从左到右每一列分别为目标 ID、目标名称、目标所在项目压缩包、使用 afl/afl++运行该目标时--部分后面的命令行内容,以及供参考的初始种子来源。

:构建lua时注意阅读src/Makefile

TID Target Project AFL-CMD Initial Seeds
T01 cxxfilt binutils-2.28.tar.gz cxxfilt "_Z1fv", (LLM-Generate)
T02 readelf binutils-2.28.tar.gz readelf -a @@ @@ afl++/testcases/others/elf/
T03 nm-new binutils-2.28.tar.gz nm-new @@ afl++/testcases/others/elf/
T04 objdump binutils-2.28.tar.gz objdump -d @@ afl++/testcases/others/elf/
T05 djpeg libjpeg-turbo-3.0.4.tar.gz djpeg @@ afl++/testcases/images/jpeg, <project>/testimages/
T06 readpng libpng-1.6.29.tar.gz readpng afl++/testcases/images/png/, <project>/tests/
T07 xmllint libxml2-2.13.4.tar.gz xmllint @@ afl++/testcases/others/xml/, <project>/test/
T08 lua lua-5.4.7.tar.gz lua @@ https://github.com/lua/lua/tree/master/testes
T09 mjs mjs-2.20.0.tar.gz mjs -f @@ afl++/testcases/others/js/, <project>/tests/
T10 tcpdump tcpdump-tcpdump-4.99.5.tar.gz tcpdump -nr @@ afl++/testcases/others/pcap/, <project>/tests/

About

南京大学软件测试课,模糊测试方向课程大作业,被测程序以及构建脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%