Engenharia Reversa de Binários Go / Rust
AÇÃO REQUERIDA (leia e execute imediatamente)
AGORA: Leia../field-journal/precedent-reverse.mdAGORA: Confirme se a amostra é um artefato compilado por Go/Rust (file/strings/características do runtime)PRÓXIMO: Verifique se GoReSym / plugins relacionados estão disponíveisAÇÃO: Identificação do runtime → Recuperação de símbolos/metadados → Lógica de negócios
Cenários de Aplicação
- Malware/ferramentas Go com símbolos removidos
- Binários Rust, análise orientada por strings de pânico
- Abordagens específicas de linguagem para complementar ida/ghidra genéricos
Fluxo de Trabalho
Go
□ Identificar go.buildid, resíduos de símbolos runtime, pclntab
□ GoReSym / redress / plugins IDA Go para recuperar nomes de funções
□ Observar a forma de interface, slice, string na descompilação
□ Caminhos de bibliotecas de rede/criptografia: crypto/* net/http
Rust
□ Strings de pânico, rust_begin_unwind, caminhos de crate como pistas
□ Inchaço de código devido à instanciação de genéricos; primeiro localizar strings xref
□ Máquinas de estado assíncrono/tokio exigem referências cruzadas
Dinâmico
□ Frida ainda pode ser usado; atenção à pilha e escalonamento do Go
□ Priorizar logs e strings de configuração como pontos de interrupção
Cadeia de Ferramentas
| Ferramenta | Uso |
|---|---|
| GoReSym | Metadados Go |
| IDA/Ghidra + plugins Go/Rust | Descompilação |
| radare2 | Strings rápidas |
| strings / rabin2 | Triagem |
Referências
references/go-rust-notes.md../reverse-engineering/go-reverse.md../ida-reverse/../ghidra-reverse/- seed:
field-journal/seed-002_go-malware-stripped.md
Contexto de Roteamento
Upstream: MASTER R33
Downstream: Fluxo de amostras maliciosas malware-analysis; RE geral reverse-engineering
Auto-verificação de Conclusão de Tarefa
- Nomes de funções críticas ou mapeamento equivalente foram recuperados?
- Evidências do runtime da linguagem foram documentadas?
- Checklist?