Ferramentas
Esta seção aborda não somente ferramentas utilizadas no livro, mas também outras que vale a pena citar na esperança que o leitor se sinta atraído a baixar, usar e tirar suas próprias conclusões em relação à eficiência delas.
Editores Hexadecimais
Este tipo de ferramenta é útil para editar arquivos binários em geral, não somente executáveis, dumpar (copiar) conteúdo de trechos de arquivos, etc. Também é possível editar uma partição ou disco com bons editores hexadecimal a fim de recuperar arquivos, por exemplo.
Shareware
Multiplataforma, bastante usado. Suporta templates e scripts. Alguns dizem que é o melhor atualmente.
Livre
Editor de interface de texto (TUI), similar ao HT Editor. Tem versão para DOS/Windows mas reina mesmo é no Linux.
Livre
Editor gráfico multiplataforma capaz de exibir o binário graficamente, além de suportar expressões regulares na busca.
Livre
Editor REPL genérico (não só para executáveis) com uma abordagem muito interessante. Escrevemos um artigo sobre.
Comercial
Editor incrível para Windows. Tem recursos muito legais como edição e alocação de memória, operações com dados (XOR, SHL, etc) e na versão paga tem suporte a vários algoritmos criptográficos, disassembly e mais.
Livre
Multiplataforma, interface de texto (TUI), suporta editar via SSH. É novo e tem futuro!
Shareware
Linux, macOS e Windows. Tem templates (chamados de "grammars"), scripting em Python e Lua e compara binários.
Livre
Baseado na ncurses, portanto de interface gráfica de texto. Tinha potencial, mas o desenvolvimento parou no final de 2022.
Comercial
Editor (e disassembler) muito poderoso, principalmente por conta de seus módulos HEM. Tem suporte à vários formatos e é muito usado por analistas de malware, mas é pago.
Livre
Interface gráfica baseada em texto, parecido com o Hiew. Tem muitos recursos, mas infelizmente o desenvolvimento parou em 2015. Hora de alguém fazer um fork!
Livre
Impressionante editor gráfico para Windows, macOS e Linux. Possui uma linguagem de patterns para aplicar no arquivo, exporta/importa patches e muito mais.
Livre
Nova proposta de um editor especificamente para engenharia reversa.
Comercial
Para macOS, desenvolvido por quem faz o Hexinator. Tem o mesmo nível de recursos.
Comercial
Editor com edições especiais focadas em forense, mas faz tudo que os outros fazem também. Somente para Windows.
Livre
Multiplataforma, recursos interessantes. Infelizmente o desenvolvimento parou em 2017.
Analisadores Estáticos de Executáveis
Analisam estaticamente os binários, sem carregá-los. São úteis para uma primeira visão sobre um executável desconhecido.
Freeware
Sendo parte do Explorer Suite, é na real um editor de PE. Com ele é possível adicionar imports, remover seções, etc.
Freeware
Detecta compilador, linker, packer e protectors em binários. Também edita os arquivos.
Freeware
Parser de linha de comando para Windows. Suporta arquivos NE, LX/LE, PE/PE32+, ELF/ELF64 (little-endian), Mach-O (little-endian), e TE.
Freeware
Detecta compilador, packer, protectors e edita os arquivos, além de suportar vários plugins loucos. Tem versão VIP mediante doação.
Livre
Mais um nacional pra uma primeira impressão de arquivos suspeitos, URLs e domínios. Checa também APKs.
Livre
Anteriormente chamado de pev, este é o nosso 💚 toolkit de ferramentas de linha de comando para análise de PE. Artigo introdutório aqui.
Freeware
Analisador e editor com suporte a plugins, assinaturas do antigo PEiD, editor de recursos e mais.
Bibliotecas para parsear Executáveis
Livre
Binary File Descriptor é a biblioteca usada por programas como readelf e objdump. Tem suporte a muitos tipos de arquivos, incluindo PE e ELF, claro.
Assemblers
Livre
Assembler bem recente que já vem com vários exemplos de código. Windows e Linux.
Livre
Também chamado simplesmente de as, é o assembler do projeto GNU e provavelmente já está instalado no seu Linux!
Freeware
Atualmente já vem com o Visual Studio da Microsoft, mesmo na versão Community. Segue um tutorial de como compilar um "Hello, world".
Livre
Multiplataforma, suporte à sintaxe Intel e bem popular. Veja um tutorial de como compilar um "Hello, world" no Linux.
Livre
Multiplataforma, escrito com base no NASM pra ser um substituto mas acho que não vingou. hehe
Disassemblers
Comercial
Novo disassembler que teoricamente compete com o IDA. Possui versão online gratuita mediante registro.
Debuggers
Livre
Super conhecido debugger pra Linux do projeto GNU. Tem uma versão não oficial pra Windows também. É modo texto, mas possui vários front-ends como GDBFrontend, dentre outros.
Livre
O Python Exploit Development Assistance também extende o GDB, assim como o GEF. A interface é um pouco diferente, no entanto.
Desofuscadores
Descompiladores
.NET
Delphi
Genéricos (C, C++, Delphi, etc)
Livre
Descompilador para C/C++ feito pelo time do Avast. Inclui detector de compilador e packer, plugins para IDA e radare2.
Java
Mista
Na verdade é uma IDE para programação em Java mas mesmo a versão Community possui descompilador e debugger para classes compiladas em Java.
Livre
Para Java, com suporte a recursos novos da linguagem. É modo texto mas há GUI's disponíveis documentadas no link.
Visual Basic
Emuladores
Livre
Framework que combina emulação com instrumentação de binários. É possível emular programas de Windows e Linux, além de outros SOs, incluindo ring0.
Livre
Emulador feito pela FireEye, inicialmente para programas nativos de Windows (ring0) mas possui um crescente suporta à programas em usermode (ring3), emulando várias das funções da Windows API.
Frameworks
Livre
Suíte completa com debugger, disassembler e outras ferramentas para quase todo tipo de binário existente!
Monitores de Processos
Freeware
Clássica ferramenta do conjunto SysInternals, que exibe muito mais que o Gerenciador de Tarefas comum.
Livre
Versão do Pavel Yosifovich que conta com algumas vantagens sobre o Process Explorer, como visualizar informações de processos protegidos (através de um driver), listar todas as threads abertas no Windows, todos os jobs, etc.
System Informer (antigo Process Hacker)
Livre
Talvez o melhor da categoria. Mostra os handles, objetos, processos, quem tá usando o que e muita mais.
Sandboxes (Linux)
Existem outros projetos como Limon, Detux, HaboMalHunter, mas na lista abaixo procurei deixar somente os que estão ativos.
Sandboxes (Windows)
Esta lista não inclui serviços de sandbox puramente comerciais.
Livre
Projeto co-financiado pelo CERT da Polônia que usa o engine DRAKVUF para criar uma sandbox de Windows 7 ou Windows 10 sem agente no guest.
Sandboxes (Online)
Community
Sandbox muito boa. Também é um portal de investigação inclusive com suporte à regras de Yara.
Visualizadores Hexadecimais
Livre
Multiplataforma, com saída colorida e recursos interessantes como seek negativo (a partir do fim do arquivo).
hexdump/hd
Livre
Padrão no BSD e Linux. Se chamado por "hd" exibe saída em hexa/ASCII.
od
Livre
Padrão no UNIX e Linux. O comando od -tx1 produz uma saída similar à do hd.
xxd
Livre
Vem com o vim. Uma saída similar à do hd é obtida com xdd -g1.
Abaixo um comparativo onde dumpamos os primeiros 32 bytes de um binário /bin/ls
utilizando os visualizadores acima:
Outras
Livre
Se você pensa em parsear um formato desconhecido ou tá estudando PE/ELF, vale olhar este gerador de parser livre.
Community
Online. Requer um pequeno cadastro. Tem um recursos de identificar "genes" estaticamente de famílias de binários.
Last updated