Crypto in Malware / Reverse Engineering

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

यह उपखंड तब मदद करता है जब आप binaries के अंदर crypto/compression देखते हैं और इसे जल्दी से पहचानना चाहते हैं।

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • tight loops में कई shifts/rotates, XORs, और 32-bit arithmetic होते हैं।
  • Lookup tables (S-boxes) .data में या runtime पर जनरेट होते पाए जा सकते हैं।
  • दोहराए जाने वाले 0x100 इटरेशन वाले loops RC4 का संकेत दे सकते हैं।

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

अगर इनका उपयोग होता है, तो दूसरा parameter एक ALG_ID होता है:

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

RtlCompressBuffer / RtlDecompressBuffer

अक्सर यह built-in Windows compression (LZNT1, XPRESS, आदि) की ओर संकेत करता है।

Constants & tables

कभी-कभी आप constants (या tables के पहले dword) को ऑनलाइन खोजकर किसी hash/cipher की fingerprint कर सकते हैं।

AES tables का उदाहरण:

RC4 recognition notes

RC4 को अक्सर निम्न से पहचान सकते हैं:

  • दो 256-iteration वाले loops (init + KSA)
  • फिर एक PRGA loop जो % 256 का उपयोग करता है और keystream को data के साथ XOR करता है

Unpacking binaries

Technique

Packers बाइनरी को इस तरह परिवर्तित करते हैं कि static analysis भ्रामक हो (junk code, encrypted sections, runtime unpacking)। मकसद यह पकड़ना है कि कब यह:

  • मेमोरी में वास्तविक कोड allocate/decrypt करता है
  • इसे executable के रूप में mark करता है
  • और उसमें jump करता है

Identifying packed binaries

  • strings का अभाव (या केवल packer के strings)
  • कई strings जिनके कोई xrefs नहीं होते (commercial packers)
  • packer-ID tools का उपयोग करें:
  • PEiD
  • Exeinfo PE

Basic recommendations

  • analysis को नीचे से शुरू करके ऊपर की ओर काम करें; unpackers अक्सर बाद में jump करते हैं।
  • देखें JMP/CALL reg patterns या stack tricks (push addr; retn)।
  • VirtualAlloc/VirtualProtect पर breakpoint लगाएँ और RWX regions को ट्रैक करें।
  • jump के बाद अचानक strings की explosion अक्सर संकेत है कि आप unpacked code पर पहुँच गए हैं।
  • memory dump करें और headers को PE-bear जैसे tools से ठीक करें।

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें