Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia Reversa
Engenharia Reversa
• Descoberta do funcionamento interno
– Sem acesso ao código fonte
• Exemplos
– Executar o programa e monitorar suas ações e
resultados
– Analisar as instruções do código de máquina
• Aplicações
– Desenvolvimento de driver
– Sobrecarga de proteções
1
01/03/2020
Engenharia Reversa
• Identificação de Malwares
– Backdoor
– Servidor RPC
– Socket
– Acesso Web
– Comandos remotos
– Temporizadores
Engenharia Reversa
• Identificação de Malwares
– Criação/Modificação/remoção de registros e
arquivos
– Modificação de processos em execução
– Auto modificações
– Modificações em dados ou funções do sistema
2
01/03/2020
Classificação do Código
• Constante
– Executado constantemente
– Scanner, Snnifer etc.
• Reativo
– Executado em resposta a um evento
– Acesso a um site
• Dormente
– Executado em um momento específico
– DDoS
Ferramentas
• Debugger
– Análise em tempo de execução
– Manipulação do código de máquina da aplicação
– Examinar estado de registradores e posições da
memória
– Visualizar instrução por instrução
– Visualizar threads
– Breakpoints
3
01/03/2020
Debugger
• Exemplos
– WinDBG
– OllyDBG
– IDA Pro
– PyDBG
Decompilador
• Traduz dados binários em uma linguagem de
alto nível
– Com falhas
– Impossível de ser totalmente realizado
• Otimização
– Identificação de estruturas
– Facilitar o entendimento
4
01/03/2020
Decompilador
• Exemplos
– REC Studio
– Desquirr
– Boomerang
– Hex-Rays
Editores Binários
5
01/03/2020
Editores Binários
• Exemplos
– LordPE
– PEiD
– ImportRec
– PE Explorer
Disassembler
• Ferramenta estática
– Transforma bytes em mnemônicos assembly
• Problema
– Diferenciar dados de código
– Metadados
– CabeçalhoPE
– Códigos podem ser armazenados na área de dados
6
01/03/2020
Disassembler
• IDA Pro
• OllyDBG
• Fenris
• PE Browser
7
01/03/2020
Portable Executable
• Portabilidade em todos os sistemas Windows
– 32 e 64 bits
• PE
– EXE, OBJ, DLL, SYS
• Versão modificada do formato COFF
– PE/COFF
• Arquiteturas
– x86, titanium, AMD64, MIPS, PowerPC, ARM, DEC
8
01/03/2020
Outros formatos
• DOS
– Executável de 16 bits
• COM
– Executável de 16 bits
• NE
– New Executable
– DOS Multitasking
Portable Executable
9
01/03/2020
Estrutura
• Assinatura
– 4D5Ah = “MZ”
• DOS Stub
– “This program cannot be run in DOS mode”
• Cabeçalho PE (NT)
– 5045h = “PE”
– Endereço do Entry Point
– Endereço das tabelas de importação/exportação
– Número de Seções
Estrutura
• Section Table
– Descrevem as seções existentes
– Nome da seção
– Tamanho (real e virtual)
– Realocações
– Atributos diversos
10
01/03/2020
Estrutura
• Cabeçalho DOS
– Mensagem DOS
– Offset do cabeçalho PE
• Cabeçalho PE
• Cabeçalhos de Seção
– No mínimo duas seções: dados e código
– Podem existir outras seções
11
01/03/2020
Ping
12
01/03/2020
Seções
• .text
– Código executável
• .data
– Dados
• .rsrc
– Recursos
• .reloc
– Tabela de realocação de dados
13