Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
obfuscation_analysis — बाइनरी निंजा प्लगइन ऑब्फस्केटेड कोड का विश्लेषण और सरलीकरण करने के लिए | Kitploit
उपकरण/GitHubGitHub/mrphrazer/obfuscation_analysis
स्थैतिक विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगमालवेयर विश्लेषणउपयोगिताएँ और फ्रेमवर्कबाइनरी विश्लेषण
GitHubmrphrazer/obfuscation_analysis

obfuscation_analysis

बाइनरी निंजा प्लगइन ऑब्फस्केटेड कोड का विश्लेषण और सरलीकरण करने के लिए

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

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

सभी देखें →

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

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

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

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

ऑब्फस्केशन विश्लेषण (v1.3)

लेखक: Tim Blazytko और Nicolò Altamura

ऑब्फस्केटेड कोड का विश्लेषण और सरलीकरण करें

विवरण:

ऑब्फस्केशन विश्लेषण एक Binary Ninja प्लगइन है जो भारी सुरक्षित बाइनरीज़ के साथ काम करने की कठिनाई को दूर करता है। यह कुछ केंद्रित सहायक उपकरणों को एक साथ लाता है जो आपको निम्नलिखित की अनुमति देते हैं

  • एक क्लिक में मिक्स्ड-बूलियन अरिथमेटिक (MBA) अभिव्यक्तियों को सरल बनाएं (msynth पर आधारित)
  • टूटे हुए डिसअसेम्बली वाले फ़ंक्शनों का पता लगाएं और उन्हें साफ़ करें

कुछ उदाहरण उपयोग के मामले examples में पाए जा सकते हैं। इसके अलावा, REcon वार्ता "Breaking Mixed Boolean-Arithmetic Obfuscation in Real-World Applications" कुछ उपयोग के मामलों को प्रदर्शित करती है। स्लाइड्स यहाँ पाई जा सकती हैं। यह प्लगइन Obfuscation Detection का पूरक है: एक बार संदिग्ध फ़ंक्शनों को चिह्नित करने के बाद, Obfuscation Analysis उन्हें साफ़ करने और समझने में आपकी सहायता करता है। समय के साथ और अधिक सहायक उपकरण जोड़े जाएंगे।

मुख्य विशेषताएँ

  • Binary Ninja के डीकंपाइलर व्यू में मिक्स्ड-बूलियन अरिथमेटिक ऑब्फस्केशन को सरल बनाएं
  • टूटे हुए डिसअसेम्बली वाले फ़ंक्शनों की पहचान करें और उन्हें हटाएं
  • डीकंपाइलर व्यू में फ़ंक्शनों को इनलाइन करें
  • कुशल और आर्किटेक्चर-अज्ञेय कार्यान्वयन
  • बैकग्राउंड टास्क के रूप में चलता है
  • सावधान त्रुटि प्रबंधन: संक्षिप्त उपयोगकर्ता संदेश, Debug लॉग में पूरा ट्रेस

इंस्टॉलेशन

यह टूल Binary Ninja के प्लगइन मैनेजर का उपयोग करके इंस्टॉल किया जा सकता है।

मैन्युअल इंस्टॉलेशन के लिए, Binary Ninja के प्लगइन फ़ोल्डर में इन चरणों का पालन करें:

root@kitploit:~
git clone https://github.com/mrphrazer/obfuscation_analysis.git
cd obfuscation_analysis

# optionally: use a virtual environment
python -m venv obfana-env
source obfana-env/bin/activate

# install requirements
pip install -r requirements.txt

यदि आप वर्चुअल एनवायरनमेंट का उपयोग करते हैं, तो आपको Binary Ninja की सेटिंग्स में site-packages पथ मैन्युअल रूप से सेट करना होगा।

उपयोग

यह प्लगइन Binary Ninja के टॉप-बार मेनू में Plugins -> Obfuscation Analysis के अंतर्गत उपलब्ध है।

Plugin Menu

MBA सरलीकरण

अरिथमेटिक ऑब्फस्केशन को सरल बनाने के लिए, पहले डीकंपाइलर व्यू में उस HLIL अभिव्यक्ति को हाइलाइट करें जिसे आप सरल बनाना चाहते हैं। इसके बाद, Plugins -> Obfuscation Analysis -> MBA Simplification -> Slice & Simplify चुनें। प्लगइन पूरी गणना को हल करता है, इसे msynth के माध्यम से चलाता है, और सरलीकृत परिणाम को उसी पंक्ति पर एक टिप्पणी के रूप में सम्मिलित करता है। नीचे दिया गया संक्षिप्त एनिमेशन पूरे वर्कफ़्लो को दर्शाता है:

MBA Simplification Workflow

MBA सरलीकरण msynth पर निर्भर करता है। डिफ़ॉल्ट रूप से, प्लगइन msynth’s default simplification oracle का उपयोग करता है, जो प्लगइन के साथ आता है और पूर्व-कॉन्फ़िगर किया गया है। यदि आप एक बड़े या कस्टम oracle का उपयोग करना चाहते हैं, तो obfuscation_analysis.mba_oracle_path को मैन्युअल रूप से सेट करें या Binary Ninja की Settings विंडो में फ़ाइल तक ब्राउज़ करें।

Plugin Settings

यदि कुछ गलत होता है तो प्लगइन Log पैन में एक संक्षिप्त उपयोगकर्ता-स्तरीय संदेश लिखता है; पूरा ट्रेसबैक देखने के लिए लॉग व्यू को Debug पर स्विच करें।

Log Output

विशेषताएँ

यह प्लगइन केंद्रित सहायक उपकरणों के साथ आता है जो सुरक्षित बाइनरीज़ को रिवर्स करते समय आने वाली सामान्य बाधाओं को लक्षित करते हैं, प्रत्येक को UI या हेड-लेस स्क्रिप्ट से बैकग्राउंड टास्क के रूप में चलाया जा सकता है। नीचे वर्तमान में उपलब्ध विशेषताएँ दी गई हैं।

करप्टेड फ़ंक्शन

करप्टेड फ़ंक्शन वे फ़ंक्शन हैं जिनकी डिसअसेम्बली अपरिभाषित कलाकृतियाँ दिखाती है—खाली बेसिक ब्लॉक, अमान्य या ओवरलैपिंग निर्देश, और इसी तरह के। यह सहायक पूरे BinaryView को ट्रैवर्स करता है, उन लक्षणों वाले फ़ंक्शनों को चिह्नित करता है, और उन्हें सूचीबद्ध करता है ताकि विश्लेषक उस कोड का शीघ्रता से निरीक्षण कर सके जिसे गलत तरीके से पार्स किया गया था या जानबूझकर ऑब्फस्केट किया गया था। एक वैकल्पिक remove क्रिया प्रत्येक चिह्नित फ़ंक्शन को मिटा देती है और नए सिरे से विश्लेषण को बाध्य करती है, फ़ंक्शन सूची को साफ़ करती है। यह विशेष रूप से निम्नलिखित का पता लगाने के लिए उपयोगी है

  • डेटा ब्लॉब्स जिन्हें डिसअसेम्बलर ने गलती से कोड के रूप में प्रचारित किया
  • ऑब्फस्केशन स्टब्स जो स्ट्रेट-लाइन डिसअसेम्बली को तोड़ते हैं
  • ओवरलैपिंग निर्देशों या मिस-अलाइन्ड जंप्स का उपयोग करने वाले फ़ंक्शन
  • नई आर्किटेक्चर के साथ समस्याएँ जहाँ असामान्य निर्देशों का सामना होता है

MBA सरलीकरण

मिक्स्ड-बूलियन अरिथमेटिक (MBA) एक ऑब्फस्केशन तकनीक है जो सरल गणनाओं को अरिथमेटिक और बूलियन ऑपरेशनों की लंबी श्रृंखलाओं में छिपा देती है। यह सुविधा डीकंपाइलर में ऐसी अभिव्यक्तियों को सरल बनाती है। जब आप एक HLIL निर्देश चुनते हैं, तो प्लगइन वर्तमान बेसिक ब्लॉक तक सीमित SSA बैकवर्ड स्लाइस के साथ उसकी पूरी गणना श्रृंखला एकत्र करता है, उस स्लाइस को Miasm IR में अनुवादित करता है, इसे msynth में फीड करता है, और अंत में सरलीकृत परिणाम को डीकंपाइलर व्यू में एक टिप्पणी के रूप में जोड़ता है। यह सुविधा आपको निम्नलिखित की अनुमति देती है

  • मल्टी-लाइन MBA उलझनों को एक पठनीय समीकरण में संकुचित करें
  • उन अपारदर्शी प्रेडिकेट्स को हल करें जो MBA पर निर्भर करते हैं
  • जटिल स्थिरांक एन्कोडिंग को उनके शाब्दिक मान तक मोड़ें

फ़ंक्शन इनलाइनिंग

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

  • छोटे रैपर्स, थंक्स, या एक्सेसर हेल्पर्स की श्रृंखलाओं को संकुचित करें
  • उन एल्गोरिदम प्रतिनिधित्वों को बेहतर बनाएं जो कई फ़ंक्शनों में विभाजित हैं
  • उन ऑब्फस्केशन योजनाओं का विश्लेषण करें जहाँ तर्क जानबूझकर फ़ंक्शनों के बीच बिखरा हुआ है

ध्यान दें कि बहुत बड़े फ़ंक्शनों या गहरे कॉल ट्री पर HLIL बहुत विशाल और रेंडर करने में धीमा हो सकता है। इसके अलावा, एक बार सब कुछ एक इकाई में विलीन हो जाने के बाद कुछ डीकंपाइलर अनुकूलन कम प्रभावी हो सकते हैं। इसे नियंत्रित करने के लिए, आप इनलाइनिंग गहराई को सीमित कर सकते हैं: Settings -> Obfuscation Analysis -> Max Function Inlining Depth को एक ऊपरी सीमा N पर सेट करें (डिफ़ॉल्ट रूप से 1 पर सेट)। गहराई सीमा के साथ, केवल पहले N कॉल स्तर इनलाइन किए जाते हैं; गहरे कॉल इनलाइन नहीं किए जाते हैं।

सीमाएँ

प्लगइन में कुछ चेतावनियाँ हैं जिनके बारे में आपको जानना चाहिए, उनमें से अधिकांश MBA सरलीकरण पाइपलाइन से संबंधित हैं:

  • Binary Ninja बग: BN 5.0 stable पर, बैकवर्ड-स्लाइसिंग चरण विफल हो सकता है क्योंकि HLIL टाइप-कास्ट गायब हैं: https://github.com/Vector35/binaryninja-api/issues/6371; यह समस्या 5.1.7477-de और नए संस्करणों में ठीक कर दी गई है

  • स्लाइस एक बेसिक ब्लॉक तक सीमित: पूर्ववर्ती ब्लॉकों में स्थित चर परिभाषाओं को अनदेखा किया जाता है (अक्सर नियंत्रण-प्रवाह पर निर्भर), इसलिए कुछ MBA शब्द आंशिक रूप से हल रह सकते हैं

  • HLIL से Miasm IR अनुवाद अंतराल: प्रत्येक HLIL निर्माण का एक सुसंगत Miasm समकक्ष नहीं होता है; जब अनुवाद विफल होता है तो अभिव्यक्ति को छोड़ दिया जाता है और एक त्रुटि लॉग की जाती है

  • IL कवरेज: नियंत्रण-प्रवाह नोड्स और फ़्लोटिंग-पॉइंट ऑपरेशन वर्तमान में अनुवादित नहीं हैं

  • विरासत में मिली msynth बाधाएँ : MBA सरलीकरण सभी msynth सीमाओं को विरासत में लेता है

संपर्क

अधिक जानकारी के लिए, Tim Blazytko (@mr_phrazer) या Nicolò Altamura (@nicolodev) से संपर्क करें।

टूल डाउनलोड करें