Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
manul — Manul ist ein abdeckungsgesteuerter paralleler Fuzzer für Open-Source- und Blackbox-Binärdateien unter Windows, Linux und macOS. | Kitploit
Tools/GitHubGitHub/mxmssh/manul
Dynamische Analyse (Sandboxing)SchwachstellenanalyseFuzzingBinäranalyse
GitHubmxmssh/manul

manul

Manul ist ein abdeckungsgesteuerter paralleler Fuzzer für Open-Source- und Blackbox-Binärdateien unter Windows, Linux und macOS.

Repository anzeigen
3356735vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Manul

Travis AppVeyor

Logo

Manul ist ein abdeckungsgesteuerter paralleler Fuzzer für Open-Source- und Black-Box-Binärdateien unter Windows, Linux und macOS (Beta), geschrieben in reinem Python.

Schnellstart

pip3 install psutil
git clone https://github.com/mxmssh/manul
cd manul
mkdir in
mkdir out
echo "AAAAAA" > in/test
python3 manul.py -i in -o out -n 4 "linux/test/test_afl @@"

Radamsa installieren

sudo apt-get install gcc make git wget
git clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && sudo make install

Es ist nicht erforderlich, Radamsa unter Windows zu installieren. Manul wird auf dieser Plattform mit der nativen Radamsa-Bibliothek ausgeliefert.

Liste öffentlicher CVEs

CVE-IDsProduktFinder
CVE-2019-9631 CVE-2019-7310 CVE-2019-9959PopplerMaksim Shudrak
CVE-2018-17019 CVE-2018-16807 CVE-2019-12175Bro/ZeekMaksim Shudrak

Wenn Sie mit Manul einen neuen Fehler gefunden haben, kontaktieren Sie mich bitte, und ich werde Sie in die Liste aufnehmen.

Demo

Kurze Demo

Abhängigkeiten

  1. Python3 (Python2 ist seit dem 1. Januar 2020 veraltet, aber Manul sollte unter Python2 noch funktionieren)
  2. psutil
  3. pywin32 (pip install pywin32) auf Windows-Plattform (nur für DBI-Persistenzmodus erforderlich).

Abdeckungsgesteuertes Fuzzing

Derzeit unterstützt Manul zwei Arten der Instrumentierung: AFL-basiert (afl-gcc, afl-clang und afl-clang-fast) und DBI.

Abdeckungsgesteuertes Fuzzing (AFL-Instrumentierungsmodus)

Instrumentieren Sie Ihr Ziel mit afl-gcc oder afl-clang-fast und Address Sanitizer (empfohlen für bessere Ergebnisse). Zum Beispiel:

CC=afl-gcc CXX=afl-g++ CFLAGS=-fsanitize=address CXXFLAGS=-fsanitize=address cmake <pfad_zu_ihrem_ziel>
make -j 8
USE_ASAN=1 CC=afl-clang-fast CXX=afl-clang-fast++ cmake <pfad_zu_ihrem_ziel>
make -j 8

Weitere Details finden Sie in diesen Anweisungen.

Abdeckungsgesteuertes Fuzzing im DBI-Modus

Sie müssen Ihr Ziel in diesem Modus nicht instrumentieren, müssen aber die neueste Version des DynamoRIO-Frameworks für Windows oder Linux herunterladen.

Manul wird mit vorcompilierten x86/x64-Clients für Linux und Windows ausgeliefert. Sie finden sie in den folgenden Ordnern:

linux/dbi_32|dbi_64/libbinafl.so (DynamoRIO-Client)
win/dbi_32|dbi_64/binafl.dll

Leider wird DynamoRIO unter macOS nicht offiziell unterstützt.

Verwenden von DynamoRIO zum Fuzzing von Black-Box-Binärdateien

Sie finden die neuesten DynamoRIO-Releasepakete auf der DynamoRIO-Downloadseite.

Sie müssen die folgenden Zeilen in der Datei manul.config auskommentieren und den korrekten Pfad zum DynamoRIO-Launcher und -Client angeben.

# Wählen Sie das DBI-Framework, um die Abdeckung an Manul zurückzugeben ("dynamorio" oder "pin"). Beispiel: dbi = dynamorio
dbi = dynamorio
# Wenn der dbi-Parameter nicht None ist, sollten der Pfad zum DBI-Engine-Launcher und zum DBI-Client angegeben werden.
dbi_root = /home/max/DynamoRIO/bin64/drrun
dbi_client_root = /home/max/manul/linux/dbi_64/libbinafl.so
dbi_client_libs = None

Zusätzlich können Sie die Leistung Ihrer Black-Box-Fuzzing-Kampagne durch persistentes In-Memory-Fuzzing steigern. In diesem Modus sollten Sie Manul anweisen, eine bestimmte Funktion zu instrumentieren (ja, Sie müssen sie durch Disassemblieren Ihrer Binärdatei finden), und es wird diese in einer Schleife ausführen, indem Sie die folgenden Zeilen auskommentieren:

dbi_persistence_mode = 1
dbi_target_module = afl_test
dbi_target_method = open_file
#dbi_target_offset = 0x3198 # optional können Sie den Offset dieser Funktion anstelle des Namens angeben
dbi_fuzz_iterations = 1000

Die Autoren von winAFL erklären sehr gut, wie das funktioniert, hier. Manul verwendet einen großen Teil des winAFL-Instrumentierungsbibliothekscodes, um mit einem Ziel zu kommunizieren und es zu instrumentieren.

WICHTIGER HINWEIS: Sie sollten einen 32-Bit-Launcher und 32-Bit-Client verwenden, um 32-Bit-Binärdateien zu fuzzen, und einen 64-Bit-Launcher und 64-Bit-Client für 64-Bit-Binärdateien!

Kompilieren der DynamoRIO-Clientbibliothek

Um die Instrumentierungsbibliothek zu kompilieren, müssen Sie die neueste Version von DynamoRIO verwenden. Der Quellcode der Instrumentierungsbibliothek befindet sich in dbi_clients_src im Hauptordner von Manul.

64-Bit Linux

cd dbi_clients_src
wget <DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz> - Laden Sie das neueste DynamoRIO herunter
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz/cmake
make
32-Bit Linux
cd dbi_clients_src
wget <DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz> - Laden Sie das neueste DynamoRIO herunter
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
CFLAGS=-m32 CXXFLAGS=-m32 cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz/cmake
make

Unter Windows ist der einfachste Weg, die Bibliothek zu kompilieren, Visual Studio zu installieren (getestet mit Versionen 2017 & 2013), VS20XX Cross Tools Command Prompt zu starten und die folgenden Befehle auszuführen:

64-Bit Windows
cd dbi_clients_src
<Laden Sie die neueste Version von DynamoRIO herunter und extrahieren Sie sie>
mkdir client_64
cd client_64
cmake -G"Visual Studio 15 Win64" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (oder nur Debug, falls erforderlich)
32-Bit Windows
cd dbi_clients_src
<Laden Sie die neueste Version von DynamoRIO herunter und extrahieren Sie sie>
mkdir client_32
cd client_32
cmake -G"Visual Studio 15" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (oder nur Debug, falls erforderlich)

Verwenden von Intel PIN zum Fuzzing von Black-Box-Binärdateien unter Linux

Manul unterstützte ursprünglich Intel PIN-unterstütztes abdeckungsgesteuertes Fuzzing, wird aber aufgrund geringer Leistung und hohem Wartungsaufwand nicht mehr unterstützt.

Befehlszeilenargumente

Die am häufigsten verwendeten Optionen können über die Befehlszeile bereitgestellt werden. Weitere Optionen werden über eine Konfigurationsdatei (manul.config) unterstützt.

Beispiel: python3 manul.py -i corpus -o out_dir -n 40 "target @@"

positionale Argumente:
  target_binary  Die auszuführende Ziel-Binärdatei und Optionen (vergessen Sie nicht, Anführungszeichen zu setzen, z.B. "target e @@").

optionale Argumente:
  -h, --help     Zeigt diese Hilfemeldung an und beendet sich.
  -n NFUZZERS    Anzahl paralleler Fuzzer
  -s             Führt dummes Fuzzing aus (keine Code-Instrumentierung)
  -c CONFIG      Pfad zur Konfigurationsdatei mit zusätzlichen Optionen (siehe Abschnitt Konfigurationsdatei-Optionen unten)
  -r             Vorherige Sitzung wiederherstellen
Tool herunterladen