BinSync ist ein Dekompiler-Kollaborationstool, das auf dem Git-Versionierungssystem basiert und eine feinkörnige Reverse-Engineering-Zusammenarbeit unabhängig vom Dekompiler ermöglicht. BinSync wurde von Mahaloz, dem Angr-Team und dem SEFCOM-Forschungslabor entwickelt. Dies ist auch zu einem großen Teil auf die Verwendung durch das Shellphish-Hackerteam zurückzuführen.
Alle guten Dekompilierer nutzen gemeinsame Objekte, sogenannte Reverse Engineering Artifacts (REAs). Diese REAs sind das Zentrum der Synchronisierungsfähigkeit von BinSync. Hier sind die unterstützten REAs:
Hinweis: Alle Typen unterstützen vom Benutzer erstellte Typen wie Strukturen.
Treten Sie unserem Discord unten bei, um weitere Online-Hilfe zu erhalten :
Für alle Installationen verwenden Sie am besten unseren zweiteiligen Installer mit Python:
pip3 install binsync && binsync --install
BinSync ist auch im Binary Ninja-Plugin-Manager verfügbar. Wenn Sie BS mit Ghidra verwenden möchten , müssen Sie auch pip3 install binsync[ghidra]
ausführen. Wenn Sie zusätzliche BS-Funktionen wie den ChatGPT-Benutzer verwenden möchten, installieren Sie das Paket wie folgt: pip3 install binsync[extras]
, wodurch zusätzliche Pakete zur Unterstützung installiert werden. Für vollständige Installationsinformationen lesen Sie bitte unsere Schnellstartdokumente.
Wenn Sie planen, das Paket so zu installieren, dass es bearbeitbar ist ( -e
), wie bei einer Entwicklerinstallation, stellen Sie sicher, pip>=23.0.0
.
v4.10.1
)Für alle Versionen ist die Installation von Python >= 3.10 und Git auf Ihrem System erforderlich. Die Ghidra-Unterstützung befindet sich noch in einem sehr frühen Stadium. Erwarten Sie daher nur die minimalen Funktionen wie die Synchronisierung von Artefaktnamen und Kommentare.
Obwohl wir die Dekompilierer im vorherigen Abschnitt unterstützen, wird nicht jeder Dekompilierer auf der gleichen Synchronisierungsebene unterstützt. Um den Unterschied zwischen Artefaktunterstützung, Pull, Push und Auto Push zu verstehen, lesen Sie unsere Einführung zur Verwendung des Dekompilers.
Operationen | Funktionsüberschriften | Stapelvars | Globale Vars | Strukturen | Aufzählungen | Kommentare |
---|---|---|---|---|---|---|
Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ziehen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Drücken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Auto-Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Operationen | Funktionsüberschriften | Stapelvars | Globale Vars | Strukturen | Aufzählungen | Kommentare |
---|---|---|---|---|---|---|
Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ziehen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Drücken | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Auto-Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Operationen | Funktionsüberschriften | Stapelvars | Globale Vars | Strukturen | Aufzählungen | Kommentare |
---|---|---|---|---|---|---|
Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ziehen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Drücken | ✅ | ✅ | ✅ | ✅ | ✅ | |
Auto-Push | ✅ | ✅ | ✅ | ✅ | ✅ |
Operationen | Funktionsüberschriften | Stapelvars | Globale Vars | Strukturen | Aufzählungen | Kommentare |
---|---|---|---|---|---|---|
Symbole | ✅ | ✅ | ✅ | |||
Typen | ✅ | ✅ | ✅ | |||
Ziehen | ✅ | ✅ | ✅ | |||
Drücken | ✅ | ✅ | ✅ | |||
Auto-Push | ✅ | ✅ | ✅ |
Informationen zur Skripterstellung finden Sie unter Lib BinSync, mit der Sie alle Lifting- und Datenmanipulationen in Python durchführen können.