
binsync v5.15.4
Um plugin de engenharia reversa para colaboração entre decompiladores, construído sobre git.
BinSync
BinSync é uma ferramenta de colaboração para decompiladores construída sobre o sistema de versionamento Git, permitindo colaboração granular em engenharia reversa independentemente do decompilador. O BinSync é desenvolvido por mahaloz, pela equipe do angr e pelo laboratório de pesquisa SEFCOM. Também se deve em grande parte ao seu uso pela equipe de hacking Shellphish.
Todos os bons decompiladores compartilham objetos comuns chamados Artefatos de Engenharia Reversa (REAs, do inglês Reverse Engineering Artifacts). Esses REAs são o centro da capacidade de sincronização do BinSync. Estes são os REAs suportados:
- Cabeçalhos de função (símbolo, argumentos, tipo)
- Variáveis de pilha (símbolo, tipo)
- Structs
- Enums
- Comentários
Nota: todos os tipos aceitam tipos criados pelo usuário, como structs.
Entre no nosso Discord abaixo para obter mais ajuda online:
Início Rápido
Para todas as instalações, o melhor é usar nosso instalador em duas partes com Python:
pip3 install binsync && binsync --install
O BinSync também está disponível no gerenciador de plugins do Binary Ninja.
Se você pretende usar o BS com o Ghidra, é necessário iniciá-lo em modo PyGhidra.
Se você pretende usar recursos extras do BS, como o ChatGPT User, instale o pacote assim: pip3 install binsync[extras], que instalará pacotes adicionais de suporte.
Para informações completas de instalação, leia nossa documentação de início rápido.
Para desenvolvedores, instale o pacote em modo editável (-e) e certifique-se de que pip>=23.0.0.
Plataformas Suportadas
- IDA Pro: >= 8.4 (se você tiver uma versão mais antiga, use BinSync v4.10.1)
- Binary Ninja: >= 2.4
- angr-management: >= 9.0
- Ghidra: >= 12.0 (modo PyGhidra)
Todas as versões exigem Python >= 3.10 e Git instalados no seu sistema. O suporte ao Ghidra ainda está em estágio bem inicial; portanto, espere apenas os recursos mínimos, como sincronização de nomes de artefatos e comentários.
Progresso do Suporte aos Decompiladores
Embora ofereçamos suporte aos decompiladores da seção anterior, nem todos os decompiladores são suportados no mesmo nível de sincronização. Para entender a diferença entre suporte a artefatos, pull, push e push automático, leia nossa introdução ao uso dos decompiladores.
IDA Pro
| Operações | Cabeçalhos de Função | Variáveis de Pilha | Variáveis Globais | Structs | Enums | Comentários |
|---|---|---|---|---|---|---|
| Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push Automático | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Binary Ninja
| Operações | Cabeçalhos de Função | Variáveis de Pilha | Variáveis Globais | Structs | Enums | Comentários |
|---|---|---|---|---|---|---|
| Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push Automático | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Ghidra
| Operações | Cabeçalhos de Função | Variáveis de Pilha | Variáveis Globais | Structs | Enums | Comentários |
|---|---|---|---|---|---|---|
| Símbolos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tipos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Pull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Push Automático | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
angr-management
| Operações | Cabeçalhos de Função | Variáveis de Pilha | Variáveis Globais | Structs | Enums | Comentários |
|---|---|---|---|---|---|---|
| Símbolos | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Tipos | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Pull | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Push Automático | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Scripts
Para criar scripts, consulte DecLib, que permite realizar todo o lifting e a manipulação de dados em Python.
Patrocinadores
O BinSync e seus projetos associados não seriam possíveis sem patrocínio. Sem ordem específica, gostaríamos de agradecer a todas as organizações que patrocinaram ou que atualmente patrocinam um dos muitos projetos do BinSync.