Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
yara-ttd — Time Travel Debugging ट्रेसेस पर YARA नियमों का उपयोग करें | Kitploit
उपकरण/GitHubGitHub/airbus-cert/yara-ttd
गतिशील विश्लेषण (सैंडबॉक्सिंग)मेमोरी फोरेंसिकरिवर्स इंजीनियरिंगशेलकोडमालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubairbus-cert/yara-ttd

yara-ttd

Time Travel Debugging ट्रेसेस पर YARA नियमों का उपयोग करें

रिपॉजिटरी देखें
97133 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

yara-ttd - पैकरों का परम शत्रु

Time Travel Debugging ट्रेस पर YARA नियमों का उपयोग करें

  1. डेमो
  2. प्रेरणाएँ
  3. इंस्टॉल
  4. उपयोग
  5. आगामी सुविधाएँ

डेमो

UPX से पैक किया गया एक बाइनरी

एक सरल बाइनरी जो calc.exe लॉन्च करती है, UPX से पैक की गई है। yara-ttd को थ्रेड निर्माण के दौरान मॉड्यूल मेमोरी में calc.exe स्ट्रिंग मिलती है।

Upx डेमो

एक सरल अस्पष्टीकृत (obfuscated) शेलकोड जो calc.exe चलाता है

परीक्षित बाइनरी एक शेलकोड को डिक्रिप्ट करती है, और उसे एक नए थ्रेड में चलाती है। yara-ttd ntdll!NtCreateThreadEx फ़ंक्शन पर हुक करते समय हीप पर calc.exe स्ट्रिंग खोजने में सफल हो जाता है।

Shellcode डेमो

प्रेरणाएँ

YARA

YARA बाइनरी के लिए एक शक्तिशाली पैटर्न मिलान उपकरण है।

YARA एक उपकरण है जिसका उद्देश्य (केवल इन्हीं तक सीमित नहीं) मैलवेयर शोधकर्ताओं को मैलवेयर नमूनों की पहचान और वर्गीकरण में मदद करना है। YARA के साथ आप पाठ्य या बाइनरी पैटर्न के आधार पर मैलवेयर परिवारों (या जो भी आप वर्णित करना चाहें) का विवरण बना सकते हैं।

-- YARA दस्तावेज़

YARA की बदौलत, हम विश्लेषण करने से पहले पाइपलाइन में मैलवेयर नमूनों को स्वचालित रूप से वर्गीकृत करके बहुत समय बचा सकते हैं।

पैकर

दुर्भाग्य से, अधिकांश मैलवेयर नमूने विभिन्न प्रकार के पैकर से सुरक्षित होते हैं। UPX या VMProtect जैसी शास्त्रीय रनटाइम-पैकर योजना में स्व-निष्कर्षण और अस्पष्टीकृत तथा कभी-कभी एन्क्रिप्टेड कोड चलाना शामिल होता है। इसलिए, YARA पैक किए गए बाइनरी से नहीं निपट सकता क्योंकि उसे पैक किए गए कोड में कोई मेल नहीं मिलेगा।

टाइम ट्रैवल डिबगिंग

टाइम ट्रैवल डिबगिंग - या TTD - नेटिव Windows डिबगर WinDbg की एक विशेषता है।

टाइम ट्रैवल डिबगिंग एक उपकरण है जो आपको अपनी प्रक्रिया के निष्पादित होते समय उसका ट्रेस कैप्चर करने और बाद में उसे आगे और पीछे दोनों दिशाओं में रीप्ले करने की अनुमति देता है। टाइम ट्रैवल डिबगिंग (TTD) आपके डिबगर सत्र को "रीवाइंड" करने की सुविधा देकर समस्याओं को अधिक आसानी से डीबग करने में मदद कर सकता है, बजाय इसके कि बग मिलने तक समस्या को दोबारा उत्पन्न करना पड़े।

-- Microsoft दस्तावेज़

मैलवेयर विश्लेषण के लिए, TTD एक शक्तिशाली उपकरण है क्योंकि यह सैंडबॉक्स में मैलवेयर का ट्रेस रिकॉर्ड करने की अनुमति देता है। इसलिए, हम मैलवेयर का विश्लेषण करने के लिए रिकॉर्ड की गई फ़ाइल को सैंडबॉक्स के बाहर सुरक्षित रूप से रीप्ले और साझा कर सकते हैं। साथ ही, TTD एक डिबगर नहीं है, इसलिए यह PEB.BeingDebugged जैसी शास्त्रीय एंटी-डिबगिंग तकनीकों से पहचाना नहीं जाएगा। सुरक्षा दृष्टिकोण से TTD के गहन विश्लेषण के लिए, यह लेख देखें: TTD पारिस्थितिकी तंत्र में गहराई से गोता

बेशक, TTD एक मालिकाना सॉफ़्टवेयर है, और यह कार्य commial द्वारा विकसित ttd-bindings के बिना संभव नहीं होता।

yara-ttd

yara-ttd के पीछे का विचार TTD द्वारा रिकॉर्ड किए गए ट्रेस फ़ाइलों का उपयोग yara के साथ करके पैकरों को परास्त करना है।

चूँकि yara स्वयं पैक किए गए बाइनरी को स्कैन नहीं कर सकता, yara-ttd ट्रेस फ़ाइल का विश्लेषण करने का एक तरीका प्रदान करता है जिसमें अनपैकिंग प्रक्रिया सहित सभी रनटाइम जानकारी होती है।

yara-ttd के साथ, आप ट्रेस फ़ाइल में स्थितियों का एक समूह चुन सकते हैं जहाँ आप अपने yara नियमों से मेमोरी को स्कैन करना चाहते हैं। इस प्रकार, आप पैक किए गए बाइनरी को अपने yara नियमों से जहाँ चाहें वहाँ हुक कर सकते हैं!

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

इंस्टॉल

अभी के लिए, yara-ttd केवल Windows का समर्थन करता है, क्योंकि इसे TTD API के साथ इंटरैक्ट करने की आवश्यकता होती है।

पहले प्रोजेक्ट बनाएँ:

root@kitploit:~
mkdir build
cd build
cmake ..
cmake --build .

फिर, TTDReplay.dll और TTDReplayCPU.dll फ़ाइलों को एक्ज़ीक्यूटेबल के समान निर्देशिका में जोड़ें। आपको ये DLL फ़ाइलें %LocalAppData%\Microsoft\WindowsApps\Microsoft.WinDbg_X\TTD में मिलेंगी।

उपयोग

पहले आपको अपने प्रोग्राम का एक ट्रेस (.run फ़ाइल) रिकॉर्ड करना होगा। TTD ट्रेस रिकॉर्ड करने के तरीके के बारे में विस्तृत सहायता के लिए, यह ट्यूटोरियल देखें।

फिर बस चलाएँ:

root@kitploit:~
.\yara-ttd path\to\rule path\to\trace\file

मेमोरी मोड

मेमोरी स्कैन करने के तीन मोड हैं:

  • मोड 0 (डिफ़ॉल्ट): लोडेड मॉड्यूल मेमोरी
  • मोड 1: वर्चुअल आवंटित मेमोरी + लोडेड मॉड्यूल मेमोरी
  • मोड 2: पूर्ण मेमोरी (बहुत लंबा हो सकता है)

आप -m के साथ मोड चुन सकते हैं:

root@kitploit:~
.\yara-ttd -m 1 path\to\rule path\to\trace\file

आधिकारिक yara CLI की तरह, आप मैचों के विवरण, जैसे मेमोरी पता और मेल खाने वाला सटीक सबरूल, प्रिंट करने के लिए -s फ़्लैग का उपयोग कर सकते हैं।

वर्चुअल आवंटित मोड पर नोट्स:

चूँकि TTD मेमोरी संरचना को संग्रहीत नहीं करता, yara-ttd स्कैन से पहले प्रत्येक समय स्थिति के लिए हीप पतों की संरचना की गणना करता है। यह हीप संरचना को संग्रहीत करने के लिए ट्रेस फ़ाइल के समान पथ में .tmp एक्सटेंशन के साथ एक कैश फ़ाइल बनाएगा। यदि आप किसी ट्रेस पर yara-ttd दोबारा चलाना चाहते हैं और उत्पन्न कैश फ़ाइल से हीप संरचना लोड करना चाहते हैं, तो आप बस ऐसा कर सकते हैं:

root@kitploit:~
.\yara-ttd -m 1 --cache=path\to\cache\file path\to\rule path\to\trace\file
पूर्ण मेमोरी मोड पर नोट:

हम TTD के साथ किसी प्रक्रिया की पूर्ण मेमोरी रेंज का उपयोग कर सकते हैं, जो GetSystemInfo द्वारा लौटाए गए न्यूनतम और अधिकतम पते के अनुरूप होती है। फिर भी, अधिकांश समय, यह रेंज बिना किसी अनुकूलन के स्कैन करने के लिए बहुत बड़ी होती है।

टाइम मोड

जिन डिफ़ॉल्ट समय स्थितियों को स्कैन किया जाएगा वे हैं:

  • अपवाद (exception) घटनाएँ
  • मॉड्यूल लोड घटनाएँ
  • थ्रेड निर्मित घटनाएँ

-t और -f फ़्लैग के साथ, आप स्कैन करने के लिए अन्य स्थितियों या फ़ंक्शन कॉल का चयन कर सकते हैं:

root@kitploit:~
.\yara-ttd -m 1 -t 3C1:A -t 5FF:22 -f ntdll!FreeVirtualMemory -f ntdll!NtCreateThreadEx path\to\rule path\to\trace\file

-t फ़्लैग TTD स्थितियों को major:minor रूप में अपेक्षित करता है (दोनों हेक्साडेसिमल में, बिना 0x)। -f फ़्लैग module_name!function_name रूप में एक स्ट्रिंग की अपेक्षा करता है।

आप उन सभी फ़ंक्शनों को एक फ़ाइल में भी जोड़ सकते हैं जिन्हें आप हुक करना चाहते हैं:

root@kitploit:~
> cat .\functions.txt
ntdll!FreeVirtualMemory
ntdll!NtCreateThreadEx

> .\yara-ttd -m 1 -F functions.txt path\to\rule path\to\trace\file

एकाधिक ट्रेस फ़ाइलों को स्कैन करना

यदि आपके पास yara-ttd के साथ स्कैन करने के लिए कई फ़ाइलें हैं, तो आप पूरी निर्देशिका भी स्कैन कर सकते हैं। yara-ttd फ़ोल्डर में निम्नलिखित सभी एक्सटेंशन को अनदेखा करेगा:

  • .tmp (yara-ttd द्वारा उत्पन्न कैश फ़ाइलें)
  • .idx (ttd द्वारा उत्पन्न इंडेक्स फ़ाइलें)
  • .err (ttd द्वारा उत्पन्न त्रुटि फ़ाइलें)
  • .out (ttd द्वारा उत्पन्न लॉग फ़ाइलें)

निम्नलिखित उदाहरण में, yara-ttd केवल trace01.run और trace02.run फ़ाइलों को स्कैन करेगा।

root@kitploit:~
> dir .\traces
trace01.run
trace01.out
trace01.idx
trace02.run
trace01.run.err
trace01.tmp

> .\yara-ttd path\to\rule .\traces

वैकल्पिक रूप से, आप उन सभी ट्रेसों को एक फ़ाइल में निर्दिष्ट कर सकते हैं जिन्हें आप स्कैन करना चाहते हैं और --scan-list या -l फ़्लैग का उपयोग कर सकते हैं। यह सूचीबद्ध फ़ाइलों को स्कैन करेगा, प्रत्येक पंक्ति में एक:

root@kitploit:~
> cat .\scan_me.txt
.\traces\trace01.run
.\traces\trace02.run

> .\yara-ttd -l path\to\rule .\scan_me.txt

एकाधिक फ़ाइलों को स्कैन करते समय, yara-ttd स्कैन एक के बाद एक चलाता है, न कि मूल yara cli की तरह थ्रेडिंग के साथ एक साथ।

आगामी सुविधाएँ

  • Python बाइंडिंग्स के साथ libyarattd
  • ttddbg और IDA के साथ लिंक: एक सुविधा जो स्कैन के अंत में IDA को समय और मेमोरी में मैच की स्थिति पर लोड करती है
  • TTD: प्रक्रिया फोर्क करते समय चाइल्ड का अनुसरण करें
टूल डाउनलोड करें