Xamarin Apps
यह ब्लॉग पोस्ट https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers का सारांश है।
मूल जानकारी
Xamarin एक ओपन-सोर्स प्लेटफ़ॉर्म है जो डेवलपर्स को .NET और C# frameworks का उपयोग करके iOS, Android और Windows के लिए ऐप्स बनाने के लिए डिज़ाइन किया गया है। यह प्लेटफ़ॉर्म मॉडर्न एप्लिकेशन अभिकलन के लिए कई उपकरण और एक्सटेंशन का उपयोग करने की सुविधा प्रदान करता है।
Xamarin की वास्तुकला
Android के लिए, Xamarin Android और जावा नेमस्पेस को .NET बाइंडिंग के माध्यम से एकीकृत करता है, जो Android Runtime (ART) के साथ मोनो क्रियान्वयन परिवेश में कार्य करता है। Managed Callable Wrappers (MCW) और Android Callable Wrappers (ACW) Mono और ART के बीच संचार को सुविधाजनक बनाते हैं, जो दोनों लिनक्स कर्नेल पर आधारित हैं।
iOS के लिए, एप्लिकेशन मोनो रनटाइम के तहत चलते हैं, C# .NET कोड को ARM असेंबली भाषा में रूपांतरित करने के लिए पूर्ण Ahead of Time (AOT) संकलन का उपयोग करते हैं। यह प्रक्रिया यूनिक्स-जैसे कर्नेल पर Objective-C रनटाइम के साथ चलती है।
.NET रनटाइम और मोनो फ्रेमवर्क
.NET फ्रेमवर्क एप्लिकेशन विकास के लिए एसेम्ब्ली, क्लास और नेमस्पेस शामिल करता है, जबकि .NET रनटाइम कोड निष्पादन का प्रबंधन करता है। यह प्लेटफ़ॉर्म स्वतंत्रता और पिछली संगतता प्रदान करता है। मोनो फ्रेमवर्क एक ओपन-सोर्स संस्करण है जो .NET फ्रेमवर्क को विस्तारित करने के लिए 2005 में प्रारंभ किया गया था, अब माइक्रोसॉफ्ट द्वारा समर्थित है और Xamarin द्वारा नेतृत्व किया जाता है।
Xamarin ऐप्स का रिवर्स इंजीनियरिंग
Xamarin एसेम्ब्लीज का डीकॉम्पाइलेशन
डीकॉम्पाइलेशन संकलित कोड को वापस स्रोत कोड में बदलता है। Windows में, Visual Studio के Modules विंडो में मॉड्यूल्स को डीकॉम्पाइल करने के लिए पहचान सकता है, जिससे तीसरे पक्ष कोड तक सीधा पहुंचा जा सकता है और विश्लेषण के लिए स्रोत कोड को निकाला जा सकता है।
JIT vs AOT संकलन
Android JIT और AOT संकलन का समर्थन करता है, जिसमें श्रेष्ठ निष्पादन गति के लिए हाइब्रिड AOT मोड शामिल है। पूर्ण AOT केवल एंटरप्राइज लाइसेंस के लिए है।
iOS केवल AOT संकलन का उपयोग करता है क्योंकि Apple ने डायनेमिक कोड निष्पादन पर प्रतिबंध लगाया है।
APK/IPA से dll फ़ाइलें निकालना
APK/IPA में एसेम्ब्लीज तक पहुंचने के लिए फ़ाइल को अनज़िप करें और एसेम्ब्लीज निर्देशिका की जांच करें। Android के लिए, XamAsmUnZ और xamarin-decompress जैसे उपकरण dll फ़ाइलों को अनज़िप कर सकते हैं।
Android में एसेम्बली ब्लॉब्स के लिए, pyxamstore उन्हें अनपैक कर सकता है।
iOS dll फ़ाइलें आसानी से डीकॉम्पाइलेशन के लिए उपलब्ध होती हैं, जो अनुप्रयोग कोड के महत्वपूर्ण हिस्से उजागर करती हैं, जो अक्सर विभिन्न प्लेटफ़ॉर्मों पर एक सामान्य आधार को साझा करता है।
गतिशील विश्लेषण
गतिशील विश्लेषण में SSL पिनिंग की जांच और Xamarin ऐप्स में .NET बाइनरी के रनटाइम संशोधन के लिए Fridax जैसे उपकरणों का उपयोग किया जाता है। Frida स्क्रिप्ट्स उपलब्ध हैं जो रूट का पता लगाने या SSL पिनिंग को दुरुस्त करने में मदद करते हैं, विश्लेषण क्षमताओं को बढ़ाते हैं।
अन्य दिलचस्प Frida स्क्रिप्ट्स:
अधिक जानकारी
Last updated