Ferramentas
Last updated
Last updated
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.
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.
Nome | Licença | Descrição |
---|---|---|
Analisam estaticamente os binários, sem carregá-los. São úteis para uma primeira visão sobre um executável desconhecido.
Existem outros projetos como Limon, Detux, HaboMalHunter, mas na lista abaixo procurei deixar somente os que estão ativos.
Esta lista não inclui serviços de sandbox puramente comerciais.
Abaixo um comparativo onde dumpamos os primeiros 32 bytes de um binário /bin/ls
utilizando os visualizadores acima:
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
Nome | Licença | Descrição |
---|---|---|
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.
Comercial
Pago, somente para Windows, antigo, mas muito bem feito.
Livre
Somente para macOS, com recursos legais como diff e data inspector.
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!
Freeware
Bem bom. Possui recursos extras como geração de hashes e suporte a abrir discos.
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.
Freeware
Sem muitos recursos, mas quebra um galho no Windows para uma edição rápida.
Livre
Detecta as capacidades de executáveis PE e shellcodes para Windows.
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
Analisador de PE de linha de comando disponível no SDK do Visual Studio.
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
Parte do GNU binutils, também analisa PE, além de ELF, a.out, etc.
Freeware
Analisador gráfico (Qt) multiplataforma que também detecta packers/protectors.
Livre
Analisador online muito legal!
Freeware
Analisador de PE padrão da indústria, com foco em malware. Tem versão Pro (paga).
Livre
Também parte do binutils, analisador de ELF.
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.
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.
Livre
Nossa 💚 biblioteca multiplataforma para parsing de arquivos PE.
Livre
Biblioteca em C++ para PE usada pelo PE-Bear.
Livre
Famosa biblioteca em Python pra fazer qualquer coisa com arquivos PE.
Livre
Biblioteca em .Net para PE.
Livre
Biblioteca em Java para PE.
Livre
Biblioteca em Python para parsear binários ELF.
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
Comercial
Novo disassembler que teoricamente compete com o IDA. Possui versão online gratuita mediante registro.
Livre
Disassembler livre lançado pela NSA. Temos um treinamento em vídeo sobre ele.
Comercial
Disassembler com foco em binários de Linux e macOS.
Comercial
Disassembler interativo padrão de mercado. Possui versão freeware.
Livre
Somente para .NET, descompila, debuga e (dis)assembla.
Livre
Debugger gráfico (Qt) com foco em binários ELF no Linux.
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 GDB Enhanced Features extende o GDB com recursos para engenharia reversa.
Livre
Debugger que roda no nível do hypervisor, também conhecido como ring -1.
Freeware
Poderoso debugger, apesar de não mais mantido.
Livre
O Python Exploit Development Assistance também extende o GDB, assim como o GEF. A interface é um pouco diferente, no entanto.
Freeware
Debugger ring0/3, parte integrante do SDK do Windows.
Livre
Debugger user-mode para Windows com suporte a 32 e 64-bits.
Livre
Para .NET. Conhece vários ofuscadores e permite trabalhar genericamente também.
Livre
Para programas feito em Java. Suporta os ofuscadores mais comuns como Stinger e ZKM.
Livre
Descompilador multiplataforma para .NET.
Livre
Para binários compilados em Delphi.
Livre
Descompilador genérico com versão de linha de comando, gráfica e até web.
Livre
Descompilador para C/C++ feito pelo time do Avast. Inclui detector de compilador e packer, plugins para IDA e radare2.
Livre
Descompilador livre para C/C++. Pode ser usado como plugin no IDA, x64dbg, etc.
Livre
Descompilador para Java de linha de comando. O output é o código fonte e só.
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
Descompilador para Java com GUI.
Livre
Para Java, com suporte a recursos novos da linguagem. É modo texto mas há GUI's disponíveis documentadas no link.
Comercial
Descompilador para VB5/6 e disassembler para VB .NET.
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.
Livre
Framework para análise estática e simbólica de binários.
Livre
Framework para instrumentação dinâmica de binários.
Livre
Plataforma de análise dinâmica baseada no QEMU, que faz até replay de ações.
Livre
Suíte completa com debugger, disassembler e outras ferramentas para quase todo tipo de binário existente!
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.
Livre
Possui uma API bem simples e suporta binários ELF compilados para x86, x86-64, ARM e MIPS.
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.
Livre
Sandbox específica para extração de configuração de malware.
Livre
Provavelmente a sandbox mais popular e utilizada.
Community
Apesar do nome, só suporta artefatos de Windows, mas é muito bom!
Community
Sandbox muito boa. Também é um portal de investigação inclusive com suporte à regras de Yara.
Community
Um dos primeiros serviços. Suporta ELF (x86 e x86-64), PE e documentos.
Livre
Clone nosso 💚, multiplataforma (funciona no Windows!) do hexdump que imita a saída do hd.
Livre
Multiplataforma, com saída colorida e recursos interessantes como seek negativo (a partir do fim do arquivo).
Gratuito
Visualizador web que faz análises estatísticas visuais muito úteis.
Livre
Multiplataforma, também com output colorido, exibição de borda, etc.
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.
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.