hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-bundles.md

5 KiB
Raw Blame History

macOS捆绑包

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

基本信息

基本上,捆绑包是文件系统中的目录结构。有趣的是默认情况下这个目录在Finder中看起来像一个单一的对象

我们经常遇到的常见捆绑包是**.app捆绑包**,但许多其他可执行文件也被打包成捆绑包,例如**.framework.systemextension.kext**。

捆绑包中包含的资源类型可能包括应用程序、库、图像、文档、头文件等。所有这些文件都在<application>.app/Contents/目录中。

ls -lR /Applications/Safari.app/Contents
  • Contents/_CodeSignature -> 包含有关应用程序的代码签名信息(例如哈希等)。

  • openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64

  • Contents/MacOS -> 包含应用程序的二进制文件(当用户双击应用程序图标时执行)。

  • Contents/Resources -> 包含应用程序的用户界面元素例如图像、文档和描述各种用户界面的nib/xib文件。

  • Contents/Info.plist -> 应用程序的主要“配置文件”。苹果指出,“系统依赖于此文件的存在来识别与应用程序和任何相关文件有关的信息”。

  • Plist 文件包含配置信息。您可以在https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html中找到有关它们plist键的含义的信息。

  • 在分析应用程序时可能感兴趣的键值对包括:\

  • CFBundleExecutable

包含应用程序的二进制文件的名称位于Contents/MacOS中

  • CFBundleIdentifier

包含应用程序的捆绑标识符(系统通常用于全局标识应用程序)。

  • LSMinimumSystemVersion

包含应用程序兼容的最旧版本的macOS

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥