Skip to content

Latest commit

 

History

History
101 lines (80 loc) · 6.38 KB

File metadata and controls

101 lines (80 loc) · 6.38 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
curl 8.9.1 Custom
googletest 1.17.0 BSD Clause 3 New or Revised
json11 v1.0.0 MIT
Klee ktest 1.0 University of Illinois/NCSA Open Source License
plog 1.1.10 MIT
restclient-cpp 0.5.3 MIT
wingetopt 1.00 ISD
uthash 2.3.0 BSD Revised
yaml-cpp yaml-cpp-0.8.0 MIT

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.

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 (see section 'Building from source (with LLVM xx)'); 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.