Cyber Security Academy · पाठ

स्ट्रिंग और हेक्स से हंटिंग

मैलवेयर के अवशेषों का मिलान करना।

पाठ 3, कुल 4 में से13 चरण

स्ट्रिंग और हेक्स से हंटिंग, CoddyKit पर Cyber Security Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Cyber Security Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cyber Security Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

नमूने से नियम तक

खोज किसी नमूने से शुरू होती है। आप विशिष्ट अवशेष निकालते हैं, तय करते हैं कि इनमें से कौन-से टिकाऊ हैं, और उन्हें ऐसे नियम में लिखते हैं, जो सुरक्षित फ़ाइलों को चिह्नित किए बिना उस परिवार को पकड़ सके।

कार्यप्रवाह यह है: नमूने की प्राथमिक छँटाई करें, स्ट्रिंग और संरचनात्मक विशेषताएँ निकालें, उपयोगी संकेतों को शोर से अलग करें, नियम का प्रारूप तैयार करें, फिर लागू करने से पहले परिवार और स्वच्छ नमूना-संग्रह दोनों पर उसका परीक्षण करें।

संभावित स्ट्रिंग निकालना

मुद्रण योग्य अनुक्रमों की सूची बनाने के लिए strings उपयोगिता से शुरुआत करें और ASCII तथा UTF-16 (वाइड) दोनों प्रकार का पाठ प्राप्त करें। विंडोज़ मैलवेयर अक्सर स्ट्रिंग को वाइड रूप में रखता है।

परिणामों में कमांड-एंड-कंट्रोल यूआरएल, म्यूटेक्स नाम, रजिस्ट्री पथ, कस्टम त्रुटि संदेश, PDB पथ और असामान्य रूप से विशिष्ट पाठ खोजें। सामान्य रनटाइम और कंपाइलर स्ट्रिंग को नज़रअंदाज़ करें।

strings -a sample.bin > ascii.txt
strings -e l sample.bin > wide.txt   # UTF-16LE
grep -iE 'http|mutex|\\\\pipe\\\\|\.pdb' ascii.txt wide.txt

टिकाऊ स्ट्रिंग चुनना

हर स्ट्रिंग को नियम में शामिल नहीं किया जाना चाहिए। ऐसे अवशेषों को प्राथमिकता दें, जिन्हें लेखक बिना काफ़ी प्रयास के बदल नहीं सकता:

  • परिवार के लिए विशिष्ट हार्डकोड किए गए म्यूटेक्स या पाइप नाम
  • कस्टम प्रोटोकॉल चिह्न या कॉन्फ़िगरेशन कुंजियाँ
  • असामान्य डिबग या पैनिक संदेश
  • निर्माण परिवेश का पता बताने वाले एम्बेडेड PDB पथ

लाइब्रेरी के सामान्य ढाँचे, आम एपीआई नाम और वैध सॉफ़्टवेयर में साझा किए गए संस्करण स्ट्रिंग से बचें, क्योंकि वे गलत-सकारात्मक परिणाम उत्पन्न करते हैं।

strings:
  $mutex = "Global\\Zx7yQ_lock" wide
  $cfgkey = "x0r_cfg_begin" ascii
  $pdb = "C:\\build\\loader\\release\\loader.pdb"

सरल कोड-छिपाव को निष्प्रभावी करना

कई परिवार स्ट्रिंग को XOR या किसी अन्य हल्के तरीके से कूटबद्ध करते हैं। यदि स्पष्ट-पाठ वाली स्ट्रिंग कम हों, तो कूटबद्ध रूप या डिकोडर रूटीन खोजें।

आप किसी ज्ञात सादा-पाठ के XOR-कूटबद्ध बाइट निकालकर उनसे मिलान कर सकते हैं, या किसी एक-बाइट XOR कुंजी के अंतर्गत स्ट्रिंग से अपने-आप मिलान करने के लिए YARA के xor संशोधक का उपयोग कर सकते हैं।

strings:
  // matches "http://" under any single-byte XOR key
  $u = "http://" xor
  // or a fixed key range
  $k = "config" xor(0x01-0xff)

हेक्स पैटर्न से खोज

जब स्ट्रिंग अस्पष्ट की गई हों, लेकिन कोड वैसा ही हो, तब मैलवेयर के अपने तर्क से लिए गए बाइट पैटर्न से मिलान करें: डिक्रिप्शन स्टब, अनपैकिंग लूप या कोई विशिष्ट स्थिरांक।

नमूने को डिसअसेंबल करें, निर्देशों का विशिष्ट अनुक्रम खोजें और ऑपकोड को हेक्स स्ट्रिंग में बदलें। बदलने वाले बाइट, जैसे पते और इमीडिएट मान, वाइल्डकार्ड करें, ताकि पुनःकंपाइलेशन के बाद भी पैटर्न काम करता रहे।

strings:
  // XOR decrypt loop with wildcarded counter/address
  $decrypt = { 8A ?? 34 ?? 88 ?? 4? 4? 75 ?? }

व्यवहार में वाइल्डकार्ड और जंप

हेक्स खोजने की कला यह तय करने में है कि किन बाइट को वाइल्डकार्ड बनाया जाए। बहुत कड़ा पैटर्न पुनःकंपाइलेशन पर नियम को तोड़ देगा, जबकि बहुत ढीला पैटर्न हर चीज़ से मिल सकता है।

  • कंपाइलर द्वारा बदले जाने वाले रिलेटिव ऑफ़सेट और इमीडिएट मान को वाइल्डकार्ड करें
  • ऑपकोड स्थिर रखें, क्योंकि एल्गोरिदम स्थिर रहता है
  • जहाँ निर्देशों की लंबाई बदलती हो, वहाँ जंप [n-m] का उपयोग करें

ऐसा पैटर्न बनाएँ जो विशिष्ट होने के लिए पर्याप्त लंबा हो (अक्सर 8 या अधिक अर्थपूर्ण बाइट), लेकिन जहाँ आवश्यक हो वहाँ लचीला भी रहे।

strings:
  $stub = { 55 8B EC 83 EC [1-4] E8 ?? ?? ?? ?? 33 C0 }

संरचनात्मक और PE संकेतक

कच्चे बाइट से आगे के स्थिर गुण मजबूत और कम-शोर वाली शर्तें बनाते हैं। pe मॉड्यूल का उपयोग करके आप इनसे मिलान कर सकते हैं:

  • imphash — आयात तालिका का हैश, जो अक्सर किसी परिवार के विभिन्न निर्माणों में स्थिर रहता है
  • अनुभाग नाम — कस्टम पैकर पहचान योग्य अनुभाग जोड़ते हैं
  • विशिष्ट imports — VirtualAllocEx + WriteProcessMemory + CreateRemoteThread इंजेक्शन का संकेत देते हैं
import "pe"
condition:
  pe.imphash() == "4e3a9f..." or
  for any s in pe.sections : ( s.name == ".x0rsec" )

संकेत के रूप में entropy

पैक किए गए या कूटबद्ध क्षेत्रों में उच्च entropy होती है। math मॉड्यूल इसे मापता है, जिससे आप उन नमूनों को चिह्नित कर सकते हैं जिनका पेलोड अनुभाग कूटबद्ध दिखाई देता है—यह पैकर की पहचान है।

अकेली entropy में बहुत शोर होता है (संपीड़ित इंस्टॉलर में भी entropy अधिक होती है), इसलिए केवल इसी के आधार पर चेतावनी देने के बजाय इसे अन्य संकेतकों के साथ मिलाएँ।

import "math"
condition:
  math.entropy(0, filesize) >= 7.2 and $loader_stub

संकेतकों का संयोजन

सबसे मजबूत नियमों में कई स्वतंत्र संकेतक आवश्यक होते हैं, ताकि कोई अकेली संयोगवश समानता मिलान न कराए। एक स्ट्रिंग, एक कोड पैटर्न और एक संरचनात्मक गुण को मिलाएँ।

यह परतदार शर्त गलत-सकारात्मक परिणामों और बच निकलने, दोनों का प्रतिरोध करती है (सभी भागों का सहमत होना आवश्यक है और लेखक को एक साथ कई गुण बदलने पड़ते हैं)।

condition:
  uint16(0) == 0x5A4D and
  filesize < 800KB and
  $mutex and
  $decrypt and
  pe.imports("kernel32.dll", "CreateRemoteThread")

नामकरण, मेटा और संस्करण-प्रबंधन

खोज का नियम तभी उपयोगी है, जब दूसरे लोग उस पर भरोसा कर सकें और उसका रखरखाव कर सकें। प्रत्येक नियम को स्पष्ट, नाम-स्थान सहित नाम और पूरा meta दें।

  • जिन नमूनों से नियम बनाया गया, उनके हैश दर्ज करें
  • परिवार, लेखक, तारीख और संदर्भ लिखें
  • तर्क को बेहतर बनाने पर संस्करण फ़ील्ड बढ़ाएँ

जब नियम महीनों बाद सक्रिय होता है, तो यह मेटाडेटा प्रतिक्रिया देने वाले विश्लेषक को बताता है कि इसका अर्थ क्या है और इस पर कितना भरोसा किया जा सकता है। इस तरह एकबारगी खोज टिकाऊ और साझा की जा सकने वाली पहचान में बदल जाती है।

meta:
  family = "X0rLoader"
  author = "ir-team"
  date = "2026-06-04"
  hash = "9f1c...e2"
  version = "2"

भरोसा करने से पहले परीक्षण करें

नए नियम को हमेशा दो नमूना-संग्रहों पर सत्यापित करें:

  • सही-सकारात्मक परिणाम — परिवार के हर ज्ञात नमूने से मिलान होना चाहिए
  • स्वच्छ सॉफ़्टवेयर — बड़े स्वच्छ संग्रह (सिस्टम बाइनरी, सामान्य ऐप्लिकेशन) से NOT मिलान होना चाहिए

विंडोज़ DLL पर एक भी गलत-सकारात्मक परिणाम पूरे आईटी परिवेश में महत्वपूर्ण फ़ाइलों को अलग कर सकता है। नियम चलाएँ, परिणाम गिनें, छूटे और मिले परिणामों की समीक्षा करें, फिर व्यापक रूप से लागू करने से पहले सुधार करें।

yara -r family.yar /malware_corpus/   # expect all to hit
yara -r family.yar /clean_corpus/     # expect zero hits

त्वरित जाँच

सबसे अधिक टिकाऊ संकेतक चुनें।

पुनरावलोकन

व्यावहारिक YARA खोज, आरंभ से अंत तक:

  • ASCII और वाइड स्ट्रिंग निकालें; टिकाऊ अवशेष रखें (म्यूटेक्स, कॉन्फ़िगरेशन कुंजियाँ, PDB पथ)
  • एक्सओआर संशोधक या कूटबद्ध पैटर्न से हल्के कोड-छिपाव को निष्प्रभावी करें
  • जब स्ट्रिंग छिपी हों, तब कोड के बाइट पैटर्न (डिक्रिप्शन/अनपैकिंग स्टब) से मिलान करें
  • अस्थिर बाइट को वाइल्डकार्ड करें, ऑपकोड स्थिर रखें और बदलती लंबाई के लिए जंप का उपयोग करें
  • संरचनात्मक संकेतों के रूप में PE imphash, अनुभाग, imports और entropy का उपयोग करें
  • गलत-सकारात्मक परिणामों और बच निकलने का प्रतिरोध करने के लिए कई संकेतकों को मिलाएँ
  • लागू करने से पहले हमेशा परिवार और सुरक्षित सॉफ़्टवेयर के संग्रह पर परीक्षण करें

अगला: पूरे आईटी परिवेश में इन नियमों को चलाना।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Cyber Security Academy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
303

अक्सर पूछे जाने वाले प्रश्न

क्या “स्ट्रिंग और हेक्स से हंटिंग” पाठ निःशुल्क है?

हाँ — Cyber Security Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “स्ट्रिंग और हेक्स से हंटिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Cyber Security Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“स्ट्रिंग और हेक्स से हंटिंग” में मैं क्या सीखूँगा?

मैलवेयर के अवशेषों का मिलान करना। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cyber Security Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Cyber Security Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cyber Security Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“स्ट्रिंग और हेक्स से हंटिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Cyber Security Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Cyber Security Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. YARA का उपयोग किसलिए होता है
  2. YARA नियमों का वाक्य-विन्यास
  3. स्ट्रिंग और हेक्स से हंटिंग
  4. स्कैन को विस्तृत और स्वचालित करना
← Cyber Security Academy पर वापस जाएँ