Crypto in Malware / Reverse Engineering

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Esta subseção ajuda quando você vê crypto/compression dentro de binaries e quer reconhecê-los rapidamente.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • Muitos shifts/rotates, XORs e aritmética 32-bit em loops apertados.
  • Lookup tables (S-boxes) em .data ou geradas em tempo de execução.
  • Loops repetidos de 0x100 iterações indicando RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Se estes são usados, o segundo parâmetro é um ALG_ID:

Table: https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id

RtlCompressBuffer / RtlDecompressBuffer

Geralmente indica compressão integrada do Windows (LZNT1, XPRESS, etc).

Constants & tables

Às vezes você pode identificar um hash/cipher procurando constantes (ou o primeiro dword das tabelas) online.

AES tables example:

RC4 recognition notes

RC4 é frequentemente reconhecível por:

  • Dois loops de 256 iterações (init + KSA)
  • Então um loop PRGA usando % 256 e XORando um keystream com os dados

Unpacking binaries

Technique

Packers transformam um binary de forma que a análise estática seja enganosa (junk code, encrypted sections, runtime unpacking). O objetivo é capturar o momento em que ele:

  • aloca/descriptografa o código real na memória
  • marca como executável
  • salta para ele

Identifying packed binaries

  • Falta de strings (ou apenas strings do packer)
  • Muitas strings sem xrefs (packers comerciais)
  • Use ferramentas de packer-ID:
  • PEiD
  • Exeinfo PE

Basic recommendations

  • Comece a análise de baixo para cima; unpackers frequentemente saltam tarde.
  • Procure padrões JMP/CALL reg ou truques de stack (push addr; retn).
  • Coloque breakpoint em VirtualAlloc/VirtualProtect e rastreie regiões RWX.
  • Uma explosão repentina de strings após um jump frequentemente indica que você alcançou código desempacotado.
  • Faça dump da memória e corrija headers com ferramentas como PE-bear.

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks