summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2023-09-15 05:27:52 +0200
committerHilton Chain <hako@ultrarare.space>2024-01-25 23:48:49 +0800
commit06221e910a5718c7d4ad2dcc7ffad2bc8e92fdc5 (patch)
tree024ab101ed965c38a794e81f6d996e39f2a3c737
parent250477d89698309842fb51fd46020ddabfc75a13 (diff)
gnu: Add aflplusplus.
* gnu/packages/debug.scm (aflplusplus): New variable. Change-Id: Ibda36187e839d5f533d461444db25a7ba5567f0f Modified-by: Hilton Chain <hako@ultrarare.space> Signed-off-by: Hilton Chain <hako@ultrarare.space>
-rw-r--r--gnu/packages/debug.scm55
1 files changed, 55 insertions, 0 deletions
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 5a528c7a28a..6d4567acc40 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -50,6 +50,7 @@
50 #:use-module (gnu packages code) 50 #:use-module (gnu packages code)
51 #:use-module (gnu packages compression) 51 #:use-module (gnu packages compression)
52 #:use-module (gnu packages flex) 52 #:use-module (gnu packages flex)
53 #:use-module (gnu packages gcc)
53 #:use-module (gnu packages gdb) 54 #:use-module (gnu packages gdb)
54 #:use-module (gnu packages glib) 55 #:use-module (gnu packages glib)
55 #:use-module (gnu packages gtk) 56 #:use-module (gnu packages gtk)
@@ -59,6 +60,7 @@
59 #:use-module (gnu packages libusb) 60 #:use-module (gnu packages libusb)
60 #:use-module (gnu packages linux) 61 #:use-module (gnu packages linux)
61 #:use-module (gnu packages llvm) 62 #:use-module (gnu packages llvm)
63 #:use-module (gnu packages multiprecision)
62 #:use-module (gnu packages ncurses) 64 #:use-module (gnu packages ncurses)
63 #:use-module (gnu packages ninja) 65 #:use-module (gnu packages ninja)
64 #:use-module (gnu packages perl) 66 #:use-module (gnu packages perl)
@@ -459,6 +461,59 @@ server and embedded PowerPC, and S390 guests.")
459 ;; Several tests fail on MIPS. 461 ;; Several tests fail on MIPS.
460 (supported-systems (delete "mips64el-linux" %supported-systems)))))) 462 (supported-systems (delete "mips64el-linux" %supported-systems))))))
461 463
464(define-public aflplusplus
465 (package
466 (inherit american-fuzzy-lop)
467 (name "aflplusplus")
468 (version "4.09c")
469 (source (origin
470 (method git-fetch)
471 (uri (git-reference
472 (url "https://github.com/AFLplusplus/AFLplusplus")
473 (commit (string-append "v" version))))
474 (file-name (git-file-name name version))
475 (sha256
476 (base32
477 "12bplpd8cifla6m9l130fd22ggzkhd1w5s1aifw1idpy3njhj129"))))
478 (arguments
479 (substitute-keyword-arguments (package-arguments american-fuzzy-lop)
480 ((#:make-flags _ ''())
481 #~(list (string-append "PREFIX=" #$output)
482 (string-append "DOC_PATH=" #$output "/share/doc/"
483 #$(package-name this-package) "-"
484 #$(package-version this-package))
485 (string-append "CC=" #$(cc-for-target))))
486 ((#:phases phases '%standard-phases)
487 #~(modify-phases #$phases
488 ;; For GCC plugins.
489 (add-after 'unpack 'patch-gcc-path
490 (lambda* (#:key inputs #:allow-other-keys)
491 (substitute* "src/afl-cc.c"
492 (("alt_cc = \"gcc\";")
493 (format #f "alt_cc = \"~a\";"
494 (search-input-file inputs "bin/gcc")))
495 (("alt_cxx = \"g\\+\\+\";")
496 (format #f "alt_cxx = \"~a\";"
497 (search-input-file inputs "bin/g++"))))))))))
498 ;; According to the Dockerfile, GCC 12 is producing compile errors for some
499 ;; targets, so explicitly use GCC 11 here.
500 (inputs (list gcc-11 gmp python qemu))
501 (native-inputs (list gcc-11))
502 (home-page "https://aflplus.plus/")
503 (description
504 "AFLplusplus is a security-oriented fuzzer that employs a novel type of
505compile-time instrumentation and genetic algorithms to automatically discover
506clean, interesting test cases that trigger new internal states in the targeted
507binary. This substantially improves the functional coverage for the fuzzed
508code. The compact synthesized corpora produced by the tool are also useful for
509seeding other, more labor- or resource-intensive testing regimes down the road.
510It is a fork of American Fuzzy Lop fuzzer and features:
511@itemize
512@item A more recent qemu version.
513@item More algorithms like collision-free coverage, enhanced laf-intel &
514redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, etc.
515@end itemize")))
516
462(define-public stress-make 517(define-public stress-make
463 (let ((commit "97815bed8060de33952475b3498767c91f59ffd9") 518 (let ((commit "97815bed8060de33952475b3498767c91f59ffd9")
464 (revision "2")) ;No official source distribution 519 (revision "2")) ;No official source distribution