macOS Bundles
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)
macOS में बंडल विभिन्न संसाधनों के लिए कंटेनर के रूप में कार्य करते हैं, जिसमें एप्लिकेशन, पुस्तकालय और अन्य आवश्यक फ़ाइलें शामिल हैं, जिससे वे फ़ाइंडर में एकल वस्तुओं के रूप में दिखाई देते हैं, जैसे कि परिचित *.app
फ़ाइलें। सबसे सामान्य बंडल .app
बंडल है, हालांकि अन्य प्रकार जैसे .framework
, .systemextension
, और .kext
भी प्रचलित हैं।
एक बंडल के भीतर, विशेष रूप से <application>.app/Contents/
निर्देशिका के भीतर, कई महत्वपूर्ण संसाधन housed होते हैं:
_CodeSignature: यह निर्देशिका कोड-हस्ताक्षर विवरण संग्रहीत करती है जो एप्लिकेशन की अखंडता को सत्यापित करने के लिए महत्वपूर्ण है। आप कोड-हस्ताक्षर जानकारी की जांच कर सकते हैं जैसे: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
MacOS: एप्लिकेशन का निष्पादन योग्य बाइनरी शामिल है जो उपयोगकर्ता की बातचीत पर चलता है।
Resources: एप्लिकेशन के उपयोगकर्ता इंटरफ़ेस घटकों के लिए एक भंडार जिसमें चित्र, दस्तावेज़, और इंटरफ़ेस विवरण (nib/xib फ़ाइलें) शामिल हैं।
Info.plist: एप्लिकेशन की मुख्य कॉन्फ़िगरेशन फ़ाइल के रूप में कार्य करता है, जो सिस्टम को एप्लिकेशन को सही तरीके से पहचानने और बातचीत करने के लिए महत्वपूर्ण है।
Info.plist
फ़ाइल एप्लिकेशन कॉन्फ़िगरेशन के लिए एक आधारशिला है, जिसमें निम्नलिखित कुंजी शामिल हैं:
CFBundleExecutable: Contents/MacOS
निर्देशिका में स्थित मुख्य निष्पादन फ़ाइल का नाम निर्दिष्ट करता है।
CFBundleIdentifier: एप्लिकेशन के लिए एक वैश्विक पहचानकर्ता प्रदान करता है, जिसका उपयोग macOS द्वारा एप्लिकेशन प्रबंधन के लिए व्यापक रूप से किया जाता है।
LSMinimumSystemVersion: एप्लिकेशन के चलने के लिए आवश्यक macOS का न्यूनतम संस्करण दर्शाता है।
बंडल की सामग्री का पता लगाने के लिए, जैसे Safari.app
, निम्नलिखित कमांड का उपयोग किया जा सकता है: bash ls -lR /Applications/Safari.app/Contents
यह अन्वेषण _CodeSignature
, MacOS
, Resources
जैसे निर्देशिकाओं और Info.plist
जैसे फ़ाइलों को प्रकट करता है, प्रत्येक का एक अद्वितीय उद्देश्य होता है, एप्लिकेशन को सुरक्षित करने से लेकर इसके उपयोगकर्ता इंटरफ़ेस और संचालन पैरामीटर को परिभाषित करने तक।
सामान्य निर्देशिकाओं के अलावा, बंडल में निम्नलिखित भी शामिल हो सकते हैं:
Frameworks: एप्लिकेशन द्वारा उपयोग किए जाने वाले बंडल किए गए ढांचे को शामिल करता है। ढांचे अतिरिक्त संसाधनों के साथ dylibs के समान होते हैं।
PlugIns: एक निर्देशिका जो प्लग-इन्स और एक्सटेंशन के लिए है जो एप्लिकेशन की क्षमताओं को बढ़ाती है।
XPCServices: एप्लिकेशन द्वारा आउट-ऑफ-प्रोसेस संचार के लिए उपयोग की जाने वाली XPC सेवाओं को रखता है।
यह संरचना सुनिश्चित करती है कि सभी आवश्यक घटक बंडल के भीतर समाहित हैं, जिससे एक मॉड्यूलर और सुरक्षित एप्लिकेशन वातावरण की सुविधा मिलती है।
Info.plist
कुंजी और उनके अर्थों पर अधिक विस्तृत जानकारी के लिए, Apple डेवलपर दस्तावेज़ व्यापक संसाधन प्रदान करता है: Apple Info.plist Key Reference.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)