New port: security/afl

American fuzzy lop is a fuzzer that employs a novel type of compile-time
instrumentation and genetic algorithms to automatically discover clean,
interesting test cases that trigger new internal states in the targeted
binary. This substantially improves the functional coverage for the
fuzzed code.

WWW: http://lcamtuf.coredump.cx/afl/

PR:		195279
Submitted by:	Fabian Keil <fk@fabiankeil.de>
This commit is contained in:
Kurt Jaeger 2014-11-22 13:01:50 +00:00
parent 70e3ccac66
commit 0db625f010
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=373056
5 changed files with 104 additions and 0 deletions

View File

@ -9,6 +9,7 @@
SUBDIR += R-cran-digest
SUBDIR += aescrypt
SUBDIR += aespipe
SUBDIR += afl
SUBDIR += afterglow
SUBDIR += aide
SUBDIR += aimsniff

56
security/afl/Makefile Normal file
View File

@ -0,0 +1,56 @@
# Created by: Fabian Keil <fk@fabiankeil.de>
# $FreeBSD$
PORTNAME= afl
PORTVERSION= 0.61b
CATEGORIES= security
MASTER_SITES= http://lcamtuf.coredump.cx/afl/releases/
MAINTAINER= fk@fabiankeil.de
COMMENT= Fast instrumented fuzzer
USES= compiler gmake tar:tgz
OPTIONS_DEFINE= DEBUG DOCS TEST_INSTRUMENTATION
TEST_INSTRUMENTATION_DESC= Execute tests expected to fail in jails
OPTIONS_DEFAULT= DOCS
ONLY_FOR_ARCHS= amd64 i386
ONLY_FOR_ARCHS_REASON= Uses binary instrumentation
# XXX replace with bsd.port.options.mk once 8.4-RELEASE is EOL
# COMPILER_TYPE is defined in .pre without /usr/share/mk/bsd.compiler.mk
.include <bsd.port.pre.mk>
.if (${COMPILER_TYPE} == "clang" && ${ARCH} == "i386")
# Clang i386 emits .cfi_sections which base as(1) doesn't understand
BUILD_DEPENDS += ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
RUN_DEPENDS += ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
.endif
post-patch:
.if ! ${PORT_OPTIONS:MTEST_INSTRUMENTATION}
# afl needs shmget() which usually isn't available in jails. Disabling
# the instrumentation tests makes sure building packages in jails works
# by default anyway.
${REINPLACE_CMD} -e 's@^\(all.*\) test_build@\1@' ${WRKSRC}/Makefile
.endif
${REINPLACE_CMD} -e 's@ -O3@@; s@ -g@@' \
-e 's@install -m 755@${INSTALL_PROGRAM}@' \
${WRKSRC}/Makefile
.if (${COMPILER_TYPE} == "clang" && ${ARCH} == "i386")
${REINPLACE_CMD} -e 's@\( as_params\[0\] = "\)@\1${LOCALBASE}/bin/@' \
${WRKSRC}/afl-as.c
.endif
# XXX remove once 8.4-RELEASE is EOL
# GNU as 2.15 doesn't understand lahf/sahf on amd64
${REINPLACE_CMD} -e 's@ifdef.*\(__OpenBSD__\)@if defined(\1) || \
(defined(__FreeBSD__) \&\& __FreeBSD__ < 9)@' \
${WRKSRC}/afl-as.h
post-install:
.if ${PORT_OPTIONS:MDOCS}
${INSTALL_DATA} ${WRKSRC}/docs/COPYING ${STAGEDIR}${DOCSDIR}/
.endif
.include <bsd.port.post.mk>

2
security/afl/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (afl-0.61b.tgz) = 6f0613c4568bb24f43c8672c351a7205c41836f0d6def9ce98b75aca119d3a1e
SIZE (afl-0.61b.tgz) = 678234

7
security/afl/pkg-descr Normal file
View File

@ -0,0 +1,7 @@
American fuzzy lop is a fuzzer that employs a novel type of compile-time
instrumentation and genetic algorithms to automatically discover clean,
interesting test cases that trigger new internal states in the targeted
binary. This substantially improves the functional coverage for the
fuzzed code.
WWW: http://lcamtuf.coredump.cx/afl/

38
security/afl/pkg-plist Normal file
View File

@ -0,0 +1,38 @@
%%PORTDOCS%%%%DOCSDIR%%/COPYING
%%PORTDOCS%%%%DOCSDIR%%/ChangeLog
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/current_todo.txt
%%PORTDOCS%%%%DOCSDIR%%/env_variables.txt
%%PORTDOCS%%%%DOCSDIR%%/notes_for_asan.txt
%%PORTDOCS%%%%DOCSDIR%%/parallel_fuzzing.txt
%%PORTDOCS%%%%DOCSDIR%%/perf_tips.txt
%%PORTDOCS%%%%DOCSDIR%%/related_work.txt
%%PORTDOCS%%%%DOCSDIR%%/status_screen.txt
bin/afl-clang
bin/afl-clang++
bin/afl-fuzz
bin/afl-g++
bin/afl-gcc
bin/afl-showmap
lib/afl/afl-as
lib/afl/as
share/afl/archives/gzip/small_archive.gz
share/afl/archives/lzo/small_achive.lzo
share/afl/archives/tar/small_archive.tar
share/afl/archives/xz/small_archive.xz
share/afl/archives/zip/small_archive.zip
share/afl/images/bmp/hello_kitty.bmp
share/afl/images/gif/hello_kitty.gif
share/afl/images/ico/hello_kitty.ico
share/afl/images/jp2/hello_kitty.jp2
share/afl/images/jpeg/hello_kitty.jpg
share/afl/images/png/hello_kitty.png
share/afl/images/tiff/hello_kitty.tif
share/afl/images/webp/hello_kitty_lossless.webp
share/afl/multimedia/h264/small_movie.mp4
share/afl/others/elf/small_exec.elf
share/afl/others/hello/hello.txt
share/afl/others/pcap/small_capture.pcap
share/afl/others/rtf/small_document.rtf
share/afl/others/xml/small_document.xml
share/afl/wishlist.txt