
binsync v5.15.4
Un plugin de rétro-ingénierie pour la collaboration entre décompilateurs, construit sur git.
BinSync
BinSync est un outil de collaboration pour décompilateurs construit sur le système de gestion de versions Git afin de permettre une collaboration fine en rétro-ingénierie quel que soit le décompilateur. BinSync est développé par mahaloz, l'équipe angr et le laboratoire de recherche SEFCOM. Il doit aussi en grande partie son existence à son utilisation par l'équipe de hacking Shellphish.
Tous les bons décompilateurs partagent des objets communs appelés artefacts de rétro-ingénierie (REA). Ces REA sont au cœur de la capacité de synchronisation de BinSync. Voici les REA pris en charge :
- En-têtes de fonctions (symbole, arguments, type)
- Variables de pile (symbole, type)
- Structures
- Énumérations
- Commentaires
Remarque : tous les types prennent en charge les types créés par l'utilisateur, comme les structures.
Rejoignez notre Discord ci-dessous pour plus d'aide en ligne :
Démarrage rapide
Pour toutes les installations, il est préférable d'utiliser notre programme d'installation en deux parties avec Python :
pip3 install binsync && binsync --install
BinSync est également disponible dans le gestionnaire de plugins de Binary Ninja.
Si vous prévoyez d'utiliser BS avec Ghidra, vous devez le lancer en mode PyGhidra.
Si vous prévoyez d'utiliser des fonctionnalités BS supplémentaires, comme ChatGPT User, installez le paquet ainsi : pip3 install binsync[extras], ce qui installera des paquets supplémentaires pour la prise en charge.
Pour plus d'informations sur l'installation, veuillez consulter notre documentation de démarrage rapide.
Pour les développeurs, installez le paquet en mode éditable (-e) et assurez-vous que pip>=23.0.0.
Plateformes prises en charge
- IDA Pro : >= 8.4 (si vous avez une version plus ancienne, utilisez BinSync v4.10.1)
- Binary Ninja : >= 2.4
- angr-management : >= 9.0
- Ghidra : >= 12.0 (mode PyGhidra)
Toutes les versions nécessitent Python >= 3.10 et Git installés sur votre système. La prise en charge de Ghidra en est encore à un stade très précoce, attendez-vous donc uniquement aux fonctionnalités minimales comme la synchronisation des noms d'artefacts et les commentaires.
Progression de la prise en charge des décompilateurs
Bien que nous prenions en charge les décompilateurs de la section précédente, tous les décompilateurs ne sont pas pris en charge au même niveau de synchronisation. Pour comprendre la différence entre la prise en charge des artefacts, le pull, le push et le push automatique, lisez notre introduction à l'utilisation des décompilateurs.
IDA Pro
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|---|---|---|---|---|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Binary Ninja
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|---|---|---|---|---|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ghidra
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|---|---|---|---|---|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
angr-management
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|---|---|---|---|---|---|
| Symboles | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Types | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Pull | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push automatique | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Scripting
Pour le scripting, veuillez consulter DecLib, qui vous permet d'effectuer tout le lifting et la manipulation de données en Python.
Sponsors
BinSync et ses projets associés ne seraient pas possibles sans le soutien de sponsors. Sans ordre particulier, nous tenons à remercier toutes les organisations qui ont sponsorisé ou sponsorisent actuellement l'un des nombreux projets BinSync.