Crypto in Malware / Reverse Engineering

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Cette sous-section aide lorsque vous voyez de la crypto/compression à l’intérieur de binaires et voulez la reconnaître rapidement.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • Beaucoup de shifts/rotates, XORs, et d’arithmétique 32-bit dans des boucles serrées.
  • Lookup tables (S-boxes) dans .data ou générées à l’exécution.
  • Des boucles répétées de 0x100 itérations suggèrent RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Si ceux-ci sont utilisés, le deuxième paramètre est un ALG_ID :

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

RtlCompressBuffer / RtlDecompressBuffer

Indique souvent une compression Windows intégrée (LZNT1, XPRESS, etc).

Constants & tables

Parfois vous pouvez identifier un hash/cipher en recherchant des constantes (ou le premier dword des tables) en ligne.

AES tables example:

RC4 recognition notes

RC4 est souvent reconnaissable par :

  • Deux boucles de 256 itérations (init + KSA)
  • Puis une boucle PRGA utilisant % 256 et XORant un keystream avec les données

Unpacking binaries

Technique

Les packers transforment un binaire de façon à tromper l’analyse statique (code inutile, sections chiffrées, runtime unpacking). L’objectif est de saisir le moment où il :

  • alloue/déchiffre le vrai code en mémoire
  • le marque exécutable
  • y saute

Identifying packed binaries

  • Absence de strings (ou uniquement des strings du packer)
  • Beaucoup de strings sans xrefs (packers commerciaux)
  • Utiliser des outils packer-ID :
  • PEiD
  • Exeinfo PE

Basic recommendations

  • Commencez l’analyse par le bas et remontez ; les unpackers sautent souvent tard.
  • Cherchez des motifs JMP/CALL reg ou des astuces de stack (push addr; retn).
  • Placez un breakpoint sur VirtualAlloc/VirtualProtect et suivez les régions RWX.
  • Une explosion soudaine de strings après un saut indique souvent que vous avez atteint le unpacked code.
  • Dump de la mémoire et correction des headers avec des outils comme PE-bear.

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks