
binsync v5.15.4
Ein Reversing-Plugin für die dekompiler-übergreifende Zusammenarbeit, basierend auf Git.
BinSync
BinSync ist ein Kollaborationstool für Decompiler, das auf dem Git-Versionskontrollsystem aufbaut, um feingranulare Reverse-Engineering-Zusammenarbeit unabhängig vom Decompiler zu ermöglichen. BinSync wurde von mahaloz, dem angr-Team und dem Forschungslabor SEFCOM entwickelt. Es ist außerdem zu einem großen Teil der Nutzung durch das Hacker-Team Shellphish zu verdanken.
Alle guten Decompiler teilen gemeinsame Objekte, die als Reverse Engineering Artifacts (REAs) bezeichnet werden. Diese REAs stehen im Zentrum der Synchronisierungsfähigkeit von BinSync. Hier sind die unterstützten REAs:
- Funktionsheader (Symbol, Argumente, Typ)
- Stack-Variablen (Symbol, Typ)
- Strukturen
- Enums
- Kommentare
Hinweis: Alle Typen unterstützen benutzerdefinierte Typen wie Strukturen.
Tritt unserem Discord unten bei, um weitere Online-Hilfe zu erhalten:
Schnellstart
Verwende für alle Installationen am besten unseren zweiteiligen Installer mit Python:
pip3 install binsync && binsync --install
BinSync ist auch im Plugin-Manager von Binary Ninja verfügbar.
Wenn du BS mit Ghidra verwenden möchtest, musst du es im PyGhidra-Modus starten.
Wenn du zusätzliche BS-Funktionen wie den ChatGPT-User nutzen möchtest, installiere das Paket wie folgt: pip3 install binsync[extras], wodurch zusätzliche Pakete für den Support installiert werden.
Vollständige Installationsinformationen findest du in unserer Quickstart-Dokumentation.
Für Entwickler: Installiere das Paket als editierbar (-e) und stelle sicher, dass pip>=23.0.0 gilt.
Unterstützte Plattformen
- IDA Pro: >= 8.4 (wenn du eine ältere Version hast, verwende BinSync v4.10.1)
- Binary Ninja: >= 2.4
- angr-management: >= 9.0
- Ghidra: >= 12.0 (PyGhidra-Modus)
Alle Versionen erfordern Python >= 3.10 und Git auf deinem System. Die Ghidra-Unterstützung befindet sich noch in einem sehr frühen Stadium, daher sind nur minimale Funktionen wie die Synchronisierung von Artefaktnamen und Kommentaren zu erwarten.
Fortschritt der Decompiler-Unterstützung
Obwohl wir die im vorherigen Abschnitt genannten Decompiler unterstützen, wird nicht jeder Decompiler auf dem gleichen Synchronisierungsniveau unterstützt. Um den Unterschied zwischen Artefaktunterstützung, Pull, Push und Auto-Push zu verstehen, lies unsere Einführung in die Decompiler-Nutzung.
IDA Pro
| Operationen | Funktionsheader | Stack-Variablen | Globale Variablen | Strukturen | Enums | Kommentare |
|---|---|---|---|---|---|---|
| Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Binary Ninja
| Operationen | Funktionsheader | Stack-Variablen | Globale Variablen | Strukturen | Enums | Kommentare |
|---|---|---|---|---|---|---|
| Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ghidra
| Operationen | Funktionsheader | Stack-Variablen | Globale Variablen | Strukturen | Enums | Kommentare |
|---|---|---|---|---|---|---|
| Symbole | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Typen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Auto Push | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
angr-management
| Operationen | Funktionsheader | Stack-Variablen | Globale Variablen | Strukturen | Enums | Kommentare |
|---|---|---|---|---|---|---|
| Symbole | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Typen | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Pull | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Auto Push | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Skripting
Zum Skripten siehe bitte DecLib, mit dem du das gesamte Lifting und die Datenmanipulation in Python durchführen kannst.
Sponsoren
BinSync und seine zugehörigen Projekte wären ohne Sponsoring nicht möglich. In keiner bestimmten Reihenfolge möchten wir uns bei allen Organisationen bedanken, die in der Vergangenheit eines der vielen BinSync-Projekte gesponsert haben oder dies derzeit tun.