macOS Bundles
Last updated
Last updated
AWS Hacking'i öğrenin ve uygulayın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
macOS'taki paketler, uygulamaları, kütüphaneleri ve diğer gerekli dosyaları içeren çeşitli kaynakların bir konteyneri olarak hizmet eder ve Finder'da tek bir nesne olarak görünmelerini sağlar, örneğin tanıdık *.app
dosyaları. En sık karşılaşılan paket genellikle .app
paketidir, ancak .framework
, .systemextension
ve .kext
gibi diğer türler de yaygındır.
Bir paket içinde, özellikle <uygulama>.app/Contents/
dizini içinde, çeşitli önemli kaynaklar bulunmaktadır:
_CodeSignature: Bu dizin, uygulamanın bütünlüğünü doğrulamak için hayati öneme sahip olan kod imzalama ayrıntılarını depolar. Kod imzalama bilgilerini şu komutlarla inceleyebilirsiniz: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
MacOS: Kullanıcı etkileşimi sırasında çalışan uygulamanın yürütülebilir binary'sini içerir.
Resources: Uygulamanın kullanıcı arayüzü bileşenlerini, resimleri, belgeleri ve arayüz açıklamalarını (nib/xib dosyalarını) içeren bir depo.
Info.plist: Uygulamanın ana yapılandırma dosyası olarak hareket eder, uygulamanın uygun şekilde tanınmasını ve etkileşimde bulunmasını sağlamak için önemlidir.
Info.plist
dosyası, uygulama yapılandırması için bir köşetaşı olup şu anahtarları içerir:
CFBundleExecutable: Contents/MacOS
dizininde bulunan ana yürütülebilir dosyanın adını belirtir.
CFBundleIdentifier: Uygulama için genel bir tanımlayıcı sağlar, macOS tarafından uygulama yönetimi için yoğun bir şekilde kullanılır.
LSMinimumSystemVersion: Uygulamanın çalışması için gereken macOS'in minimum sürümünü belirtir.
Safari.app
gibi bir paketin içeriğini keşfetmek için şu komut kullanılabilir: bash ls -lR /Applications/Safari.app/Contents
Bu keşif, _CodeSignature
, MacOS
, Resources
gibi dizinleri ve Info.plist
gibi dosyaları ortaya çıkarır; her biri uygulamayı güvence altına almak ve kullanıcı arayüzünü ve işletme parametrelerini tanımlamak için benzersiz bir amaçla hizmet verir.
Ortak dizinlerin ötesinde, paketler ayrıca şunları içerebilir:
Frameworks: Uygulama tarafından kullanılan paketlenmiş çerçeveleri içerir. Çerçeveler, ek kaynaklara sahip dylib'ler gibidir.
PlugIns: Uygulamanın yeteneklerini artıran eklentiler ve uzantılar için bir dizin.
XPCServices: Uygulama tarafından dış işlem iletişimi için kullanılan XPC hizmetlerini barındırır.
Bu yapı, tüm gerekli bileşenlerin paket içinde kapsanmasını sağlayarak modüler ve güvenli bir uygulama ortamını kolaylaştırır.
Info.plist
anahtarları ve anlamları hakkında daha detaylı bilgi için Apple geliştirici belgeleri kapsamlı kaynaklar sunmaktadır: Apple Info.plist Anahtar Referansı.
AWS Hacking'i öğrenin ve uygulayın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)