Reversing Native Libraries
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)
मोबाइल सुरक्षा में अपनी विशेषज्ञता को 8kSec अकादमी के साथ गहरा करें। हमारे आत्म-गति पाठ्यक्रमों के माध्यम से iOS और Android सुरक्षा में महारत हासिल करें और प्रमाणित हों:
अधिक जानकारी के लिए देखें: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
Android ऐप्स प्रदर्शन-क्रिटिकल कार्यों के लिए आमतौर पर C या C++ में लिखी गई नेटिव लाइब्रेरी का उपयोग कर सकते हैं। मैलवेयर निर्माता भी इन लाइब्रेरी का उपयोग करते हैं, क्योंकि इन्हें DEX बाइटकोड की तुलना में रिवर्स इंजीनियर करना कठिन होता है। यह अनुभाग Android के लिए अनुकूलित रिवर्स इंजीनियरिंग कौशल पर जोर देता है, न कि असेंबली भाषाओं को सिखाने पर। संगतता के लिए ARM और x86 संस्करणों की लाइब्रेरी प्रदान की जाती हैं।
Android ऐप्स में नेटिव लाइब्रेरी:
प्रदर्शन-गहन कार्यों के लिए उपयोग किया जाता है।
C या C++ में लिखा गया, जिससे रिवर्स इंजीनियरिंग चुनौतीपूर्ण हो जाती है।
.so
(शेयर की गई वस्तु) प्रारूप में पाया जाता है, जो Linux बाइनरी के समान है।
मैलवेयर निर्माता विश्लेषण को कठिन बनाने के लिए नेटिव कोड को प्राथमिकता देते हैं।
Java Native Interface (JNI) और Android NDK:
JNI Java विधियों को नेटिव कोड में लागू करने की अनुमति देता है।
NDK नेटिव कोड लिखने के लिए Android-विशिष्ट उपकरणों का एक सेट है।
JNI और NDK Java (या Kotlin) कोड को नेटिव लाइब्रेरी के साथ जोड़ते हैं।
लाइब्रेरी लोडिंग और निष्पादन:
लाइब्रेरी को System.loadLibrary
या System.load
का उपयोग करके मेमोरी में लोड किया जाता है।
लाइब्रेरी लोडिंग पर JNI_OnLoad निष्पादित होता है।
Java-घोषित नेटिव विधियाँ नेटिव कार्यों से लिंक होती हैं, जिससे निष्पादन सक्षम होता है।
Java विधियों को नेटिव कार्यों से लिंक करना:
डायनामिक लिंकिंग: नेटिव लाइब्रेरी में कार्यों के नाम एक विशिष्ट पैटर्न से मेल खाते हैं, जिससे स्वचालित लिंकिंग की अनुमति मिलती है।
स्टेटिक लिंकिंग: लिंकिंग के लिए RegisterNatives
का उपयोग करता है, जो कार्य नामकरण और संरचना में लचीलापन प्रदान करता है।
रिवर्स इंजीनियरिंग उपकरण और तकनीकें:
Ghidra और IDA Pro जैसे उपकरण नेटिव लाइब्रेरी का विश्लेषण करने में मदद करते हैं।
JNIEnv
JNI कार्यों और इंटरैक्शन को समझने के लिए महत्वपूर्ण है।
लाइब्रेरी लोडिंग, विधियों को लिंक करने और नेटिव कार्यों की पहचान करने का अभ्यास करने के लिए व्यायाम प्रदान किए जाते हैं।
ARM असेंबली सीखना:
अंतर्निहित आर्किटेक्चर की गहरी समझ के लिए सुझाया गया है।
Azeria Labs से ARM Assembly Basics की सिफारिश की जाती है।
JNI और NDK दस्तावेज़:
नैटिव लाइब्रेरी का डिबगिंग:
मोबाइल सुरक्षा में अपनी विशेषज्ञता को 8kSec अकादमी के साथ गहरा करें। हमारे आत्म-गति पाठ्यक्रमों के माध्यम से iOS और Android सुरक्षा में महारत हासिल करें और प्रमाणित हों:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)