diff options
| author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2023-09-15 05:27:52 +0200 |
|---|---|---|
| committer | Hilton Chain <hako@ultrarare.space> | 2024-01-25 23:48:49 +0800 |
| commit | 06221e910a5718c7d4ad2dcc7ffad2bc8e92fdc5 (patch) | |
| tree | 024ab101ed965c38a794e81f6d996e39f2a3c737 /gnu/packages/debug.scm | |
| parent | 250477d89698309842fb51fd46020ddabfc75a13 (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>
Diffstat (limited to 'gnu/packages/debug.scm')
| -rw-r--r-- | gnu/packages/debug.scm | 55 |
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 | ||
| 505 | compile-time instrumentation and genetic algorithms to automatically discover | ||
| 506 | clean, interesting test cases that trigger new internal states in the targeted | ||
| 507 | binary. This substantially improves the functional coverage for the fuzzed | ||
| 508 | code. The compact synthesized corpora produced by the tool are also useful for | ||
| 509 | seeding other, more labor- or resource-intensive testing regimes down the road. | ||
| 510 | It 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 & | ||
| 514 | redqueen, 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 |
