Crypto in Malware / Reverse Engineering

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Bu alt bölüm, binary’lerin içinde crypto/compression gördüğünüzde bunu hızlıca tanımanıza yardımcı olur.

Kriptografik / sıkıştırma algoritmalarını tanımlama

Teknik-öncelikli sezgiler

  • Sıkı döngülerde çok sayıda shifts/rotates, XORs ve 32-bit aritmetiği.
  • Lookup tables (S-boxes) .data içinde veya runtime sırasında oluşturulmuş.
  • Tekrarlayan 0x100 iterasyonlu döngüler RC4’ü işaret eder.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Bunlar kullanılıyorsa, ikinci parametre bir ALG_ID’dir:

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

RtlCompressBuffer / RtlDecompressBuffer

Genellikle yerleşik Windows sıkıştırmasını gösterir (LZNT1, XPRESS, vb).

Sabitler ve tablolar

Bazen sabitleri (veya tabloların ilk dword’ü) çevrimiçi aratarak bir hash/cipher’ı tanımlayabilirsiniz.

AES tabloları örneği:

RC4 tanıma notları

RC4 genellikle şu özelliklerle tanınır:

  • İki adet 256 iterasyonlu döngü (init + KSA)
  • Ardından % 256 kullanan bir PRGA döngüsü ve keystream’in data ile XOR’lanması

Binary’lerin unpack edilmesi

Teknik

Packers bir binary’i öyle değiştirir ki static analysis yanıltıcı olur (junk code, encrypted sections, runtime unpacking). Amaç şudur:

  • gerçek kodu hafızada allocate/decrypt etmesi
  • bunu executable olarak işaretlemesi
  • ve üzerine atlaması

Packed binary’leri tanımlama

  • String eksikliği (veya yalnızca packer string’leri)
  • xrefs olmadan çok sayıda string (commercial packers)
  • Packer-ID araçlarını kullanın:
  • PEiD
  • Exeinfo PE

Temel öneriler

  • Analize alttan başlayıp yukarı doğru çalışın; unpacker’lar genellikle geç atlar.
  • JMP/CALL reg desenleri veya stack hileleri (push addr; retn) arayın.
  • VirtualAlloc/VirtualProtect üzerinde breakpoint koyun ve RWX bölgelerini takip edin.
  • Bir atlamadan sonra ani bir string patlaması genellikle unpacked koda ulaştığınızı gösterir.
  • Hafızayı dump edin ve PE-bear gibi araçlarla header’ları düzeltin.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin