
बाइनरी में अस्पष्ट कोड और कंट्रोल-फ्लो फ्लैटनिंग का स्वचालित पता लगाने के लिए IDA प्लगइन, जो ह्यूरिस्टिक विश्लेषण और डॉमिनेटर ट्री विज़ुअलाइज़ेशन का उपयोग करता है।
लेखक: mcdulltii
अस्पष्ट कोड और अन्य स्टेट मशीनों का स्वचालित रूप से पता लगाएं
बाइनरी में अस्पष्ट कोड और स्टेट मशीनों का स्वचालित रूप से पता लगाने के लिए स्क्रिप्ट।
कार्यान्वयन IDA 7.4+ (Python3) पर आधारित है। Binary Ninja कार्यान्वयन के बारे में अधिक जानकारी के लिए निम्नलिखित ब्लॉग पोस्ट देखें:
ह्यूरिस्टिक मान उपरोक्त ब्लॉग पोस्टों के आधार पर उत्पन्न होते हैं, और उनकी ह्यूरिस्टिक जटिलताओं के आधार पर ऊपर से नीचे क्रमबद्ध (जब All Functions मोड में चलाया जाता है) होते हैं।
बाइनरी के भीतर प्रत्येक पाई गई फ़ंक्शन के डोमिनेटर ट्री को प्लॉट करने की पुनरावर्ती प्रकृति के कारण, कार्यान्वयन और रनटाइम ओवरहेड महंगा है, हालांकि थ्रेडिंग लागू की गई है।
प्लगइन को विज़ुअलाइज़ करने के लिए PyQt का उपयोग करके, उपयोगकर्ता बाइनरी पर ह्यूरिस्टिक फ़ंक्शन विश्लेषण को और अनुकूलित करने में सक्षम होते हैं।
PyQt5
obfDetect निर्देशिका और obfDetect.py को IDA प्लगइन्स निर्देशिका में कॉपी करें।
जब IDA सफलतापूर्वक एक बाइनरी लोड करना समाप्त कर लेता है, तो स्क्रिप्ट अपना बैनर IDC/Python कंसोल में प्रिंट करेगी।
स्क्रिप्ट को नीचे दिखाए अनुसार File टूलबार के माध्यम से चलाया जा सकता है। वैकल्पिक रूप से, Ctrl-Shift-H।

आउटपुट तालिका में फ़ंक्शन नामों को n का उपयोग करके पुनर्नामित किया जा सकता है, और इस प्रकार यह उनके फ़ंक्शन पते द्वारा निर्दिष्ट IDA के फ़ंक्शन नामों को अपडेट करेगा
निर्यात फ़ाइल नाम इनपुट बॉक्स पर क्लिक करने पर, एक फ़ाइल चयन पॉप-अप खुलेगा जिसे एक कस्टम सहेजने के स्थान पर नेविगेट किया जा सकता है
Run बटन पर क्लिक करेंExport filename इनपुट बॉक्स पर क्लिक करें, और तालिका को csv प्रारूप में निर्यात करने के लिए Export बटन पर क्लिक करें

