BinSync est un outil de collaboration de décompilation construit sur le système de gestion de versions Git pour permettre une collaboration fine en ingénierie inverse quel que soit le décompilateur. BinSync est construit par Mahaloz, l'équipe Angr et le laboratoire de recherche SEFCOM. Cela est également dû en grande partie à son utilisation par l'équipe de piratage Shellphish.
Tous les bons décompilateurs partagent des objets communs appelés artefacts d'ingénierie inverse (REA). Ces REA sont au centre 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 Binary Ninja. Si vous envisagez d'utiliser BS avec Ghidra , vous devez également effectuer pip3 install binsync[ghidra]
. Si vous prévoyez d'utiliser des fonctionnalités BS supplémentaires, comme l'utilisateur ChatGPT, installez le package comme ceci : pip3 install binsync[extras]
, qui installera des packages supplémentaires pour la prise en charge. Pour des informations complètes sur l’installation, veuillez lire nos documents de démarrage rapide.
Si vous prévoyez d'installer le package pour qu'il soit modifiable ( -e
), comme dans une installation de développeur, assurez-vous que pip>=23.0.0
.
v4.10.1
)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 à ses débuts, alors attendez-vous uniquement à des fonctionnalités minimales telles que 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 du décompilateur.
Opérations | En-têtes de fonction | Vars de pile | Vars globales | Structures | Énumérations | Commentaires |
---|---|---|---|---|---|---|
Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Espèces | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tirer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Pousser | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Poussée automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Opérations | En-têtes de fonction | Vars de pile | Vars globales | Structures | Énumérations | Commentaires |
---|---|---|---|---|---|---|
Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Espèces | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tirer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Pousser | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Poussée automatique | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Opérations | En-têtes de fonction | Vars de pile | Vars globales | Structures | Énumérations | Commentaires |
---|---|---|---|---|---|---|
Symboles | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Espèces | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tirer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Pousser | ✅ | ✅ | ✅ | ✅ | ✅ | |
Poussée automatique | ✅ | ✅ | ✅ | ✅ | ✅ |
Opérations | En-têtes de fonction | Vars de pile | Vars globales | Structures | Énumérations | Commentaires |
---|---|---|---|---|---|---|
Symboles | ✅ | ✅ | ✅ | |||
Espèces | ✅ | ✅ | ✅ | |||
Tirer | ✅ | ✅ | ✅ | |||
Pousser | ✅ | ✅ | ✅ | |||
Poussée automatique | ✅ | ✅ | ✅ |
Pour les scripts, veuillez consulter Lib BinSync, qui vous permet d'effectuer tous les levages et manipulations de données en Python.