Crypto in Malware / Reverse Engineering

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Ta podsekcja pomaga, gdy zobaczysz crypto/compression w plikach binarnych i chcesz to szybko rozpoznać.

Identyfikacja algorytmów kryptograficznych / kompresji

Heurystyki ukierunkowane na technikę

  • Dużo shifts/rotates, XORs i arytmetyki 32-bitowej w ciasnych pętlach.
  • Lookup tables (S-boxes) w .data lub generowane w czasie wykonania.
  • Powtarzające się pętle po 0x100 iteracji sugerujące RC4.

Windows API dla crypto/kompresji

CryptDeriveKey / CryptCreateHash

Jeśli są używane, drugi parametr to ALG_ID:

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

RtlCompressBuffer / RtlDecompressBuffer

Często wskazuje na wbudowaną kompresję Windows (LZNT1, XPRESS, etc).

Stałe i tabele

Czasami można zidentyfikować hash/szyfr, wyszukując stałe (lub pierwszy dword tabel) w sieci.

Przykład tabel AES:

Wskazówki rozpoznawania RC4

RC4 często rozpoznaje się po:

  • Dwie pętle po 256 iteracji (init + KSA)
  • Następnie pętla PRGA używająca % 256 i XORująca keystream z danymi

Rozpakowywanie binarek

Technika

Packers przekształcają binarkę tak, że analiza statyczna jest myląca (junk code, encrypted sections, runtime unpacking). Celem jest złapać moment, w którym:

  • alokuje/odszyfrowuje prawdziwy kod w pamięci
  • oznacza go jako wykonywalny
  • wykonuje skok do niego

Identyfikacja spakowanych binarek

  • Brak strings (lub tylko strings packera)
  • Wiele strings bez xrefs (komercyjne packery)
  • Użyj narzędzi do identyfikacji packera:
  • PEiD
  • Exeinfo PE

Podstawowe zalecenia

  • Zacznij analizę od dołu i idź w górę; unpackers często skaczą późno.
  • Szukaj wzorców JMP/CALL reg lub sztuczek ze stosem (push addr; retn).
  • Ustaw breakpoint na VirtualAlloc/VirtualProtect i śledź regiony RWX.
  • Nagły wysyp strings po skoku często wskazuje, że dotarłeś do rozpakowanego kodu.
  • Zrzutuj pamięć i napraw nagłówki narzędziami takimi jak PE-bear.

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks