Crypto in Malware / Reverse Engineering

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Esta subsección ayuda cuando ves crypto/compression dentro de binarios y quieres reconocerlo rápidamente.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • Muchos shifts/rotates, XORs y aritmética de 32 bits en bucles ajustados.
  • Tablas de búsqueda (S-boxes) en .data o generadas en tiempo de ejecución.
  • Bucles repetitivos de 0x100 iteraciones que indican RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Si se usan, el segundo parámetro es un ALG_ID:

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

RtlCompressBuffer / RtlDecompressBuffer

A menudo indica compresión integrada de Windows (LZNT1, XPRESS, etc).

Constants & tables

A veces puedes identificar la huella de un hash/cipher buscando constantes (o el primer dword de las tablas) en línea.

AES tables example:

RC4 recognition notes

RC4 a menudo es reconocible por:

  • Dos bucles de 256 iteraciones (init + KSA)
  • Luego un bucle PRGA usando % 256 y XORando un keystream con los datos

Unpacking binaries

Technique

Packers transforman un binario para que el análisis estático sea engañoso (código basura, secciones encriptadas, runtime unpacking). El objetivo es atrapar el momento en que:

  • asigna/descifra código real en memoria
  • lo marca como ejecutable
  • salta a él

Identifying packed binaries

  • Falta de strings (o solo strings del packer)
  • Muchas strings sin xrefs (packers comerciales)
  • Usa herramientas de packer-ID:
  • PEiD
  • Exeinfo PE

Basic recommendations

  • Empieza el análisis desde abajo y trabaja hacia arriba; los unpackers a menudo saltan al final.
  • Busca patrones JMP/CALL reg o trucos de stack (push addr; retn).
  • Pon breakpoint en VirtualAlloc/VirtualProtect y rastrea regiones RWX.
  • Una explosión repentina de strings después de un salto suele indicar que llegaste al código desempaquetado.
  • Volca la memoria y corrige headers con herramientas como PE-bear.

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks