BinSync é uma ferramenta de colaboração de descompilador construída no sistema de controle de versão Git para permitir colaboração de engenharia reversa refinada, independentemente do descompilador. BinSync foi desenvolvido por mahaloz, a equipe angr e o laboratório de pesquisa SEFCOM. Também se deve em grande parte ao seu uso pela equipe de hackers Shellphish.
Todos os bons descompiladores compartilham objetos comuns chamados Artefatos de Engenharia Reversa (REAs). Esses REAs são o centro da capacidade de sincronização do BinSync. Aqui estão os REAs suportados:
Nota: todos os tipos suportam tipos criados pelo usuário, como structs.
Junte-se ao nosso discord abaixo para obter mais ajuda online :
Para todas as instalações, é melhor usar nosso instalador de duas partes com Python:
pip3 install binsync && binsync --install
BinSync também está disponível no gerenciador de plugins Binary Ninja. Se você planeja usar BS com Ghidra , você também precisa fazer pip3 install binsync[ghidra]
. Se você planeja usar recursos extras de BS, como o usuário ChatGPT, instale o pacote assim: pip3 install binsync[extras]
, que instalará pacotes extras para suporte. Para obter informações completas sobre a instalação, leia nossos documentos de início rápido.
Se você está planejando instalar o pacote para ser editável ( -e
), como em uma instalação de desenvolvedor, certifique-se de pip>=23.0.0
.
v4.10.1
)Todas as versões requerem Python >= 3.10 e Git instalados em seu sistema. O suporte ao Ghidra ainda está em um estágio inicial, então espere apenas recursos mínimos, como sincronização de nomes de artefatos e comentários.
Embora tenhamos suporte aos descompiladores na seção anterior, nem todo descompilador tem suporte no mesmo nível de sincronização. Para entender a diferença entre suporte a artefato, pull, push e auto push, leia nossa introdução ao uso do descompilador.
Operações | Cabeçalhos de função | Pilha Vars | Variações Globais | Estruturas | Enums | Comentários |
---|---|---|---|---|---|---|
Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Puxar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Empurrar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Empurrão automático | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Operações | Cabeçalhos de função | Pilha Vars | Variações Globais | Estruturas | Enums | Comentários |
---|---|---|---|---|---|---|
Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Puxar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Empurrar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Empurrão automático | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Operações | Cabeçalhos de função | Pilha Vars | Variações Globais | Estruturas | Enums | Comentários |
---|---|---|---|---|---|---|
Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Puxar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Empurrar | ✅ | ✅ | ✅ | ✅ | ✅ | |
Empurrão automático | ✅ | ✅ | ✅ | ✅ | ✅ |
Operações | Cabeçalhos de função | Pilha Vars | Variações Globais | Estruturas | Enums | Comentários |
---|---|---|---|---|---|---|
Símbolos | ✅ | ✅ | ✅ | |||
Tipos | ✅ | ✅ | ✅ | |||
Puxar | ✅ | ✅ | ✅ | |||
Empurrar | ✅ | ✅ | ✅ | |||
Empurrão automático | ✅ | ✅ | ✅ |
Para scripts, consulte Lib BinSync, que permite fazer todo levantamento e manipulação de dados em Python.