Xamarin Apps
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)
Xamarin एक ओपन-सोर्स प्लेटफॉर्म है जिसे डेवलपर्स के लिए iOS, Android, और Windows के लिए ऐप बनाने के लिए डिज़ाइन किया गया है, जो .NET और C# फ्रेमवर्क का उपयोग करता है। यह प्लेटफॉर्म आधुनिक अनुप्रयोगों को कुशलता से बनाने के लिए कई उपकरणों और एक्सटेंशन तक पहुंच प्रदान करता है।
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 फ्रेमवर्क में अनुप्रयोग विकास के लिए असेंबली, कक्षाएँ, और नामस्थान शामिल हैं, जिसमें .NET Runtime कोड निष्पादन का प्रबंधन करता है। यह प्लेटफॉर्म स्वतंत्रता और पिछली संगतता प्रदान करता है। Mono Framework .NET फ्रेमवर्क का एक ओपन-सोर्स संस्करण है, जिसे 2005 में Linux के लिए .NET का विस्तार करने के लिए शुरू किया गया था, अब Microsoft द्वारा समर्थित और Xamarin द्वारा संचालित है।
Decompilation संकलित कोड को फिर से स्रोत कोड में परिवर्तित करता है। Windows में, Visual Studio में Modules विंडो decompilation के लिए मॉड्यूल की पहचान कर सकती है, जो तीसरे पक्ष के कोड तक सीधी पहुंच और विश्लेषण के लिए स्रोत कोड निकालने की अनुमति देती है।
Android Just-In-Time (JIT) और Ahead-Of-Time (AOT) संकलन का समर्थन करता है, जिसमें अनुकूल निष्पादन गति के लिए एक हाइब्रिड AOT मोड है। पूर्ण AOT केवल Enterprise लाइसेंस के लिए विशेष है।
iOS केवल AOT संकलन का उपयोग करता है क्योंकि Apple के गतिशील कोड निष्पादन पर प्रतिबंध हैं।
APK/IPA में असेंबली तक पहुंचने के लिए, फ़ाइल को अनज़िप करें और असेंबली निर्देशिका का अन्वेषण करें। Android के लिए, XamAsmUnZ और xamarin-decompress जैसे उपकरण dll फ़ाइलों को अनकंप्रेस कर सकते हैं।
ऐसे मामलों में जहां APK को डिकंपाइल करने के बाद अज्ञात/assemblies/ फ़ोल्डर में .dll
फ़ाइलें देखी जा सकती हैं, तो .dlls
पर सीधे dnSpy का उपयोग करना संभव है।
हालांकि, कभी-कभी, अज्ञात/assemblies/ फ़ोल्डर के अंदर assemblies.blob
और assemblies.manifest
फ़ाइलें पाई जाती हैं। Xamarin ऐप्स में assemblies.blob
फ़ाइल को अनपैक करने के लिए pyxamstore टूल का उपयोग किया जा सकता है, जो आगे विश्लेषण के लिए .NET assemblies तक पहुंच प्रदान करता है:
iOS dll फ़ाइलें डिकंपाइल के लिए आसानी से उपलब्ध हैं, जो एप्लिकेशन कोड के महत्वपूर्ण हिस्सों को प्रकट करती हैं, जो अक्सर विभिन्न प्लेटफार्मों के बीच एक सामान्य आधार साझा करती हैं।
एक बार जब .dll
प्राप्त हो जाती हैं, तो .Net कोड का स्थैतिक विश्लेषण करना संभव है, जैसे कि dnSpy या ILSpy जो ऐप के कोड को संशोधित करने की अनुमति देगा। यह एप्लिकेशन को संशोधित करने के लिए बहुत उपयोगी हो सकता है ताकि सुरक्षा को बायपास किया जा सके।
ध्यान दें कि ऐप को संशोधित करने के बाद, आपको इसे फिर से पैक करना और फिर से साइन करना होगा।
गतिशील विश्लेषण में SSL पिनिंग की जांच करना और Xamarin ऐप्स में .NET बाइनरी के रनटाइम संशोधनों के लिए Fridax जैसे उपकरणों का उपयोग करना शामिल है। रूट डिटेक्शन या SSL पिनिंग को बायपास करने के लिए Frida स्क्रिप्ट उपलब्ध हैं, जो विश्लेषण क्षमताओं को बढ़ाती हैं।
अन्य दिलचस्प Frida स्क्रिप्ट:
उपकरण Uber APK Signer एक ही कुंजी के साथ कई APKs को साइन करना सरल बनाता है, और इसे ऐप में किए गए परिवर्तनों के बाद फिर से साइन करने के लिए उपयोग किया जा सकता है।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)