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