voltar para roadmap
REVERSING/IoT

Reversing & Hardware/IoT — por onde começar

Engenharia reversa de software (binários, malware, crackmes) e de hardware (firmware, UART, JTAG, SPI). Trilha técnica densa, mas alta demanda em malware analysis e IoT pentest.

pré-requisitos

  • C básico (lê código, entende ponteiros)
  • Assembly x86/x64 e ARM (leitura, não escrita)
  • Linux + GDB básico

labs para praticar

trilha passo a passo

  1. 1

    1. Triagem rápida de binário

    Reflexo: file → strings -n 8 → ldd → checksec. Vê arquitetura, dependências, mitigações (NX, PIE, canary, RELRO). 30% dos crackmes morre só nessa sequência.

  2. 2

    2. Disassembly e decompilação

    Ghidra (NSA, free, decompila excelente), radare2/Cutter (free, hacker-friendly), IDA Free (limitado mas referência), Binary Ninja (pago mas ótimo). Aprenda UM bem antes de pular pro próximo.

  3. 3

    3. Debugging dinâmico

    GDB + plugins (gef, pwndbg, peda) pra binários Linux. x64dbg pra Windows. Frida pra hooking em runtime (cross-platform). Aprende a colocar breakpoint, ler registradores e modificar memória.

  4. 4

    4. Crackmes e CTF reversing

    Comece em crackmes.one por dificuldade 1 e suba. Padrões clássicos: strcmp óbvio, XOR de chave fixa, anti-debug (ptrace, IsDebuggerPresent), VM custom (AGES — 'aprendizado garantido em sofrimento').

  5. 5

    5. Malware analysis básico

    VM isolada (Remnux + Flare-VM, snapshots). Análise estática: PEview, CFF Explorer, Detect It Easy. Dinâmica: Process Monitor, Wireshark, Cuckoo Sandbox. NUNCA rode malware fora de VM com snapshot.

  6. 6

    6. Cross-architecture (ARM, MIPS)

    Firmware de roteador é MIPS ou ARM. Rode em x86 com qemu-user-static + chroot no rootfs. Indispensável pra debugar binário sem placa física.

  7. 7

    7. Firmware extraction

    binwalk -Me firmware.bin. Procure squashfs-root/, etc/passwd, etc/shadow, /www. 90% dos roteadores comerciais tem credencial hardcoded. hashcat -m 500 (MD5 crypt) quebra rápido.

  8. 8

    8. Hardware: UART, JTAG, SPI flash

    UART (4 pinos, baud 115200 comum) dá shell direto em muito IoT. JTAG dá controle total da CPU — JTAGulator descobre pinout. SPI flash chip pode ser dumpado com CH341A (R$ 50). Sempre comece pelo mais barato (UART).

dicas de quem já passou pela trilha

  • strings -n 8 ANTES de qualquer Ghidra. Resolve 30% dos crackmes simples sem disassembly.
  • Aprenda UM disassembler bem (Ghidra é a melhor escolha grátis hoje) antes de testar todos.
  • Em malware, snapshot da VM antes de cada execução. Restaurar leva 5s; reinstalar leva 1h.
  • Anti-debug clássico: ptrace(PTRACE_TRACEME) no Linux, IsDebuggerPresent no Windows. Patch um NOP e segue.
  • Em hardware: comece sempre por UART. 4 pinos, R$ 50 de adaptador, dá shell em ~70% dos dispositivos baratos.
  • Firmware comercial quase sempre tem hash hardcoded em /etc/passwd. hashcat -m 500 + rockyou quebra rápido.

livros recomendados

  • Practical Malware Analysis (Sikorski, Honig) — referência absoluta
  • The IDA Pro Book (Eagle)
  • Reversing: Secrets of Reverse Engineering (Eilam)
  • The Hardware Hacker (Bunnie Huang)
  • Practical IoT Hacking (Chantzis et al, NoStarch)