macOS Bundles

Reading time: 3 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Basic Information

macOS में बंडल विभिन्न संसाधनों के लिए कंटेनर के रूप में कार्य करते हैं, जिसमें एप्लिकेशन, पुस्तकालय और अन्य आवश्यक फ़ाइलें शामिल हैं, जिससे वे फ़ाइंडर में एकल वस्तुओं के रूप में दिखाई देते हैं, जैसे कि परिचित *.app फ़ाइलें। सबसे सामान्य बंडल .app बंडल है, हालांकि अन्य प्रकार जैसे .framework, .systemextension, और .kext भी प्रचलित हैं।

Essential Components of a Bundle

एक बंडल के भीतर, विशेष रूप से <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: एप्लिकेशन की मुख्य कॉन्फ़िगरेशन फ़ाइल के रूप में कार्य करता है, जो सिस्टम को एप्लिकेशन को सही तरीके से पहचानने और इंटरैक्ट करने के लिए महत्वपूर्ण है।

Important Keys in Info.plist

Info.plist फ़ाइल एप्लिकेशन कॉन्फ़िगरेशन के लिए एक आधारशिला है, जिसमें निम्नलिखित कुंजी शामिल हैं:

  • CFBundleExecutable: Contents/MacOS निर्देशिका में स्थित मुख्य निष्पादन योग्य फ़ाइल का नाम निर्दिष्ट करता है।
  • CFBundleIdentifier: एप्लिकेशन के लिए एक वैश्विक पहचानकर्ता प्रदान करता है, जिसका उपयोग macOS द्वारा एप्लिकेशन प्रबंधन के लिए व्यापक रूप से किया जाता है।
  • LSMinimumSystemVersion: एप्लिकेशन के चलने के लिए आवश्यक macOS का न्यूनतम संस्करण दर्शाता है।

Exploring Bundles

बंडल की सामग्री का पता लगाने के लिए, जैसे Safari.app, निम्नलिखित कमांड का उपयोग किया जा सकता है: bash ls -lR /Applications/Safari.app/Contents

यह अन्वेषण _CodeSignature, MacOS, Resources जैसे निर्देशिकाओं और Info.plist जैसी फ़ाइलों को प्रकट करता है, प्रत्येक का एक अद्वितीय उद्देश्य होता है, एप्लिकेशन को सुरक्षित करने से लेकर इसके उपयोगकर्ता इंटरफ़ेस और संचालन पैरामीटर को परिभाषित करने तक।

Additional Bundle Directories

सामान्य निर्देशिकाओं के अलावा, बंडल में निम्नलिखित भी शामिल हो सकते हैं:

  • Frameworks: एप्लिकेशन द्वारा उपयोग किए जाने वाले बंडल किए गए फ्रेमवर्क शामिल हैं। फ्रेमवर्क अतिरिक्त संसाधनों के साथ dylibs के समान होते हैं।
  • PlugIns: एक निर्देशिका प्लग-इन्स और एक्सटेंशन के लिए जो एप्लिकेशन की क्षमताओं को बढ़ाते हैं।
  • XPCServices: एप्लिकेशन द्वारा आउट-ऑफ-प्रोसेस संचार के लिए उपयोग की जाने वाली XPC सेवाओं को रखता है।

यह संरचना सुनिश्चित करती है कि सभी आवश्यक घटक बंडल के भीतर समाहित हैं, जिससे एक मॉड्यूलर और सुरक्षित एप्लिकेशन वातावरण को बढ़ावा मिलता है।

Info.plist कुंजी और उनके अर्थों पर अधिक विस्तृत जानकारी के लिए, Apple डेवलपर दस्तावेज़ व्यापक संसाधन प्रदान करता है: Apple Info.plist Key Reference.

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें