Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ScratchABit — Einfach umrüstbarer und hackbarer interaktiver Disassembler mit IDAPython-kompatibler Plugin-API | Kitploit
Tools/GitHubGitHub/pfalcon/scratchabit
Statische AnalyseReverse EngineeringDebuggerBinäranalyse
GitHubpfalcon/scratchabit

ScratchABit

Einfach umrüstbarer und hackbarer interaktiver Disassembler mit IDAPython-kompatibler Plugin-API

Repository anzeigen
41348vor 5 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

ScratchABit

ScratchABit ist ein interaktiver inkrementeller Disassembler mit Daten-/Kontrollflussanalyse-Funktionen. ScratchABit ist den Bemühungen der OpenSource Reverse Engineering Community gewidmet (Reverse Engineering, um OpenSource-Treiber/Firmware für Hardware zu erstellen, die von Herstellern nicht ordnungsgemäß unterstützt wird, für Hardware- und Software-Interoperabilität sowie für Sicherheitsforschung).

ScratchABit unterstützt die in der Community bekannte IDAPython-API zum Schreiben von Disassemblierungs-/Erweiterungsmodulen.

ScratchABit befindet sich in der Entwicklung, Funktionen werden nach Bedarf hinzugefügt, Beiträge sind willkommen.

ScratchABit wird unter den Bedingungen der GNU General Public License v3 (GPLv3) veröffentlicht.

Anforderungen/Manifest

  1. Sollte nicht in einer obfuskierten Sprache geschrieben sein. Dazu gehören Sprachen, die zu niedrigstufig sind, den Zugriff auf nicht initialisierte Variablen erlauben, nicht zwischen Variablen und Funktionen/Prozeduren unterscheiden, Array-Indizes von willkürlichen Zahlen starten usw. ScratchABit ist in Python (moderne Version, Python3) geschrieben, zu Ihrem Vergnügen und Ihrer geistigen Gesundheit.

  2. Das Benutzeroberflächen-Framework sollte Benutzerinteraktion auf dem erforderlichen Niveau ermöglichen, keine Abhängigkeiten, Aufblähung, Probleme oder Inkompatibilitäten zwischen Framework-Versionen hinzufügen. ScratchABit verwendet derzeit eine einfache Vollbild-Textbenutzeroberfläche mit ANSI/VT100-Terminal-Escape-Sequenzen (ja, selbst die curses-Bibliothek wurde als zu aufgeblähte Abhängigkeit angesehen, um sie den Benutzern aufzuzwingen).

  3. Sollte einfach zu verwendende Textformate nutzen, um die "Datenbank" zu speichern, um die Wiederverwendung und das Erstellen von Tools sowie die Speicherung in Versionskontrollsystemen zu erleichtern.

Installation

Um ScratchABit zu verwenden, benötigen Sie Python3 (getestet mit Python 3.3 bis 3.7) und ein VT100- (Minimum) oder XTerm- (empfohlen) Terminal oder Terminalemulator (jedes Unix-System sollte kompatibel sein, z.B. Linux/BSD usw., siehe FAQ unten für weitere Informationen).

Klonen Sie den Code mit:

root@kitploit:~
git clone --recursive https://github.com/pfalcon/ScratchABit

Wenn Sie den Code ohne --recursive geklont haben, führen Sie git submodule update --init im ScratchABit-Verzeichnis aus.

ScratchABit enthält jetzt Capstone Engine-basierte CPU-Plugins, die Zugriff auf eine Reihe von CPU-Architekturen ermöglichen. Um sie zu nutzen, sollte das aktuelle Python-Bindungsmodul für Capstone installiert sein (vorzugsweise gegenüber Paketen, die von Betriebssystem-Distributionen bereitgestellt werden, die oft veraltet sind). Der einfachste Weg, es zu installieren, ist in das Python-Benutzerpaketverzeichnis:

root@kitploit:~
pip3 install --no-cache-dir --user capstone

Eine Alternative ist die Installation in eine Python virtuelle Umgebung innerhalb des ScratchABit-Verzeichnisses:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip3 install --no-cache-dir capstone

Wenn Sie eine neue Terminalsitzung für die Arbeit mit ScratchABit öffnen, führen Sie den Befehl source .venv/bin/activate erneut aus, um die virtuelle Umgebung zu aktivieren.

Wenn nichts davon funktioniert, können Sie versuchen, das Capstone-Paket systemweit zu installieren (nicht empfohlen):

root@kitploit:~
sudo pip3 install --system capstone

Schnellstart

Wenn Sie eine Datei in einem selbsterklärenden ausführbaren Format (wie ELF) disassemblieren möchten, übergeben Sie sie einfach als Argument an ScratchABit.py. Das Repository enthält mehrere example-*.elf-Dateien für verschiedene Architekturen für einen schnellen Start. Um zum Beispiel die x86 32-Bit-Version auszuprobieren:

root@kitploit:~
python3 ScratchABit.py example-x86_32.elf

Alternativ, wenn Sie eine rohe Binärdatei disassemblieren möchten, müssen Sie eine .def (Definitions-)Datei erstellen, um anzugeben, welche Speicherbereiche für den Code definiert sind, unter welcher Adresse die Binärdatei geladen wird usw. (Hinweis: Eine .def-Datei kann auch für .elf und ähnliche Dateien nützlich sein.) Das Repository enthält einen einfachen rohen x86_64-Binärcode und die entsprechende example-x86_64.def-Datei (sehen Sie hinein für eine Beschreibung der verfügbaren Optionen):

root@kitploit:~
python3 ScratchABit.py example-x86_64.def

Drücken Sie F9, um auf Menüs zuzugreifen (die Maus funktioniert auch in XTerm-kompatiblen Terminals). Drücken Sie F1, um Hilfe zu Tastenkombinationen zu erhalten (die meisten Aktionen sind auch über das Menü zugänglich). Der Arbeitsablauf von ScratchABit ähnelt anderen interaktiven Disassemblern (vorherige Erfahrung oder Hintergrundlektüre kann hilfreich sein).

Verwendung von Plugins

IDAPython-Prozessor-Plugins können von überall im Python-Modulpfad geladen werden. Alternativ können Sie die Plugin-.py-Datei(en) in das Unterverzeichnis plugins/cpu/ verlinken oder kopieren.

Nachdem das Plugin verfügbar gemacht wurde, erstellen Sie eine neue Definitionsdatei basierend auf example-x86_64.def, die den Plugin-Modulnamen (ohne .py-Erweiterung) in der Zeile cpu xxx setzt.

Für ein sehr einfaches Beispiel, das ein externes Plugin verwendet, siehe diese esp8266.def-Datei, die mit dem xtensa.py-Plugin aus dem ida-xtensa2-Repository arbeitet.

TODO/zu entscheidende Punkte

  • Derzeit werden mehrere Dateien für die "Datenbank" verwendet, die jeweils eine bestimmte Art von Informationen speichern. Auf eine einzelne YAML-Datei umstellen?
  • Farbe hinzufügen (geringe Priorität, (nicht aufgeblähte!) Patches willkommen).
  • Einige wichtige UI-Befehle müssen noch für komfortables Arbeiten implementiert werden. (Alle wichtigsten Befehle sollten vorhanden sein, andere Funktionalität soll über Plugins implementiert werden).
  • Beim Beenden anbieten, die DB zu speichern, wenn geändert.
  • Git-Integration für das Speichern der DB.
  • Robustheit verbessern (Ausnahmehandler auf Hauptschleifenebene hinzufügen, die Anwendung nicht abbrechen, dem Benutzer anzeigen/protokollieren und fortfahren).
  • Versuchen, mit Inkonsistenzen im Codefluss umzugehen (z.B. innerhalb einer Anweisung - geringe Priorität für den beabsichtigten Nutzen) und Datenzugriffsinkonsistenzen (z.B. Zugriff auf einzelne Bytes eines zuvor erkannten Wortes - höhere Priorität). (Verbessert in 1.4.)
  • Sehen, wie andere Arten von IDAPython-Plugins neben Prozessormodulen unterstützt werden können.
  • Debug-Informationen (z.B. DWARF) in ELF (usw.)-Dateien parsen und verwenden.

FAQ

F: Welche Prozessoren/Architekturen werden unterstützt?

A: ScratchABit unterstützt von sich aus keine Prozessorarchitekturen, es ist vollständig über IDAPython-API-Plugins umrüstbar. Viele Plugins sind verfügbar, das Schreiben eines neuen Plugins ist einfach. Um Benutzern ein Testen von ScratchABit zu ermöglichen, ist ein einfaches x86-Prozessor-Plugin im Lieferumfang enthalten, das den Pymsasid-Disassembler im Hintergrund verwendet.

Ab Version 2.0 ist auch ein Capstone-Plugin enthalten, das Zugriff auf eine Reihe von Architekturen ermöglicht, darunter x86, ARM, MIPS, PowerPC, SPARC usw. (Die Architekturunterstützung wird schrittweise basierend auf Benutzertests aktiviert.)

Sie können mehr über die mit ScratchABit ausgelieferten Plugins im README für das Verzeichnis plugins/cpu/ lesen.

F: Debugger?

A: ScratchABit widmet sich der statischen Analyse und der einfachen Unterstützung neuer CPU-Architekturen (einfach ein neues CPU-Plugin in Python programmieren – Sie können in wenigen Stunden erste Ergebnisse erzielen). Dynamische Analyse war nicht als Kernfunktion konzipiert, und es gibt keine unmittelbaren Pläne, sie zu implementieren. Patches sind jedoch willkommen.

F: Decompiler?

A: Es gibt ein verwandtes Projekt namens ScratchABlock für tiefgehende Programmanalyse, -transformation und -dekompilierung. Es wird erwartet, dass mit der Reife von ScratchABlock einige seiner Funktionen innerhalb von ScratchABit verfügbar sein werden (vielleicht über Plugins).

F: Ich bin nicht unter Linux, wie kann ich ScratchABit ausführen?

A: Installieren Sie Linux in einem Emulator/VM auf Ihrem System und freuen Sie sich.

F: Pflicht-Screenshot?

A: Sicher:

Bildschirmfoto

Tool herunterladen