Manual DeObfuscation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
सॉफ़्टवेयर सुरक्षा के क्षेत्र में, अस्पष्ट कोड को समझने योग्य बनाने की प्रक्रिया, जिसे de-obfuscation कहा जाता है, महत्वपूर्ण है। यह गाइड de-obfuscation के विभिन्न रणनीतियों में गहराई से जाती है, जो स्थैतिक विश्लेषण तकनीकों और अस्पष्टता पैटर्न को पहचानने पर केंद्रित है। इसके अतिरिक्त, यह व्यावहारिक अनुप्रयोग के लिए एक व्यायाम प्रस्तुत करती है और उन लोगों के लिए आगे के संसाधनों का सुझाव देती है जो अधिक उन्नत विषयों का अन्वेषण करना चाहते हैं।
जब obfuscated code के साथ काम करते हैं, तो अस्पष्टता की प्रकृति के आधार पर कई रणनीतियाँ अपनाई जा सकती हैं:
DEX bytecode (Java): एक प्रभावी दृष्टिकोण में एप्लिकेशन के de-obfuscation तरीकों की पहचान करना शामिल है, फिर इन तरीकों को एक Java फ़ाइल में दोहराना। इस फ़ाइल को लक्षित तत्वों पर अस्पष्टता को उलटने के लिए निष्पादित किया जाता है।
Java और Native Code: एक और विधि de-obfuscation एल्गोरिदम को Python जैसी स्क्रिप्टिंग भाषा में अनुवाद करना है। यह रणनीति यह उजागर करती है कि प्राथमिक लक्ष्य एल्गोरिदम को पूरी तरह से समझना नहीं है, बल्कि इसे प्रभावी ढंग से निष्पादित करना है।
अस्पष्ट कोड को पहचानना de-obfuscation प्रक्रिया में पहला कदम है। प्रमुख संकेतक शामिल हैं:
Java और Android में स्ट्रिंग्स की अनुपस्थिति या उलझन, जो स्ट्रिंग अस्पष्टता का सुझाव दे सकती है।
assets directory में बाइनरी फ़ाइलों की उपस्थिति या DexClassLoader
को कॉल करना, जो कोड अनपैकिंग और गतिशील लोडिंग का संकेत देता है।
अज्ञात JNI फ़ंक्शंस के साथ Native Libraries का उपयोग, जो संभावित रूप से स्थानीय विधियों की अस्पष्टता को इंगित करता है।
नियंत्रित वातावरण में कोड को निष्पादित करके, गतिशील विश्लेषण यह देखने की अनुमति देता है कि अस्पष्ट कोड वास्तविक समय में कैसे व्यवहार करता है। यह विधि विशेष रूप से उन जटिल अस्पष्टता पैटर्न के आंतरिक कार्यों को उजागर करने में प्रभावी है जो कोड के वास्तविक इरादे को छिपाने के लिए डिज़ाइन किए गए हैं।
Runtime Decryption: कई अस्पष्टता तकनीकों में स्ट्रिंग्स या कोड खंडों को एन्क्रिप्ट करना शामिल होता है जो केवल रनटाइम पर डिक्रिप्ट होते हैं। गतिशील विश्लेषण के माध्यम से, इन एन्क्रिप्टेड तत्वों को डिक्रिप्शन के क्षण में कैप्चर किया जा सकता है, जिससे उनकी वास्तविक रूप प्रकट होती है।
Identifying Obfuscation Techniques: एप्लिकेशन के व्यवहार की निगरानी करके, गतिशील विश्लेषण विशेष अस्पष्टता तकनीकों की पहचान करने में मदद कर सकता है, जैसे कोड वर्चुअलाइजेशन, पैकर, या गतिशील कोड जनरेशन।
Uncovering Hidden Functionality: अस्पष्ट कोड में छिपी हुई कार्यक्षमताएँ हो सकती हैं जो केवल स्थैतिक विश्लेषण के माध्यम से स्पष्ट नहीं होती हैं। गतिशील विश्लेषण सभी कोड पथों का अवलोकन करने की अनुमति देता है, जिसमें वे भी शामिल हैं जो शर्तानुसार निष्पादित होते हैं, ताकि ऐसी छिपी हुई कार्यक्षमताओं को उजागर किया जा सके।
BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]
यह टॉक एक Android एप्लिकेशन द्वारा उपयोग किए जाने वाले सबसे जटिल एंटी-एनालिसिस स्थानीय पुस्तकालयों में से एक का रिवर्स इंजीनियरिंग पर चर्चा करती है। यह मुख्य रूप से स्थानीय कोड में अस्पष्टता तकनीकों को कवर करती है।
REcon 2019: “The Path to the Payload: Android Edition” [video]
यह टॉक एक श्रृंखला की अस्पष्टता तकनीकों पर चर्चा करती है, जो केवल Java कोड में है, जिसका उपयोग एक Android बोटनेट अपने व्यवहार को छिपाने के लिए कर रहा था।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)