Crypto in Malware / Reverse Engineering

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Ця підсекція допомагає, коли ви бачите crypto/compression всередині бінарників і хочете швидко їх розпізнати.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • Багато shifts/rotates, XORs та 32-bit арифметики в щільних циклах.
  • Lookup tables (S-boxes) в .data або згенеровані під час виконання.
  • Повторювані цикли по 0x100 ітерацій — ознака RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Якщо вони використовуються, другий параметр — ALG_ID:

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

RtlCompressBuffer / RtlDecompressBuffer

Часто вказує на вбудовану Windows compression (LZNT1, XPRESS тощо).

Constants & tables

Іноді можна ідентифікувати hash/cipher, шукаючи константи (або перший dword таблиць) в інтернеті.

AES tables example:

RC4 recognition notes

RC4 часто можна впізнати за:

  • Двома циклами по 256 ітерацій (init + KSA)
  • Потім циклом PRGA з використанням % 256 та XORing keystream з даними

Unpacking binaries

Technique

Packers трансформують бінарник так, що статичний аналіз дає хибні результати (junk code, encrypted sections, runtime unpacking). Мета — зловити момент, коли він:

  • виділяє/дешифрує реальний код у пам’яті
  • робить його виконуваним (executable)
  • переходить виконання в нього

Identifying packed binaries

  • Відсутність рядків (або лише packer strings)
  • Багато рядків без xrefs (commercial packers)
  • Використовуйте packer-ID інструменти:
  • PEiD
  • Exeinfo PE

Basic recommendations

  • Розпочинайте аналіз знизу і рухайтеся вгору; unpackers часто здійснюють перехід пізно.
  • Шукайте JMP/CALL reg патерни або трюки зі стеком (push addr; retn).
  • Встановіть breakpoint на VirtualAlloc/VirtualProtect і відслідковуйте RWX регіони.
  • Раптове різке збільшення рядків після переходу часто вказує, що ви досягли розпакованого коду.
  • Здампте пам’ять і виправте заголовки за допомогою інструментів, таких як PE-bear.

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks