
Un plugin de rétro-ingénierie pour la collaboration entre décompilateurs, construit sur git.
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 :
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 :
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.
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.
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.
Pour le scripting, veuillez consulter DecLib, qui vous permet d'effectuer tout le lifting et la manipulation de données en Python.
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.
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|
| Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Types | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Push automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Opérations | En-têtes de fonctions | Variables de pile | Variables globales | Structures | Énumérations | Commentaires |
|---|
| Symboles | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Types | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Pull | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push automatique | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |