Zoo afl

Bild

In diesem Artikel werden wir nicht über die klassische AFL selbst sprechen, sondern über Dienstprogramme, die für sie entwickelt wurden, und ihre Modifikationen, die unserer Ansicht nach die Qualität des Fuzzing erheblich verbessern können. Wenn Sie wissen möchten, wie Sie die AFL steigern und mehr Schwachstellen schneller finden können, lesen Sie weiter!

Was ist AFL und wofür ist es gut?


AFL ist ein deckungsgesteuerter oder rückkopplungsbasierter Fuzzer. Weitere Informationen zu diesen Konzepten finden Sie in einem coolen Artikel mit dem Titel „Fuzzing: Art, Science and Engineering“ . Lassen Sie uns allgemeine Informationen zu AFL zusammenfassen:

  • Es ändert die ausführbare Datei, um herauszufinden, wie sie die Abdeckung beeinflusst.
  • Mutiert Eingabedaten, um die Abdeckung zu maximieren.
  • Wiederholt den vorherigen Schritt, um herauszufinden, wo das Programm abstürzt.
    • Es ist sehr effektiv, was durch die Praxis bewiesen wird.
      • Es ist sehr einfach zu bedienen.


Hier ist eine grafische Darstellung:

Bild

Wenn Sie nicht wissen, was AFL ist, finden Sie hier eine Liste hilfreicher Ressourcen, mit denen Sie beginnen können:

  1. Die offizielle Seite des Projekts .
  2. afl-training - eine kurze Einführung in AFL.
  3. afl-demo - eine einfache Demo zum Fuzzing von C ++ - Programmen mit AFL.
  4. afl-cve - eine Sammlung der mit AFL gefundenen Schwachstellen (wurde seit 2017 nicht aktualisiert).
  5. Hier können Sie lesen, was AFL einem Programm während seiner Erstellung hinzufügt.
  6. Einige nützliche Tipps zum Fuzzing von Netzwerkanwendungen.

Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von AFL 2.52b . Der Fuzzer befindet sich in der aktiven Entwicklung, und mit der Zeit werden einige Nebenentwicklungen in den Hauptzweig der AFL integriert und werden irrelevant. Heute können wir einige nützliche Zubehörwerkzeuge nennen, die im folgenden Kapitel aufgeführt sind.

Rode0day Wettbewerb
Erwähnenswert ist auch der monatliche Rode0day- Wettbewerb - ein Ereignis, bei dem Fuzzers versuchen, die größte Anzahl von Fehlern mit weniger Zeit als ihre Gegner in vorgefertigten Korpora mit und ohne Zugriff auf den Quellcode zu finden. Rode0day ist seiner Natur nach ein Kampf zwischen verschiedenen Modifikationen und Gabeln von AFL.

Einige AFL-Benutzer stellten fest, dass sein Autor, Michal Zalewski, das Projekt offenbar seit dem letzten Änderungsdatum bis zum 5. November 2017 aufgegeben hatte. Dies könnte damit zusammenhängen, dass er Google verlässt und an einigen neuen Projekten arbeitet. Daher haben Benutzer begonnen, selbst neue Patches für die letzte aktuelle Version 2.52b zu erstellen.

Bild

Es gibt auch verschiedene Variationen und Ableitungen von AFL, mit denen Python, Go, Rust, OCaml, GCJ Java, Kernel-Systemaufrufe oder sogar ganze VMs verwirrt werden können.

AFL für andere Programmiersprachen

- python-afl - für Python.
- afl.rs - für Fuzzing-Programme, die auf Rust geschrieben wurden.
- afl-fuzz-js - afl-fuzz für Javascript.
- java-afl - AFL-Fuzzing für Java.
- kelinci - ein weiterer Fuzzer für Java (ein Artikel zum Thema).
- Javan-Warzenschwein - AFL-ähnlicher Fuzzer für JVM.
- afl-swift - für Fuzzing-Programme, die auf Swift geschrieben wurden.
- ocamlopt-afl - für OCaml.
- sharpfuzz - fuzzer basierend auf afl für .net.

Zubehörwerkzeuge


In diesem Kapitel haben wir verschiedene Skripte und Tools für AFL gesammelt und in mehrere Kategorien unterteilt:

Crash-Verarbeitung

  • afl-utils - eine Reihe von Dienstprogrammen zur automatischen Verarbeitung / Analyse von Abstürzen und zur Reduzierung der Anzahl von Testfällen.
  • afl-Crash-Analyzer - ein weiterer Crash-Analyzer für AFL.
  • fuzzer-utils - eine Reihe von Skripten zur Analyse der Ergebnisse.
  • atriage - ein einfaches Triage-Tool.
  • afl-kit - afl-cmin auf Python.
  • AFLize - ein Tool, das automatisch Builds von Debian-Paketen generiert, die für AFL geeignet sind.
  • afl-fid - eine Reihe von Tools zum Arbeiten mit Eingabedaten.

Arbeiten Sie mit Codeabdeckung

  • afl-cov - liefert menschenfreundliche Daten zur Abdeckung.
  • count-afl-calls - Verhältnisbewertung. Das Skript zählt die Anzahl der Instrumentierungsblöcke in der Binärdatei.
  • afl-sancov - ist wie afl-cov, verwendet jedoch ein klirrendes Desinfektionsmittel.
  • covnavi - ein Skript zur Abdeckung von Code und Analyse durch die Cisco Talos Group.
  • LAF LLVM Passes - so etwas wie eine Sammlung von Patches für AFL, die den Code ändern, um dem Fuzzer das Auffinden von Zweigen zu erleichtern.

Einige Skripte zur Minimierung von Testfällen

  • afl-pytmin - ein Wrapper für afl-tmin, der versucht, den Prozess der Minimierung von Testfällen durch Verwendung vieler CPU-Kerne zu beschleunigen.
  • afl-ddmin-mod - eine Variation von afl-tmin basierend auf dem ddmin-Algorithmus.
  • halfempty - ist ein schnelles Dienstprogramm zur Minimierung von Testfällen von Tavis Ormandy basierend auf Parallelisierung.

Verteilte Ausführung

  • disfuzz-afl - verteiltes Fuzzing für AFL.
  • AFLDFF - AFL verteiltes Fuzzing-Framework.
  • afl-launch - ein Tool zur Ausführung vieler AFL-Instanzen.
  • afl-Mothership - Verwaltung und Ausführung vieler synchronisierter AFL-Fuzzers in der AWS Cloud.
  • afl-in-the-cloud - ein weiteres Skript zum Ausführen von AFL in AWS.
  • VU_BSc_project - Fuzzing-Test der Open Source-Bibliotheken mit libFuzzer und AFL.

Kürzlich wurde ein sehr guter Artikel mit dem Titel "Skalieren von AFL auf eine 256-Thread-Maschine" veröffentlicht .

Bereitstellung, Verwaltung, Überwachung, Berichterstellung

  • afl-other-arch - ist eine Reihe von Patches und Skripten zum einfachen Hinzufügen von Unterstützung für verschiedene Nicht-x86-Architekturen für AFL.
  • afl-trivia - ein paar kleine Skripte zur Vereinfachung der Verwaltung von AFL.
  • afl-monitor - ein Skript zur Überwachung der AFL.
  • afl-manager - ein Webserver unter Python zum Verwalten von Multi-AFL.
  • afl-tools - ein Bild eines Dockers mit afl-latest, afl-dyninst und Triforce-afl.
  • afl-remote - ein Webserver für die Remoteverwaltung von AFL-Instanzen.

AFL-Änderungen


AFL hatte einen sehr starken Einfluss auf die Community der Vulnerabilitätsforscher und das Fuzzing selbst. Es ist überhaupt nicht überraschend, dass die Leute nach einiger Zeit anfingen, Modifikationen vorzunehmen, die von der ursprünglichen AFL inspiriert waren. Schauen wir sie uns an. In verschiedenen Situationen hat jede dieser Modifikationen ihre eigenen Vor- und Nachteile im Vergleich zur ursprünglichen AFL.

Fast alle Mods finden Sie unter hub.docker.com

Wofür?

  • Erhöhen Sie die Geschwindigkeit und / oder die Codeabdeckung
    • Algorithmen
    • Umwelt
      • Betriebssystem
      • Hardware

  • Arbeiten ohne Quellcode
    • Code-Emulation
    • Code-Instrumentierung
      • Statisch
      • Dynamisch

Standardmodi des AFL-Betriebs

Bevor wir verschiedene Modifikationen und Gabeln von AFL untersuchen, müssen wir über zwei wichtige Modi sprechen, die ebenfalls Modifikationen in der Vergangenheit waren, aber schließlich aufgenommen wurden. Sie sind Syzygy und Qemu.

Syzygy- Modus - ist der Arbeitsmodus in instrument.exe
instrument.exe --mode=afl --input-image=test.exe --output-image=test.instr.exe 
Syzygy ermöglicht das statische Umschreiben von PE32-Binärdateien mit AFL, erfordert jedoch Symbole und einen zusätzlichen Entwickler, um den WinAFL-Kernel darauf aufmerksam zu machen.

Qemu-Modus - Die Funktionsweise unter QEMU finden Sie unter „Interna of AFL Fuzzer - QEMU Instrumentation“ . Die Unterstützung für die Arbeit mit Binärdateien mit QEMU wurde der vorgelagerten AFL in Version 1.31b hinzugefügt. Der AFL QEMU-Modus arbeitet mit der zusätzlichen Funktionalität der binären Instrumentierung in der binären Übersetzungs-Engine qemu tcg (einem winzigen Codegenerator). Zu diesem Zweck verfügt AFL über ein Build-Skript qemu, das die Quellen einer bestimmten Version von qemu (2.10.0) extrahiert, sie auf mehrere kleine Patches legt und für eine definierte Architektur erstellt. Dann wird eine Datei namens afl-qemu-trace erstellt, die tatsächlich eine Datei der Benutzermodus-Emulation von (Emulation nur ausführbarer ELF-Dateien) qemu- ist. Somit ist es möglich, Fuzzing mit Feedback zu Elf-Binärdateien für viele verschiedene von qemu unterstützte Architekturen zu verwenden. Außerdem erhalten Sie alle coolen AFL-Tools, vom Monitor mit Informationen zur aktuellen Sitzung bis hin zu fortgeschrittenen Dingen wie afl-analyse. Sie erhalten aber auch die Einschränkungen von Qemu. Wenn eine Datei mit einer Toolchain unter Verwendung von Hardware-SoC-Funktionen erstellt wird, die die Binärdatei startet und von qemu nicht unterstützt wird, wird das Fuzzing unterbrochen, sobald eine bestimmte Anweisung vorliegt oder ein bestimmtes MMIO verwendet wird.

Hier ist eine weitere interessante Gabelung des Qemu-Modus, bei der die Geschwindigkeit mit TCG-Code-Instrumentierung und Einlösung um das 3-4-fache erhöht wurde.

Gabeln

Das Auftreten von AFL-Gabeln hängt in erster Linie mit den Änderungen und Verbesserungen der Algorithmen der klassischen AFL zusammen.

  • pe-afl - Eine Modifikation zum Fuzzing von PE-Dateien, die keinen Quellcode im Windows-Betriebssystem haben. Für den Betrieb analysiert der Fuzzer ein Zielprogramm mit IDA Pro und generiert die Informationen für die folgenden statischen Instrumente. Eine instrumentierte Version wird dann mit AFL fuzzed.
  • afl-cygwin - ist ein Versuch, die klassische AFL mit Cygwin auf Windows zu portieren. Leider hat es viele Fehler, es ist sehr langsam und die Entwicklung von wurde aufgegeben.
  • AFLFast (erweitert AFL um Power Schedules) - eine der ersten AFL-Gabeln. Es wurden Heuristiken hinzugefügt, die es ihm ermöglichen, in kurzer Zeit mehr Pfade zu durchlaufen.
  • FairFuzz - eine Erweiterung für AFL, die auf seltene Branchen abzielt .
  • AFLGo - ist eine Erweiterung für AFL, mit der bestimmte Teile des Codes anstelle der vollständigen Programmabdeckung aufgerufen werden können. Es kann zum Testen von Patches oder neu hinzugefügten Codefragmenten verwendet werden.
  • PerfFuzz - eine Erweiterung für AFL, die nach Testfällen sucht, die das Programm erheblich verlangsamen könnten.
  • Pythia - ist eine Erweiterung für AFL, die vorhersagen soll, wie schwierig es ist, neue Pfade zu finden.
  • Angora - ist einer der neuesten Fuzzers, geschrieben auf Rost. Es verwendet neue Strategien zur Mutation und zur Erhöhung der Abdeckung.
  • Neuzz - Fuzzing mit neuronalen Netwoks.
  • UnTracer-AFL - Integration von AFl in UnTracer zur effektiven Rückverfolgung.
  • Qsym - Praktische Concolic Execution Engine, zugeschnitten auf Hybrid-Fuzzing. Im Wesentlichen handelt es sich um eine symbolische Ausführungs-Engine (grundlegende Komponenten werden als Plugin für Intel Pin realisiert), die zusammen mit AFL Hybrid-Fuzzing ausführt. Dies ist eine Phase in der Entwicklung des Feedback-basierten Fuzzing und erfordert eine separate Diskussion. Sein Hauptvorteil ist, dass die konkolische Ausführung relativ schnell erfolgen kann. Dies ist auf die native Ausführung von Befehlen ohne Zwischendarstellung von Code, Snapshots und einigen Heuristiken zurückzuführen. Es verwendet den alten Intel-Pin (aufgrund von Unterstützungsproblemen zwischen libz3 und anderen DBTs) und kann derzeit mit elf x86- und x86_64-Architekturen arbeiten.
  • Superion - Greybox Fuzzer, ein offensichtlicher Vorteil davon ist, dass er zusammen mit einem instrumentierten Programm auch die Spezifikation von Eingabedaten unter Verwendung der ANTLR-Grammatik erhält und anschließend mithilfe dieser Grammatik Mutationen durchführt.
  • AFLSmart - Ein weiterer Graybox-Fuzzer. Als Eingabe erhält es eine Spezifikation der Eingabedaten in dem vom Peach Fuzzer verwendeten Format.

Es gibt viele Forschungsarbeiten, die sich mit der Implementierung der neuen Ansätze und Fuzzing-Techniken befassen, bei denen AFL modifiziert wird. Es sind nur White Papers verfügbar, daher haben wir uns nicht einmal die Mühe gemacht, diese zu erwähnen. Sie können sie googeln, wenn Sie möchten. Einige der neuesten sind beispielsweise CollAFL: Path Sensitive Fuzzing , EnFuzz , "Effizienter Ansatz zum Fuzzing von Interpreten" , ML für AFL.

Änderungen basierend auf Qemu

  • TriforceAFL - AFL / QEMU-Fuzzing mit vollständiger Emulation eines Systems. Eine Gabel von nccgroup. Ermöglicht das Fuzzing des gesamten Betriebssystems im QEMU-Modus. Dies wird mit einer speziellen Anweisung (aflCall (0f 24)) realisiert, die in der QEMU x64-CPU hinzugefügt wurde. Leider wird es nicht mehr unterstützt. Die letzte Version von AFL ist 2.06b.
  • TriforceLinuxSyscallFuzzer - das Fuzzing von Linux-Systemaufrufen.
  • afl-qai - ein kleines Demo-Projekt mit QEMU Augmented Instrumentation (qai).

Eine Modifikation basierend auf KLEE

kleefl - zum Generieren von Testfällen mittels symbolischer Ausführung (bei großen Programmen sehr langsam).

Eine Modifikation basierend auf Unicorn

afl- unicorn - Ermöglicht das Fuzzing von Codefragmenten durch Emulieren in Unicorn Engine . Wir haben diese Variante von AFL in unserer Praxis erfolgreich in den Bereichen des Codes eines bestimmten RTOS verwendet, der auf SOC ausgeführt wurde, sodass wir den QEMU-Modus nicht verwenden konnten. Die Verwendung dieser Änderung ist gerechtfertigt, wenn wir keine Quellen haben (wir können keine eigenständige Binärdatei für die Analyse des Parsers erstellen) und das Programm keine Eingabedaten direkt nimmt (z. B. Daten) ist verschlüsselt oder ist ein Signalbeispiel wie in einer CGC-Binärdatei), dann können wir die vermeintlichen Ortsfunktionen umkehren und finden, bei denen die Daten in einem für den Fuzzer geeigneten Format verarbeitet werden. Dies ist die allgemeinste / universellste Modifikation von AFL, d. H. Sie ermöglicht das Fuzzing von allem. Es ist unabhängig von Architektur, Quellen, Eingabedatenformat und Binärformat (das auffälligste Beispiel für Bare-Metal - nur Codefragmente aus dem Speicher des Controllers). Der Forscher untersucht zuerst diese Binärdatei und schreibt einen Fuzzer, der den Status am Eingang der Parser-Prozedur emuliert. Im Gegensatz zu AFL erfordert dies natürlich eine gewisse Prüfung der Binärdatei. Bei Bare-Metal-Firmware wie Wi-FI oder Basisband gibt es bestimmte Nachteile, die Sie beachten müssen:

  1. Wir müssen die Prüfung der Kontrollsumme lokalisieren.
  2. Beachten Sie, dass der Status des Fuzzers ein Speicherstatus ist, der im Speicherauszug gespeichert wurde, wodurch verhindert werden kann, dass der Fuzzer zu bestimmten Pfaden gelangt.
  3. Es gibt keine Bereinigung von Aufrufen des dynamischen Speichers, aber es kann manuell realisiert werden und hängt von RTOS ab (muss untersucht werden).
  4. Die Intertask-RTOS-Interaktion wird nicht emuliert, wodurch auch das Auffinden bestimmter Pfade verhindert werden kann.

Ein Beispiel für die Arbeit mit dieser Modifikation "afl-Einhorn: Fuzzing Arbitrary Binary Code" und "afl-Einhorn: Teil 2 - Fuzzing the 'Unfuzzable'" .

Bevor wir zu den Änderungen übergehen, die auf den Frameworks der dynamischen binären Instrumentierung (DBI) basieren, dürfen wir nicht vergessen, dass DynamoRIO, Dynlnst und schließlich PIN die höchste Geschwindigkeit dieser Frameworks anzeigen.

PIN-basierte Änderungen

  • aflpin - AFL mit Intel PIN-Instrumentierung.
  • afl_pin_mode - eine weitere AFL-Instrumentierung, die über die Intel-PIN realisiert wird.
  • afl-pin - AFL mit PINtool.
  • NaFl - Ein Klon (des Grundkerns ) von AFL Fuzzer.
  • PinAFL - Der Autor dieses Tools hat versucht, AFL auf Windows zu portieren, um bereits kompilierte Binärdateien zu verwischen. Scheint, als wäre es über Nacht nur zum Spaß gemacht worden; Das Projekt ist nie weiter gegangen. Das Repository verfügt nicht über Quellen, sondern nur über kompilierte Binärdateien und Startanweisungen. Wir wissen nicht, auf welcher AFL-Version es basiert, und es werden nur 32-Bit-Anwendungen unterstützt.

Wie Sie sehen können, gibt es viele verschiedene Modifikationen, die jedoch im wirklichen Leben nicht sehr nützlich sind.

Dyninst-basierte Modifikationen

afl-dyninst - Amerikanischer Fuzzy Lop + Dyninst == AFL Balckbox Fuzzing. Das Merkmal dieser Version ist, dass zuerst ein recherchiertes Programm (ohne den Quellcode) statisch (statische binäre Instrumentierung, statisches binäres Umschreiben) mit Duninst instrumentiert wird und dann mit der klassischen AFL verwirrt wird, die denkt, dass das Programm mit afl- erstellt wird. gcc / afl-g ++ / afl-as;) Infolgedessen kann ohne den Quellcode mit einer sehr guten Produktivität gearbeitet werden. Früher war die Geschwindigkeit im Vergleich zu einer nativen Kompilierung 0,25-fach. Es hat einen signifikanten Vorteil gegenüber QEMU: Es ermöglicht die Instrumentierung dynamisch verknüpfter Bibliotheken, während QEMU nur die statische Basisdatei instrumentieren kann, die statisch mit Bibliotheken verknüpft ist. Leider ist es jetzt nur für Linux relevant. Für die Windows-Unterstützung sind Änderungen an Dyninst selbst erforderlich, die gerade durchgeführt werden .

Es gibt noch eine weitere Gabel mit verbesserter Geschwindigkeit und bestimmten Funktionen (Unterstützung von AARCH64- und PPC-Architekturen).

Änderungen basierend auf DynamoRIO

  • drAFL - AFl + DynamoRIO - Fuzzing ohne Quellen unter Linux.
  • afl-dr - eine weitere Implementierung basierend auf DynamoRIO, die auf Habr sehr gut beschrieben wurde.
  • afl-dynamorio - eine Modifikation von vanhauser-thc. Dazu sagt er Folgendes: "Führen Sie AFL mit DynamoRIO aus, wenn der normale afl-Dyninst die Binärdatei zum Absturz bringt und der QEMU-Modus -Q keine Option ist." Es unterstützt ARM und AARCH64. In Bezug auf die Produktivität: DynamoRIO ist ungefähr 10 Mal langsamer als Qemu, 25 Mal langsamer als Dyninst, aber ungefähr 10 Mal schneller als Pintool.
  • WinAFL - das bekannteste AFL- Gabelfenster . (DynamoRIO, auch Syzygy-Modus). Es war nur eine Frage der Zeit, bis dieser Mod erschien, da viele AFL unter Windows ausprobieren und auf Apps ohne Quellen anwenden wollten. Derzeit wird dieses Tool aktiv verbessert. Unabhängig von einer relativ veralteten Codebasis von AFL (2.43b, wenn dieser Artikel geschrieben wird) hat es geholfen, mehrere Schwachstellen zu finden (CVE-2016-7212, CVE-2017-0073, CVE- 2017-0190, CVE-2017-11816). Die Spezialisten des Google Zero Project-Teams und des MSRC Vulnerabilities and Mitigations-Teams arbeiten an diesem Projekt, sodass wir auf die weitere Entwicklung hoffen können. Anstelle der Instrumentierung zur Kompilierungszeit verwendeten die Entwickler eine dynamische Instrumentierung (basierend auf DynamoRIO), die die Ausführung der analysierten Software erheblich verlangsamte. Der daraus resultierende Overhead (verdoppelt) ist jedoch mit dem der klassischen AFL im Binärmodus vergleichbar. Sie lösten auch das Problem des schnellen Prozessstarts, indem sie es als dauerhaften Fuzzing-Modus bezeichneten. Sie wählen die zu fusselnde Funktion (nach dem Versatz in der Datei oder nach dem Namen der in der Exporttabelle vorhandenen Funktion) und instrumentieren sie so, dass sie im Zyklus aufgerufen werden kann, wodurch mehrere Eingabedatenbeispiele gestartet werden, ohne den Prozess neu zu starten. Kürzlich erschien ein Artikel , in dem beschrieben wurde, wie die Autoren mit WinAFL in etwa 50 Tagen rund 50 Sicherheitslücken gefunden haben. Kurz vor der Veröffentlichung wurde WinAFL um den Intel PT-Modus erweitert. Detalis finden Sie hier .

Ein fortgeschrittener Leser könnte feststellen, dass es mit allen gängigen Instrumentierungs-Frameworks außer Frida Modifikationen gibt. Die einzige Erwähnung der Verwendung von Frida mit AFL fand sich in "Chizpurfle: Ein Gray-Box-Android-Fuzzer für die Anpassung von Anbieterservices". Eine Version von AFL mit Frida ist sehr nützlich, da Frida mehrere RISC-Architekturen unterstützt.

Viele Forscher freuen sich auch auf die Veröffentlichung des DBI Scopio-Frameworks durch den Schöpfer von Capstone, Unicorn und Keystone. Basierend auf diesem Framework haben die Autoren bereits einen Fuzzer (Darko) erstellt und verwenden ihn demnach erfolgreich, um eingebettete Geräte zu fuzzeln. Weitere Informationen hierzu finden Sie unter "Tief graben: 0 Tage in eingebetteten Systemen mit Code Coverage Guided Fuzzing finden".

Änderungen basierend auf den Hardwarefunktionen des Prozessors

Wenn es um AFL-Modifikationen mit Unterstützung von Prozessorhardwarefunktionen geht, ermöglicht dies zum einen das Fuzzing von Kernel-Code und zum anderen das Fuzzing von Apps ohne Quellcode.

Und natürlich sind wir in Bezug auf Prozessorhardwarefunktionen vor allem an Intel PT (Processor Tracing) interessiert. Es ist ab der 6. Generation von Prozessoren verfügbar (ungefähr seit 2015). Um die unten aufgeführten Fuzzers verwenden zu können, benötigen Sie einen Prozessor, der Intel PT unterstützt.


Fazit


Wie Sie sehen können, entwickelt sich der Bereich der AFL-Modifikationen aktiv weiter. Dennoch gibt es Raum für Experimente und kreative Lösungen; Sie können eine nützliche und interessante neue Modifikation erstellen.

Danke fürs Lesen und viel Glück beim Fuzzing!

Co-Autor: Nikita Knyzhov Presler

PS Dank an das Team des Forschungszentrums, ohne das dieser Artikel nicht möglich wäre.

Source: https://habr.com/ru/post/de449134/


All Articles