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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
tenet — रिवर्स इंजीनियर्स के लिए एक Trace Explorer | Kitploit
उपकरण/GitHubGitHub/gaasedelen/tenet
गतिशील विश्लेषण (सैंडबॉक्सिंग)रिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषण
GitHubgaasedelen/tenet

tenet

रिवर्स इंजीनियर्स के लिए एक Trace Explorer

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

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

सभी देखें →

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

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

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

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

टेनेट - रिवर्स इंजीनियर्स के लिए एक ट्रेस एक्सप्लोरर

टेनेट ट्रेस एक्सप्लोरर

अवलोकन

टेनेट एक आईडीए प्रो प्लगइन है जो निष्पादन ट्रेस की खोज के लिए है। इस प्लगइन का उद्देश्य किसी दिए गए बाइनरी के विरुद्ध निष्पादन ट्रेस को नेविगेट करने के लिए अधिक प्राकृतिक, मानवीय नियंत्रण प्रदान करना है। इस कार्य का आधार सॉफ्टवेयर में जटिल निष्पादन पैटर्न की जांच और सारांशित करने के लिए नए या अभिनव तरीकों पर शोध करने की इच्छा से उपजा है।

इस परियोजना के बारे में अधिक संदर्भ के लिए, कृपया इसके प्रारंभिक रिलीज़ के बारे में ब्लॉगपोस्ट पढ़ें।

प्रेरणा के लिए क्यूआईआरए / geohot एट अल. को विशेष धन्यवाद।

रिलीज़

  • v0.2 -- इमेजबेस डिटेक्शन, सेल विज़ुअलाइज़ेशन, ब्रेकपॉइंट रीफ़ैक्टर, बगफिक्स।
  • v0.1 -- प्रारंभिक रिलीज़

स्थापना

टेनेट एक क्रॉस-प्लेटफ़ॉर्म (विंडोज़, मैकओएस, लिनक्स) पायथन 3 प्लगइन है। यह कोई तृतीय-पक्ष निर्भरता नहीं लेता है, जो कोड को पोर्टेबल और स्थापित करने में आसान बनाता है।

  1. अपने डिस्सेम्बलर के पायथन कंसोल से, इसका प्लगइन डायरेक्टरी खोजने के लिए निम्नलिखित कमांड चलाएं:

    • आईडीए प्रो: import idaapi, os; os.path.join(idaapi.get_user_idadir(), "plugins")
  2. इस रिपॉजिटरी के /plugins/ फ़ोल्डर की सामग्री को सूचीबद्ध निर्देशिका में कॉपी करें।

  3. अपने डिस्सेम्बलर को पुनः आरंभ करें।

यह प्लगइन केवल आईडीए 7.5 और नए के लिए समर्थित है।

उपयोग

एक बार ठीक से स्थापित होने पर, डिस्सेम्बलर में एक नया मेनू एंट्री उपलब्ध होगा। इसका उपयोग बाहरी रूप से एकत्रित निष्पादन ट्रेस को टेनेट में लोड करने के लिए किया जा सकता है।

टेनेट ट्रेस लोड करें

चूंकि यह प्रारंभिक रिलीज़ है, टेनेट केवल सरल मानव-पठनीय टेक्स्ट ट्रेस स्वीकार करता है। कृपया ट्रेस प्रारूप, सीमाओं और संदर्भ ट्रेसर्स के बारे में अतिरिक्त जानकारी के लिए इस रिपॉजिटरी में ट्रेसिंग रीडमी देखें।

द्विदिश अन्वेषण

टेनेट का उपयोग करते समय, प्लगइन सक्रिय निष्पादन ट्रेस में आपकी वर्तमान स्थिति से आगे (नीला) और पीछे (लाल) निष्पादन प्रवाह को इंगित करने के लिए 'ट्रेल्स' पेंट करेगा।

टेनेट ट्रेल्स

समय के माध्यम से आगे या पीछे कदम बढ़ाने के लिए, आप डिस्सेम्बलर के दाईं ओर टाइमलाइन पर होवर करते हुए स्क्रॉल करते हैं। फ़ंक्शन कॉल पर स्टेप ओवर करने के लिए, स्क्रॉल करते समय SHIFT दबाए रखें।

ट्रेस टाइमलाइन

ट्रेस टाइमलाइन डिस्सेम्बलर के दाईं ओर डॉक की जाएगी। इस विजेट का उपयोग ट्रेस टाइमलाइन पर विभिन्न प्रकार की घटनाओं को विज़ुअलाइज़ करने और ऊपर वर्णित के रूप में बुनियादी नेविगेशन करने के लिए किया जाता है।

ट्रेस टाइमलाइन पर ज़ूम इन करना

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

निष्पादन ब्रेकपॉइंट

रजिस्टर विंडो में इंस्ट्रक्शन पॉइंटर पर डबल-क्लिक करने से यह लाल रंग में हाइलाइट हो जाएगा, जो निष्पादन ट्रेस टाइमलाइन पर सभी स्थानों को प्रकट करेगा जहां इंस्ट्रक्शन निष्पादित किया गया था।

वर्तमान इंस्ट्रक्शन पर ब्रेकपॉइंट लगाना

निष्पादनों के बीच कूदने के लिए, हाइलाइट किए गए इंस्ट्रक्शन पॉइंटर पर होवर करते हुए ऊपर या नीचे स्क्रॉल करें।

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

एक इंस्ट्रक्शन के पहले निष्पादन की तलाश

आईडीए के मूल F2 हॉटकी का उपयोग मनमाने इंस्ट्रक्शन पर ब्रेकपॉइंट सेट करने के लिए भी किया जा सकता है।

मेमोरी ब्रेकपॉइंट

स्टैक या मेमोरी दृश्यों में एक बाइट पर डबल-क्लिक करके, आप तुरंत उस पते पर सभी रीड/राइट को ट्रेस टाइमलाइन पर विज़ुअलाइज़ देखेंगे। पीला मेमोरी रीड को इंगित करता है, नीला मेमोरी राइट को इंगित करता है।

मेमोरी ब्रेकपॉइंट का उपयोग करके मेमोरी एक्सेस की खोज

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

रुचि की एक बाइट पर राइट-क्लिक करना आपको मेमोरी रीड/राइट/एक्सेस के बीच तलाश करने के विकल्प देगा यदि आपके मन में कोई विशिष्ट नेविगेशन क्रिया है।

मेमोरी तलाश

मेमोरी दृश्य को एक मनमाने पते पर नेविगेट करने के लिए, मेमोरी दृश्य पर क्लिक करें और दृश्य को तलाशने के लिए G दबाकर एक पता या डेटाबेस प्रतीक दर्ज करें।

क्षेत्र ब्रेकपॉइंट

मेमोरी के एक ब्लॉक को हाइलाइट करके और एक एक्सेस ब्रेकपॉइंट सेट करने के लिए उस पर डबल-क्लिक करके मेमोरी के एक क्षेत्र में मेमोरी ब्रेकपॉइंट सेट करना संभव है।

मेमोरी क्षेत्र एक्सेस ब्रेकपॉइंट

सामान्य मेमोरी ब्रेकपॉइंट की तरह, क्षेत्र पर होवर करना और स्क्रॉल करना चयनित मेमोरी क्षेत्र के एक्सेस के बीच नेविगेट करने के लिए उपयोग किया जा सकता है।

रजिस्टर तलाश

रिवर्स इंजीनियरिंग में, उन स्थितियों का सामना करना काफी आम है जहां आप खुद से पूछते हैं "किस इंस्ट्रक्शन ने इस रजिस्टर को इसके वर्तमान मान पर सेट किया?"

टेनेट का उपयोग करके, आप एक ही क्लिक में उस इंस्ट्रक्शन पर पीछे की ओर तलाश कर सकते हैं।

पिछले रजिस्टर राइट की तलाश

पीछे की ओर तलाश करना रजिस्टर परिवर्तनों को नेविगेट करने की अब तक की सबसे सामान्य दिशा है... लेकिन चपलता के लिए आप रजिस्टर के दाईं ओर नीले तीर का उपयोग करके अगले रजिस्टर असाइनमेंट की ओर आगे भी तलाश कर सकते हैं।

टाइमस्टैम्प शेल

ट्रेस में विशिष्ट टाइमस्टैम्प पर नेविगेट करने के लिए एक सरल 'शेल' प्रदान किया गया है। टाइमस्टैम्प को कॉमा के साथ या बिना कॉमा के शेल में पेस्ट (या टाइप...) करना पर्याप्त होगा।

टाइमस्टैम्प शेल का उपयोग करके ट्रेस के आसपास तलाश

विस्मयादिबोधक बिंदु का उपयोग करके, आप ट्रेस में एक निर्दिष्ट 'प्रतिशत' भी तलाश सकते हैं। !100 दर्ज करने से ट्रेस में अंतिम इंस्ट्रक्शन पर तलाश होगी, जबकि !50 लगभग ट्रेस के 50% रास्ते पर तलाश करेगा। !last डिस्सेम्बलर में देखे जा सकने वाले अंतिम नेविगेट करने योग्य इंस्ट्रक्शन पर तलाश करेगा।

थीम

टेनेट दो डिफ़ॉल्ट थीम के साथ आता है - एक 'लाइट' थीम, और एक 'डार्क' थीम। आपके डिस्सेम्बलर द्वारा वर्तमान में उपयोग किए जाने वाले रंगों के आधार पर, टेनेट उस थीम का चयन करने का प्रयास करेगा जो सबसे उपयुक्त लगती है।

टेनेट थीम

थीम फ़ाइलें डिस्क पर सरल JSON के रूप में संग्रहीत होती हैं और अत्यधिक कॉन्फ़िगर करने योग्य होती हैं। यदि आप डिफ़ॉल्ट थीम या रंगों से खुश नहीं हैं, तो आप अपनी स्वयं की थीम बना सकते हैं और उन्हें उपयोगकर्ता थीम निर्देशिका में ड्रॉप कर सकते हैं।

टेनेट भविष्य के लोड और उपयोग के लिए आपकी थीम प्राथमिकता को याद रखेगा।

सामान्य प्रश्न

प्रश्न: मैं टेनेट का उपयोग करके एक निष्पादन ट्रेस कैसे रिकॉर्ड करूं?

  • उत्तर: टेनेट एक ट्रेस रीडर है, ट्रेस रिकॉर्डर नहीं। संगत निष्पादन ट्रेस उत्पन्न करने के लिए आपको डायनामिक बाइनरी इंस्ट्रुमेंटेशन फ्रेमवर्क (या अन्य संबंधित तकनीकों) का उपयोग करना होगा। कृपया मौजूदा ट्रेसर्स या अपना खुद का कार्यान्वयन करने के तरीके के बारे में अधिक जानकारी के लिए ट्रेसिंग रीडमी देखें।

प्रश्न: टेनेट किस ट्रेस आर्किटेक्चर को लोड करने का समर्थन करता है?

  • उत्तर: केवल x86 और AMD64, लेकिन कोडबेस लगभग पूरी तरह से आर्किटेक्चर अज्ञेय है।

प्रश्न: टेनेट कितनी बड़ी ट्रेस फ़ाइल लोड/नेविगेट कर सकता है?

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

प्रश्न: मैंने एक निष्पादन ट्रेस लोड किया, अब एक '.tt' फ़ाइल है। यह क्या है?

  • उत्तर: जब टेनेट किसी दिए गए टेक्स्ट ट्रेस को लोड करता है, तो वह ट्रेस को पार्स, इंडेक्स और संपीड़ित करके अधिक कुशल प्रारूप में बदल देता है। बाद के लोड पर, टेनेट '.tt' फ़ाइल को लोड करने का प्रयास करेगा जो मूल टेक्स्ट ट्रेस को लोड करने में लगने वाले समय के एक अंश में लोड होनी चाहिए।

प्रश्न: प्लगइन क्रैश हो गया / एक त्रुटि फेंकी / खराब ट्रेस जानकारी दिखा रहा है, मुझे क्या करना चाहिए?

  • उत्तर: यदि आपको कोई ऐसी समस्या या अशुद्धि मिलती है जिसे पुन: प्रस्तुत किया जा सकता है, तो कृपया इस रिपॉजिटरी के विरुद्ध एक मुद्दा दर्ज करें और एक नमूना ट्रेस + निष्पादन योग्य अपलोड करें।

प्रश्न: मेरे ट्रेस में मेमोरी बदल रही है, लेकिन क्षेत्र पर कोई राइट नहीं है। क्या यह एक बग है!?

  • उत्तर: हो सकता है कि आपकी लॉग फ़ाइल ने सभी मेमोरी राइट को कैप्चर नहीं किया हो। उदाहरण के लिए, यूज़रमोड डीबीआई को आम तौर पर प्रक्रिया मेमोरी पर बाहरी राइट के लिए मेमोरी कॉलबैक नहीं मिलता है। यह फ़ाइल से पढ़ते समय, या सॉकेट से पढ़ते समय सबसे आम है - यह कर्नेल है जो आपके निर्दिष्ट यूज़रमोड बफर में मेमोरी लिखता है, जिससे पारंपरिक इंस्ट्रुमेंटेशन के लिए घटना अदृश्य हो जाती है।
    • माइक्रोसॉफ्ट टीटीडी आम तौर पर समान व्यवहार प्रदर्शित करता है, सिस्कॉल को मॉडल किए बिना इसे हल करना मुश्किल है।

प्रश्न: क्या इसे बाइनरी निंजा / घिड्रा / ... पर पोर्ट किया जाएगा?

  • उत्तर: संभवतः, लेकिन जल्द ही नहीं (जब तक कि महत्वपूर्ण प्रोत्साहन न हो)। एक अनुसंधान-उन्मुख परियोजना के रूप में, प्रेरक प्रेरणा प्रोग्राम निष्पादन को व्यवस्थित और अन्वेषण करने के लिए नवीन रणनीतियों को विकसित करने पर है - उन्हें पोर्ट करने पर नहीं।

प्रश्न: मेरा संगठन इस परियोजना का समर्थन करना चाहेगा, हम कैसे मदद कर सकते हैं?

  • उत्तर: फंडिंग के बिना, मैं इस परियोजना के लिए जो समय समर्पित कर सकता हूं वह सीमित है। यदि आपका संगठन यहां प्रस्तुत विचारों से उत्साहित है और समर्पित आर एंड डी को प्रायोजित करने के लिए पूंजी प्रदान करने में सक्षम है, तो कृपया हमसे संपर्क करें।

भविष्य का कार्य

समय और प्रेरणा फंडिंग की अनुमति मिलने पर, भविष्य के कार्य में शामिल हो सकते हैं:

  • ट्रेस से लाइब्रेरी कॉल को फ़िल्टर करना / जमाना
  • रजिस्टर / स्टैक दृश्यों के लिए पॉइंटर विश्लेषण (जैसे एनोटेशन)
  • मूल ट्रेसफाइल और ट्रेसरीडर कार्यान्वयन (जैसे बड़े और तेज़ ट्रेस)
  • नेविगेशन इतिहास + बुकमार्क दृश्य (शायद 2-इन-1?)
  • समृद्ध ट्रेस सूचना विज्ञान, प्रासंगिक घटनाओं का अधिक आक्रामक अनुक्रमण (जैसे फ़ंक्शन कॉल)
  • ट्रेस कार्टोग्राफी, ट्रेस भूगोल का बेहतर सारांश और प्रतिनिधित्व
  • 'सीपीयू आर्किटेक्चर' चयन/डिटेक्शन को थोड़ा कम हार्डकोडेड बनाएं
  • अधिक आउट-ऑफ-द-बॉक्स ट्रेसिंग ब्रिज, डायनामोरियो, टीटीडी, आरआर, क्यूईएमयू, बॉक्स, ...
  • हेक्स-रेज़ / डीकंपाइल्ड दृश्यों के लिए समर्थन (बुनियादी दृश्य सिंक के अलावा)
  • स्वचालित रूप से ट्रेस लोड करने या पुनरावृति करने के लिए बेहतर वर्कफ़्लो
  • अंतर विश्लेषण, उच्च स्तरीय 'ट्रेस डिफिंग'
  • थ्रेड्स, क्वांटम की बेहतर नेविगेशन और विवरण
  • 'मल्टी मॉड्यूल' ट्रेस (जैसे पूर्ण सिस्टम ट्रेस) को नेविगेट करने के लिए बेहतर समर्थन
  • बाइनरी निंजा समर्थन
  • ... ?

मैं बाहरी योगदान, मुद्दों और सुविधा अनुरोधों का स्वागत करता हूं। कृपया यदि आप चाहते हैं कि उन्हें भविष्य की रिलीज़ के लिए विचार किया जाए, तो इस रिपॉजिटरी की develop शाखा में कोई भी पुल अनुरोध करें।

लेखक

  • मार्कस गासेदेलेन (@gaasedelen)
टूल डाउनलोड करें