Skip to content

Latest commit

 

History

History
102 lines (80 loc) · 6.52 KB

external_projects.md

File metadata and controls

102 lines (80 loc) · 6.52 KB

VMF External Projects

Overview

VMF contains a collection of different tools which attempts to build a unified experience for a given end user attempting to fuzz software. As such, there are numeous third party efforts being utilized by VMF. These are primarily included as source (a particular version verified to work with VMF), but a few come from the OS.

This document intends to track the included third party tools, and their associated licenses in order to ensure all license conditions are being met, and no incompatibly licensed tools are being included.

Projects included at a source level

Project Version License
googletest release-1.8.0-2963-8d51dc50 BSD Clause 3 New or Revised
json11 head-2df9473f MIT
Klee ktest 1.0 University of Illinois/NCSA Open Source License
plog 1.1.9-d60df3a1 MIT
restclient-cpp 0.5.2-c4683b21 MIT
uthash 2.1.0 BSD Revised
yaml-cpp yaml-cpp-0.7.0-31-987a6042 MIT
ziplib 0.01 zlib

Installed Packages

A classic example of this is the ln Linux tool for making links to files, or the stdio.h C header for enabling printing to STDOUT and reading from STDIN.

Note: VMF is compatible with compiler instrumentation from AFL++ 4.10c or earlier, due to an update in the forkserver interface that was introduced in 4.20c. VMF will be updated in a future release to fix this compatibility issue.

Enumeration of these installations is for record keeping only:

Package Installation type
afl++ apt
afl++-clang apt
afl++-doc apt
ca-certificates apt
libcurl-dev apt
gdb apt
gnupg apt
libcurl-4-openssl-dev apt
lsb-core apt
lsb-release apt
graphviz apt
clang-12 apt
doxygen apt
llvm-12 apt
python3-dev apt
python3-pip apt
python3-setuptools apt
build-essential apt
cmake apt
lief pip
zip apt

These packages need to be installed in order to build and run VMF.

KLEE

klee must be installed and in your $PATH order to use the KleeInitialization module, which generates an initial corpus/seeds using symbolic execution. The KLEE team maintains instructions to build KLEE from source; however, we have found that specific versions of requirements such as LLVM may be mutually exclusive or difficult to manage in parallel with versions that are commonly available. As a result, we suggest running KLEE in Docker with VMF instead. See the docker/README.md for information for building VMF with Klee in Docker.

CDMS external projects

The distributed fuzzing Campaign Data Management Server (CDMS) depends on many different packages and libraries. Similar to VMF dependencies, there are two kinds of inclusion currently being performed:

  • Inclusion as a Java Archive (.jar) file
  • Inclusion at a source level by copying portions of a third-party package into CDMS

Projects included at a library level

Build artifacts for these dependencies are included as Java Archive (.jar) files

Project Version License
Gson gson-parent-2.10.1 Apache 2.0
ibatis 2.5.0 Apache 2.0
sqlite-jdbc 3.43.0.0 Apache 2.0

Projects included at a source level

Project Version License
JQuery 3.7.1 MIT
JQuery UI 1.8.1 Dual licensed under the MIT and GPL licenses
JQuery UI 1.13.2 MIT
TableCSVExport head MIT
Tablesorter 2.31.1 Dual licensed under MIT or GPL licenses
W3 CSS 4.15 Public domain

Note: For items where no license link is provided, the license statement is only included in file header comments and not as a separate file in the repository.