Resolvi montar este tutorial depois do grande trabalho que tive pra atualizar a máquina virtual que utilizo para analisar malware. Perdi horas procurando e instalando programas. Minha vontade era de distribuir um OVA com a máquina já pronta e talvez faça isso no futuro mas por hora vou discutir aqui os programas que utilizo para uma análise básica de malware ou engenharia reversa de algum software.

Máquina virtual
- 512 MB de memória
- Placa de rede em modo NAT
Sistema operacional
Utilizo o Windows 7 64-bits em Português do Brasil, para facilitar na análise de malware brasileiro que teste o idioma do SO. Claro que em alguns casos vale a pena você ter máquinas virtuais de outras versões do Windows e em diferentes idiomas para ver se o comportamento do seu alvo muda. “Alvo” aqui significa o arquivo que você vai analisar, seja porque ele é suspeito seja porque você quer conhecer seu funcionamento.
Algums dicas durante de instalação:
- Não utilizar seu nome verdadeiro na criação da conta de usuário do Windows durante a instalação. Não há necessidade.
- Não instalar as extensões do software virtualizador como VMware Tools ou VirtualBox Guest Additions.
- Não instalar nenhum antivírus, firewall ou qualquer software de proteção.
- Desabilitar todos os itens na “Central de Segurança” do Windows, incluindo as atualizações automáticas.
Arquivos diversos
Costumo espalhar uns arquivos .doc, .xls etc pela máquina, a fim de parecer que é uma máquina real. Algumas ameaças (principalmente ransomware) tentam encriptar ou mesmo destruir arquivos das vítimas.
Software geral
- 7-Zip: Descomprime qualquer formato! E é livre.
- Firefox: Browser livre.
- Flash: Caso precise analisar SWF ou visualizar algum site que exija, mas cuidado pra não baixar tralha da McAfee junto.
- Java: Somente a JRE (Java Runtime Environment), para analisar classes Java.
- .NET Framework: Para permitir que ferramentas e alvos escritos nesta linguagem rodem.
- Notepad++: o único editor de arquivos que você precisa no Windows!
Software específico
- API Monitor: Pode monitorar qualquer chamada a uma função específica da API do Windows ou de uma DLL específica. Muito bom.
- CFF Explorer: Analisador de PE.
- DeDe: Descompilador para Delphi. Extremamente útil para os malwares brasileiros!
- DIE (Detect It Easy): Detector de packer novo e promissor com suporte a regras personalizadas.
- Dis#: Descompilador para .NET.
- E2A (Event to Address): Somente para alvos escritos em Borland C++, dá os endereços dos eventos, como o clique de um botão por exemplo. Impressionante.
- FileGrab: Monitora o filesystem e copia para um diretório qualquer arquivo criado nele. Útil pra monitorar comportamento de malware que se deleta.
- Hex Workshop: Editor hexa animal, mas pago (não se preocupe, há um livre no final da lista).
- IDA Free: Disassembler e debugger. Tem uma função graph muito útil, além de suporte a vários tipos de binários e muitos recursos.
- ImpRec (Import Reconstructor): Útil para unpacking manual, para reconstruir a IAT (Import Address Table) de binários.
- JD-GUI: Descompilador Java (gera código Java a partir dos .class).
- .NET Reflector: Outro descompilador pra .NET. Assim como o Dis#, gera MSIL (Microsoft Intermeddiate Language) como saída, não Assembly.
- OllyDbg: Debugger e disassembler. O principal programa para análise.
- PeStudio: Analisador de arquivos PE.
- pev: Toolkit para análise de binários.
- ProcessExplorer: Monitora o que os processos estão fazendo no sitema (chaves de registro que estão abrindo, outros arquivos etc).
- RawCap: Sniffer de pacotes que usa raw sockets. É muito rápido e simples de usar. Gera o PCAP pra ser analisado no Wireshark futuramente, o que pode ser feito fora da máquina virtual.
- RDG Packer Detector: Melhor detector de packer que conheço.
- RegShot: Usado para tirar uma “foto” do sistema antes e outra depois da execução de um aplicativo, a fim de compará-las para investigar o que foi alterado.
- ResHack (Resource Hacker): Editor de recursos (ícones, telas e afins dentro do binário).
- wxHexEditor: Editor hexadecimal livre, cheio de recursos. Tem a capacidade de editar discos inclusive.
Software opcional, caso precise programar
- Orwell Dev-C++: Versão em constante atualização do Dev-C++, para quem precisar codar em C/C++ para ver o comportamento de uma função da API do Windows por exemplo.
- Visual Studio Express: Para desenvolver em .NET, a Microsoft oferece uma versão gratuita (Express) do Visual Studio.
IMPORTANTE: Após instalar todos os softwares, é de extrema utilidade criar um snapshot da máquina virtual, pra você voltar facilmente a este estado limpo após analisar um arquivo suspeito, por exemplo.
Se você é iniciante, recomendo baixar e testar um programa de cada vez, até entender o motivo pelo qual ele pode ser útil. Alguns programas da lista acima são redundantes entre si pois possuem o mesmo objetivo, mas às vez um é mais preciso que outro dependendo do alvo, por isso é interessante mantê-los.
Recomendo colocar as ferramentas que não possuem programa de instalação, como o E2A, num diretório tipo C:tools e criar atalhos para os executáveis principais na área de trabalho.
O artigo é curto mas o trabalho que o leitor terá é grande.
-
1