
Es gab einige Male Artikel über das Habré, die das Thema American Fuzzy Lop (AFL) ansprechen (
1 ,
2 ). In diesem Artikel werden wir jedoch nicht über die klassische AFL sprechen, sondern über Hilfsdienstprogramme für sie und ihre Modifikationen, die unserer Meinung nach die Qualität des Fuzzing erheblich verbessern können. Wenn Sie lernen möchten, wie Sie AFL aktualisieren und nach schnelleren und mehr Schwachstellen suchen, dann sind Sie bei der Kürzung willkommen!
Was ist AFL und warum ist es so gut?
AFL - Coverage-Guided Fuzzer oder Feedback-basierter Fuzzer. Sie können mehr über diese Konzepte in einem so coolen
Artikel wie
Fuzzing: Art, Science and Engineering erfahren. Wenn wir die Informationen über AFL zusammenfassen, können wir Folgendes sagen:
- Tooling einer ausführbaren Datei zum Sammeln von Abdeckungsinformationen
- Mutiert die Eingabe, um die Abdeckung zu maximieren
- Wiederholt den vorherigen Schritt, um Programmabstürze zu finden.
- In der Praxis hat sich dies als sehr effektiv erwiesen
Grafisch kann dies wie folgt dargestellt werden:

Wenn Sie nicht wissen, was AFL ist, empfehlen wir zu Beginn:
- Offizielle Seite des Projekts
- afl-training - ein kurzer Ausflug in die AFL
- afl-demo - eine einfache Demonstration, wie man ein C ++ - Programm mit AFL fuzzelt
- afl-cve - Sammlung von Schwachstellen, die mit AFL entdeckt wurden (seit 2017 nicht aktualisiert)
- Die Tatsache, dass AFL das Programm während seiner Montage erweitert, finden Sie hier.
- Einige nützliche Tipps zum Fuzzing von Netzwerkanwendungen hier
Zum Zeitpunkt des Schreibens war die neueste Version von AFL Version
2.52b . Fazzer entwickelt sich aktiv weiter, und im Laufe der Zeit werden einige Entwicklungen von Drittanbietern in die AFL-Hauptniederlassung aufgenommen und sind für sich selbst irrelevant. Derzeit können mehrere nützliche Hilfstools identifiziert werden, die im nächsten Abschnitt aufgeführt werden.
Wettbewerb Rode0dayUnabhängig davon ist der monatliche Wettbewerb
Rode0day zu erwähnen, bei dem es einen Wettbewerb zwischen Phasern gibt, die Schwachstellen in vorbereiteten Fällen mit und ohne Zugriff auf den Quellcode schneller und besser finden. Und im Großen und Ganzen ist eine Konfrontation von verschiedenen Modifikationen und Gabeln AFL.
Gleichzeitig stellen einige AFL-Benutzer
fest, dass der Autor des Phasers Michal Zalewski eine Kampagne zur Unterstützung seiner Idee durchgeführt hat, da die letzten Änderungen auf den 5. November 2017 datiert sind. Dies hängt angeblich mit seiner Abkehr von Google und neuen Projekten zusammen. In dieser Hinsicht begannen die Leute, unabhängig
Patches für die neueste aktuelle Version 2.52b zu sammeln und zu erstellen.

Es gibt auch verschiedene Optionen und Ableitungen von AFL, die das Fuzzing von Python, Go, Rust, OCaml, GCJ Java, Kernel-Systemaufrufen oder sogar ganzen VMs ermöglichen.
Hilfswerkzeuge
In diesem Abschnitt haben wir verschiedene Skripte und Tools für die Arbeit mit AFL ausgewählt und in mehrere Kategorien unterteilt:
Verarbeitung von Kresh- afl-utils - eine Reihe von Dienstprogrammen zur automatischen Verarbeitung / Analyse von Abstürzen und zur Minimierung von Testfällen.
- afl-crash-analyzer - Ein weiterer AFL- Crash-Analysator .
- fuzzer-utils - eine Reihe von Skripten zur Analyse der Ergebnisse.
- atriage ist ein einfaches Triage-Tool.
- afl-kit - Umgeschrieben in Python afl-cmin.
- AFLize ist ein Tool, das automatisch afl-freundliche Debian-Paket-Builds generiert.
- afl-fid - eine Reihe von Tools zum Arbeiten mit Eingabedaten.
Code-Abdeckung- afl-cov - Bietet lesbare Abdeckungsdaten.
- count-afl-calls - Verhältnisbewertung. Das Skript zählt die Anzahl der instrumentierten Blöcke in der Binärdatei.
- afl-sancov - wie afl-cov, verwendet jedoch Clang-Desinfektionsmittel.
- covnavi ist ein Skript zur Codeabdeckung und -analyse der Cisco Talos Group.
- LAF LLVM Passes ist eine Sammlung von Patches für afl, die den Code so ändern, dass Fuzzers leichter durch Zweige gehen können
Mehrere Skripte zur Minimierung von Testfällen- afl-pytmin - ein Wrapper für afl-tmin, der versucht, den Prozess der Minimierung des Testfalls durch Verwendung mehrerer CPU-Kerne zu beschleunigen.
- afl-ddmin-mod - eine Variation von afl-tmin basierend auf dem ddmin-Algorithmus.
- halfempty ist ein schnelles, auf Parallelisierung basierendes Dienstprogramm, um Testfälle von Tavis Ormandy zu minimieren.
Für verteilten Start- disfuzz-afl - verteiltes Fuzzing für afl.
- AFLDFF ist ein Framework für verteiltes Fuzzing mit AFL.
- afl-launch ist ein Tool zum Starten vieler afl-Instanzen.
- afl-Mothership - Verwalten und starten Sie mehrere synchronisierte AFL-Fuzzers in der AWS Cloud.
- afl-in-the-cloud ist ein weiteres Skript zum Ausführen von afl in AWS.
- VU_BSc_project - Fuzz-Test von Open Source-Bibliotheken mit libFuzzer und AFL.
Außerdem wurde kürzlich ein sehr guter Artikel zu diesem Thema veröffentlicht, in dem der Start von AFL auf 256 Threads beschrieben wird.
Bereitstellung, Verwaltung, Überwachung, Berichterstellung- afl-other-arch - Eine Reihe von Patches und Skripten, mit denen verschiedene (Nicht-x86-) Architekturen in AFL problemlos unterstützt werden können.
- afl-trivia - ein paar kleine Skripte zur Vereinfachung der AFL-Verwaltung.
- afl-monitor - ein Skript zur Überwachung des Betriebs von AFL.
- afl-manager - ein Python-Webserver zum Verwalten von Multi-AFL.
- afl-tools - Docker-Image mit afl-latest, afl-dyninst und Triforce-afl.
- afl-remote - Ein Webserver für die Remote-Verwaltung von afl-Instanzen.
AFL-Änderungen
AFL hat die Community für Schwachstellensuche und die Fuzzing-Branche selbst stark beeinflusst. Und es ist nicht verwunderlich, dass im Laufe der Zeit verschiedene Modifikationen, die von der ursprünglichen AFL inspiriert waren, auf der Grundlage seiner Idee auftauchten. In diesem Abschnitt werden wir sie betrachten. Jede dieser Modifikationen hat ihre Vor- und Nachteile gegenüber der ursprünglichen AFL-Version in verschiedenen Situationen.
Sagen Sie einfach, wenn es Probleme mit der Installation gibt oder Sie keine Zeit verbringen möchten, finden Sie fast alle Änderungen auf
hub.docker.comWarum?
- Erhöhen Sie die Geschwindigkeit und / oder die Codeabdeckung
- Arbeiten Sie unter Bedingungen ohne Quellcode
- Code-Emulation
- Code-Instrumentierung
Eingebaute AFL-ModiBevor wir mit der Diskussion der verschiedenen AFL-Modifikationen und Gabeln fortfahren, müssen zwei wichtige Modi besprochen werden, die früher ebenfalls Modifikationen waren und schließlich zu integrierten Modi wurden. Dies ist der Syzygy-Modus und der Qemu-Modus.
Syzygy- Modus - ist der Betriebsmodus in instrument instrument.exe
instrument.exe --mode=afl --input-image=test.exe --output-image=test.instr.exe
Für diesen Modus ist Folgendes erforderlich: PE32-Binärdateien mit AFL statisch neu schreiben, Symbole sind erforderlich. Zusätzliche Entwickler erforderlich, um den WinAFL-Kernel darauf aufmerksam zu machen.
Qemu-Modus - Wie es unter QEMU funktioniert, finden Sie hier
„ Interna
of AFL Fuzzer - QEMU Instrumentation“ . Die Unterstützung für die Arbeit mit Binärdateien mit QEMU wurde in der Upstream-AFL ab Version 1.31b angezeigt. Der Afl-Qemu-Modus arbeitet mit der zusätzlichen Funktionalität der Instrumentierung von Binärcode in die Binärübersetzungs-Engine qemu tcg (winziger Codegenerator). Zu diesem Zweck verfügt afl über ein qemu-Build-Skript, das den Quellcode einer bestimmten (2.10.0) Version von qemu herunterlädt, ihnen mehrere kleine Patches auferlegt und für eine bestimmte Architektur kompiliert. Danach wird die afl-qemu-trace-Datei zurückgegeben, bei der es sich tatsächlich um eine Qemu- emulation im Benutzermodus (Emulation nur von ausführbaren ELF-Dateien) handelt. Dank dessen können Sie Fuzzing mit Feedback zu Elfen-Binärdateien und für eine Reihe verschiedener von qemu unterstützter Architekturen verwenden. Darüber hinaus erhalten Sie alle coolen afl-Tools, beginnend mit einem praktischen Bildschirm mit Informationen zur aktuellen Sitzung und endend mit erweiterten Dingen wie afl-analyse. Beachten Sie jedoch, dass Sie auch Qemu-Einschränkungen erhalten. Wenn die Datei beispielsweise von einer Toolchain kompiliert wird, die SoC-Hardwarefunktionen verwendet, auf denen die Binärdatei gestartet wird und die von qemu nicht unterstützt wird, wird das Fuzzing unterbrochen, sobald eine bestimmte Anweisung auftritt oder beispielsweise ein bestimmtes MMIO verwendet wird.
Es gibt auch
eine so interessante Abzweigung des Qemu-Modus, bei der die Geschwindigkeit aufgrund der Instrumentierung von TCG-Code und Caching um das 3- bis 4-fache erhöht wurde.
GabelnDas Erscheinungsbild von AFL-Gabeln ist in erster Linie mit Änderungen und Verbesserungen der Betriebsalgorithmen der klassischen AFL selbst verbunden.
- afl-cygwin ist ein Versuch, klassische AFL mit Cygwin auf Windows zu portieren. Leider ist dieser Versuch ziemlich flott, langsam und die Entwicklung kann als abgebrochen bezeichnet werden.
- AFLFast (erweitert AFL um Power Schedules) - eine der ersten Gabeln von AFL, bei der alle Arten von Heuristiken hinzugefügt wurden, dank derer es in kurzer Zeit weitere Wege gehen konnte.
- FairFuzz ist eine AFL-Erweiterung, deren Ziel es ist, mehr Zeit für seltenere Branchen zu verwenden.
- AFLGo ist eine Erweiterung für AFL, die in erster Linie zur gezielten Erreichung bestimmter Codeabschnitte und nicht zur allgemeinen Abdeckung des Programmcodes gedacht ist. Dies kann verwendet werden, um Patches oder neu hinzugefügte Codeabschnitte zu testen.
- PerfFuzz ist eine AFL-Erweiterung, die nach Testfällen sucht, die das Programm so weit wie möglich verlangsamen könnten.
- Pythia ist eine Erweiterung für AFL, die darauf abzielt, dem Phasenprozess Vorhersageelemente hinzuzufügen, um die Schwierigkeit zu erkennen, neue Pfade zu entdecken.
- Angora ist einer der zuletzt erschienenen Fuzzers, die in Rost geschrieben sind. Verwendet seine neuen Strategien zur Mutation und zur Erhöhung der Abdeckung.
- Neuzz - ein Versuch, mithilfe neuronaler Netze zu fuzzeln .
- UnTracer-AFL - Integration in UnTracer für eine effiziente Rückverfolgung.
- Qsym - Praktische Concolic Execution Engine, zugeschnitten auf Hybrid-Fuzzing. Tatsächlich handelt es sich um eine Symbolausführungs-Engine (die Hauptkomponenten sind als Intel-Pin-Plug-In implementiert), die in Kombination mit afl Hybrid-Fuzzing implementiert. Dies ist eine Weiterentwicklung des Feedback-basierten Fuzzing-Themas und verdient eine separate Diskussion. Sein Hauptverdienst ist, dass er sehr schnell (im Vergleich zu den anderen) eine konkolische Ausführung durchführen kann. Dies geschieht aufgrund der nativen Ausführung von Befehlen ohne Zwischenpräsentation des Codes, wodurch der Snapshot-Mechanismus und eine Reihe von Heuristiken beseitigt werden. Es verwendet den alten Intel-Pin (aufgrund einer Reihe von Supportproblemen zwischen libz3 und anderen DBTs) und kann derzeit mit elf x86- und x86_64-Architekturen arbeiten.
Es ist erwähnenswert, dass es eine große Anzahl akademischer Arbeiten gibt, die sich auf die Implementierung neuer Ansätze und Fuzzing-Techniken beziehen, bei denen AFL verwendet und modifiziert wird. Neben dem Whitepaper ist nichts anderes verfügbar, sodass wir solche Implementierungen nicht einmal erwähnt haben. Wenn Sie interessiert sind, dann sind sie einfach zu googeln. Letzteres ist beispielsweise
CollAFL: Path Sensitive Fuzzing ,
EnFuzz ,
Smart Greybox Fuzzing ,
ML für afl.
Änderungen basierend auf Qemu- TriforceAFL - AFL / QEMU-Fuzzing mit vollständiger Systememulation. Gabel von nccgroup. Ermöglicht das Fuzzing des gesamten Betriebssystems im QEMU-Modus. Implementiert durch eine spezielle Anweisung (aflCall (0f 24)), die der QEMU x64-CPU hinzugefügt wurde. Leider wird es nicht mehr unterstützt, die neueste Version von afl ist 2.06b.
- TriforceLinuxSyscallFuzzer - Fuzzing Linux-Systemaufrufe.
- afl-qai ist ein kleines Demo-Projekt mit QEMU Augmented Instrumentation (qai).
Änderung basierend auf KLEEkleefl - zur Erzeugung von Testfällen mittels symbolischer Ausführung (bei großen Programmen sehr langsam).
Änderungen basierend auf Unicornafl-unicorn - Ermöglicht es Ihnen, Codeteile zu fuzzeln und sie auf der
Unicorn Engine zu emulieren. Wir haben diese AFL-Variante auch erfolgreich in unserer Praxis verwendet, nämlich in den Codeabschnitten eines RTOS, das auf SOC ausgeführt wurde, und es war unmöglich, den QEMU-Modus zu verwenden. Es wird empfohlen, diese Änderung zu verwenden, wenn keine Quellen vorhanden sind (Sie können keine eigenständigen Binärdateien für die Parser-Analyse zusammenstellen) und das Programm keine Eingabedaten direkt akzeptiert (z. B. sind sie verschlüsselt oder repräsentieren Signalabtastungen wie in einer CGC-Binärdatei). Dann können Sie sie verwenden kehren Sie um und finden Sie die vorgeschlagenen Stellenfunktionen, bei denen diese Daten in einem für den Fuzzer geeigneten Format verarbeitet werden und das verwischt werden kann. Dies ist die häufigste AFL-Modifikation. In dem Sinne, dass Sie damit buchstäblich alles durcheinander bringen können. Das heißt, es hängt nicht von der Architektur, der Verfügbarkeit von Quellcodes, dem Format der Eingabedaten und dem Format des Binars selbst ab (das auffälligste Beispiel ist nur Bare-Metal - nur Codeteile aus dem Speicher des Controllers). Der Forscher untersucht genau dieses Binär und schreibt einen Fuzzer, der beispielsweise den Zustand am Eingang der Parser-Prozedur emuliert. Es ist ersichtlich, dass Sie im Gegensatz zu AFL eine Art Recherche auf dem Binar durchführen müssen. Bei Bare-Metal-Firmware wie Wi-Fi oder Basisband gibt es lediglich eine Reihe von Nachteilen, die Sie berücksichtigen müssen:
- Es ist notwendig, Prüfsummenprüfungen irgendwie zu lokalisieren.
- Es muss berücksichtigt werden, dass der Status des Fuzzers der Status des Speichers ist, der im Speicherauszug gespeichert wurde. Dies kann das Erreichen bestimmter Pfade für den Fuzzer verhindern.
- Es gibt keine Bereinigung für Zugriffe auf dynamischen Speicher, aber es kann manuell implementiert werden (auch mit Aufwand), und es hängt von RTOS ab (es muss auch vorher untersucht werden).
- Die RTOS-Inter-Task-Interaktion wird nicht emuliert. Sie können auch verhindern, dass Fuzzer bestimmte Pfade findet.
Ein Beispiel für die Arbeit mit dieser Modifikation ist
"afl-unicorn: Fuzzing Arbitrary Binary Code" und
"Afl-Einhorn: Teil 2 - Fuzzing the 'Unfuzzable'" .
Bevor wir zu Änderungen übergehen, die auf den DBI-Frameworks (Dynamic Binary Instrumentation) basieren, erinnern wir uns sofort daran, dass das schnellste dieser Frameworks DynamoRIO, dann DynInst und schließlich PIN ist.
PIN-Änderungen- aflpin - AFL mit Intel PIN Instrumentation.
- afl_pin_mode - Eine weitere AFL-Instrumentierung, die über die Intel-PIN implementiert wurde.
- afl-pin - AFL mit PINtool.
- NaFl - Ein Klon (des Grundkerns ) von AFL Fuzzer.
- PinAFL - Der Autor des Tools hat versucht, AFL auf Windows zu übertragen, um bereits kompilierte Binärdateien zu verwischen. Anscheinend wurde an einem Abend mehr am Fan gemacht, und dann entwickelt sich das Projekt nicht weiter. Das Repository enthält keine Quellen, sondern nur gesammelte Binärdateien und Anweisungen zum Starten. Die AFL-Version, auf der dieses Tool basiert, ist nicht angegeben und unterstützt nur 32-Bit-Anwendungen.
Wie Sie sehen können, gibt es viele verschiedene Modifikationen, aber in der Praxis sind sie im wirklichen Leben nicht sehr nützlich.
Änderungen basierend auf Dyninstafl-dyninst - Amerikanischer Fuzzy Lop + Dyninst == AFL Blackbox Fuzzing. Das Merkmal dieser Version ist, dass das ursprünglich untersuchte Programm (ohne Quellcode) mit DynInst statisch instrumentiert wird (statische binäre Instrumentierung, statisches binäres Umschreiben) und dann von der klassischen AFL verwirrt wird, die glaubt, dass das Programm mit afl-gcc / afl erstellt wurde -g ++ / afl-as;) Am Ende haben wir die Möglichkeit, ohne Quellcode und mit sehr guter Leistung zu arbeiten. Früher war die Geschwindigkeit 0,25x höher als bei einer nativen Kompilierung. Es gibt einen signifikanten Vorteil gegenüber QEMU, nämlich die Fähigkeit, dynamisch verknüpfte Bibliotheken zu instrumentieren. Während QEMU nur die ausführbare Hauptdatei instrumentieren kann, die statisch mit Bibliotheken verknüpft ist. Leider ist dies jetzt nur für das Linux-Betriebssystem relevant. Zur Unterstützung von Windows sind Änderungen in DynInst selbst erforderlich, und
dort wird
gearbeitet .
Sie können auch auf eine solche
Gabel achten, bei der sie über verschiedene Funktionen (Unterstützung für AARCH64- und PPC-Architekturen) und Geschwindigkeit gut gepumpt wurde;)
Änderungen basierend auf DynamoRIO- drAFL - AFL + DynamoRIO = Fuzzing ohne Quelle unter Linux.
- afl-dr - eine weitere Implementierung auf Basis von DynamoRIO, die bereits sehr detailliert auf Freiflächen von Habr gemalt ist .
- afl-dynamorio - Modifikation von vanhauser-thc (ein Lüfter zum Pumpen und Stabilisieren von AFL). Er sagt über diese Version: "Führen Sie AFL mit DynamoRIO aus, wenn normales afl-dyninst die Binärdatei zum Absturz bringt und der QEMU-Modus -Q keine Option ist." Von angenehm, Unterstützung für ARM und AARCH64 wird hier hinzugefügt. In Bezug auf die Leistung: DynamoRIO ist ungefähr ~ 10 langsamer als Qemu, ~ 25 langsamer als Dyninst - jedoch ~ 10 schneller als Pintool.
- WinAFL ist die bekannteste Gabelung von afl für Windows. (DynamoRIO, haben auch Syzygy-Modus). Das Erscheinen dieser Änderung war nur eine Frage der Zeit, da der Wunsch, AFL unter Windows in Anwendungen zu testen, für die es keine Quellcodes gibt, für viele auftauchte. Derzeit wird das Tool aktiv entwickelt, und trotz der Verwendung der leicht verzögerten AFL-Codebasis (2.43b zum Zeitpunkt des Schreibens) wurden bereits mehrere Sicherheitslücken gefunden (CVE-2016-7212, CVE-2017-0073, CVE-2017- 0190, CVE-2017-11816). Es ist zu beachten, dass die Hauptentwickler Spezialisten des Google Zero Project-Teams und des MSRC Vulnerabilities and Mitigations-Teams sind, was Anlass zur Hoffnung auf eine weitere aktive Entwicklung des Projekts gibt. Um den Fuzzer zu implementieren, haben Entwickler von der Instrumentierung der Kompilierungszeit zur Verwendung der dynamischen Instrumentierung (basierend auf DynamoRIO) übergegangen, was die Ausführung der untersuchten Software erwartungsgemäß verlangsamte, aber der resultierende Overhead (zweimal) ist vergleichbar mit der klassischen AFL im Binärmodus. Die Entwickler lösten auch das Problem eines langen Starts des Prozesses, indem sie ihn als dauerhaften Fuzzing-Modus bezeichneten. Sie wählten die zu fuzzelnde Funktion aus (nach Versatz in der Datei oder nach Namen, wenn die Funktion in der Exporttabelle dargestellt wird) und instrumentierten sie so, dass sie in einer Schleife aufgerufen werden kann. Dadurch werden mehrere Beispiele für Eingabedaten gestartet, ohne den Prozess neu zu starten. Kürzlich erschien ein interessanter Artikel, in dem Forscher zeigten, wie sie mit winafl ~ 50 Sicherheitslücken innerhalb von ~ 50 Tagen gefunden haben. Darüber hinaus wurde fast vor der Veröffentlichung des Artikels in WinAFL auch der Intel PT-Modus hinzugefügt (dazu später mehr) - Details finden Sie hier .
Ein fortgeschrittener / erfahrener Leser kann feststellen, dass es Modifikationen bei allen gängigen Instrumentierungs-Frameworks gibt, mit Ausnahme von
Frida - in der Tat. Die einzige Erwähnung der Verwendung von Frida mit AFL wurde nur in
Chizpurfle gefunden: Ein Gray-Box-Android-Fuzzer für Anpassungen des Anbieterservices . Die Version von AFL mit Frida war wirklich nützlich, da Frida eine Reihe von RISC-Architekturen gut unterstützt.
Viele Forscher freuen sich auch auf die Veröffentlichung des Scorpio DBI-Frameworks vom Erfinder von Capstone, Unicorne, Keystone. Basierend auf diesem Framework haben die Autoren selbst bereits einen Fuzzer (Darko) hergestellt und ihn erfolgreich zum Fuzzing eingebetteter Geräte verwendet. Weitere Informationen finden Sie unter
Tiefes Graben: Ermitteln von 0 Tagen in eingebetteten Systemen mit Code Coverage Guided Fuzzing .
Änderungen basierend auf den Hardwarefunktionen des ProzessorsWenn es um AFL-Modifikationen mit Unterstützung der Hardwarefunktionen des Prozessors geht, weist dies in erster Linie auf die Möglichkeit des Fuzzing von Kernelcode und zweitens auf eine höhere Fuzzing-Geschwindigkeit für Anwendungen ohne Quellcode hin.
Und natürlich sprechen wir zunächst über Hardwarefunktionen des Prozessors wie
Intel PT (Processor Tracing). Welches ab der 6. Generation von Prozessoren verfügbar ist (dies ist ab etwa 2015). Um die folgenden Fuzzers verwenden zu können, benötigen Sie natürlich Hardware mit entsprechender Intel PT-Unterstützung.
Fazit
Wie Sie vielleicht bemerkt haben, entwickelt sich dieses Thema aktiv weiter. Gleichzeitig gibt es viel Raum für Kreativität, um eine neue, interessante und nützliche Modifikation von AFL zu erstellen.
Vielen Dank für Ihre Aufmerksamkeit und Ihr erfolgreiches Fuzzing!
Mitautor: Nikita Knizhov
PS Vielen Dank an das gesamte Team des Forschungszentrums für die Hilfe bei der Vorbereitung dieses Materials. Ohne ihre Erfahrung und Hilfe wäre es unmöglich, so etwas vorzubereiten.