Introdução a engenharia reversa e decompiladores

Os participantes serão introduzidos aos conceitos essenciais da área: o que é engenharia reversa, suas aplicações legítimas e suas implicações éticas e legais. Em seguida, serão apresentados os fundamentos necessários para a leitura de código de baixo nível: organização de memória, convenções de chamada de função, registradores e a estrutura de um executável (formato ELF). Verão os principais tipos de ferramentas utilizadas na área: disassemblers, decompiladores (com destaque para Ghidra) e debuggers (x64dbg), explicando como cada um contribui no processo de análise. Com o embasamento teórico construído, os participantes acompanharão a análise de um binário simples, aprendendo a identificar pontos de interesse como validações de senha, comparações de strings e desvios condicionais. Concluído com um exercício prático guiado, um crackme de nível iniciante, que deverão, com auxílio das ferramentas apresentadas, identificar e contornar a verificação de licença/senha do programa, colocando em prática todos os conceitos vistos. Desejável noções básicas de linguagem C.

Slides:

Exercicios:

exercicios

Outros materiais:

Vídeo aulas:


Publicado em Materiais.