Você está na página 1de 13

01/03/2020

Engenharia Reversa

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

1
01/03/2020

Engenharia Reversa
• Identificação de Malwares
– Backdoor
– Servidor RPC
– Socket
– Acesso Web
– Comandos remotos
– Temporizadores

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

3
01/03/2020

Debugger
• Exemplos
– WinDBG
– OllyDBG
– IDA Pro
– PyDBG

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

4
01/03/2020

Decompilador
• Exemplos
– REC Studio
– Desquirr
– Boomerang
– Hex-Rays

Centro de Ensino Superior de Juiz de Fora

Editores Binários

• Examinar e modificar arquivos executáveis


• Modificações que podem ser realizadas:
– Modificação do Entry Point
– Tamanho das seções
– Lista de funções importadas
• Permite a análise da estrutura do arquivo
– Portable Executable (PE) - Windows

Centro de Ensino Superior de Juiz de Fora

5
01/03/2020

Editores Binários
• Exemplos
– LordPE
– PEiD
– ImportRec
– PE Explorer

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

6
01/03/2020

Disassembler
• IDA Pro
• OllyDBG
• Fenris
• PE Browser

Centro de Ensino Superior de Juiz de Fora

Formato dos Executáveis


• Para ser executado em um S.O.
– Seguir formatos padronizados
– Código
– Recursos
– Bibliotecas
– Espaço de memória

Centro de Ensino Superior de Juiz de Fora

7
01/03/2020

Formato dos Executáveis


• Exemplos
– Portable Executable (PE) – Windows
– Executable and Linking Format (ELF) – Unix Like
– ABI-Mach-O – Mac OS

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

8
01/03/2020

Outros formatos
• DOS
– Executável de 16 bits
• COM
– Executável de 16 bits
• NE
– New Executable
– DOS Multitasking

Centro de Ensino Superior de Juiz de Fora

Portable Executable

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

Estrutura
• Section Table
– Descrevem as seções existentes
– Nome da seção
– Tamanho (real e virtual)
– Realocações
– Atributos diversos

Centro de Ensino Superior de Juiz de Fora

10
01/03/2020

Centro de Ensino Superior de Juiz de Fora

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

Centro de Ensino Superior de Juiz de Fora

11
01/03/2020

Ping

Centro de Ensino Superior de Juiz de Fora

Centro de Ensino Superior de Juiz de Fora

12
01/03/2020

Centro de Ensino Superior de Juiz de Fora

Seções
• .text
– Código executável
• .data
– Dados
• .rsrc
– Recursos
• .reloc
– Tabela de realocação de dados

Centro de Ensino Superior de Juiz de Fora

13

Você também pode gostar