macOS Bundles

HackTricks 지원

기본 정보

macOS에서 번들은 응용 프로그램, 라이브러리 및 기타 필수 파일을 포함하는 컨테이너로 작용하여 Finder에서 *.app 파일과 같이 단일 객체로 나타나게 합니다. 가장 흔히 볼 수 있는 번들은 .app 번들이지만, .framework, .systemextension, .kext와 같은 다른 유형도 흔히 사용됩니다.

번들의 필수 구성 요소

특히 <application>.app/Contents/ 디렉토리 내에서 번들 내에는 다음과 같은 중요한 리소스가 포함됩니다:

  • _CodeSignature: 응용 프로그램의 무결성을 확인하는 데 중요한 코드 서명 세부 정보를 저장하는 디렉토리입니다. 다음과 같은 명령을 사용하여 코드 서명 정보를 검사할 수 있습니다: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%

  • MacOS: 사용자 상호 작용 시 실행되는 응용 프로그램의 실행 가능한 이진 파일을 포함합니다.

  • Resources: 이미지, 문서 및 인터페이스 설명(nib/xib 파일)을 포함하는 응용 프로그램의 사용자 인터페이스 구성 요소를 저장하는 저장소입니다.

  • Info.plist: 응용 프로그램의 주 구성 파일로, 시스템이 응용 프로그램을 인식하고 상호 작용할 수 있도록 중요합니다.

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.

HackTricks 지원

Last updated