5.3 KiB
Pliki pakietów macOS
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Podstawowe informacje
Pakiety w macOS służą jako kontenery dla różnorodnych zasobów, w tym aplikacji, bibliotek i innych niezbędnych plików, sprawiając, że wyglądają one jako pojedyncze obiekty w Finderze, takie jak znane pliki *.app
. Najczęściej spotykanym pakietem jest pakiet .app
, choć inne typy, takie jak .framework
, .systemextension
i .kext
, są również powszechne.
Istotne składniki pakietu
Wewnątrz pakietu, szczególnie w katalogu <aplikacja>.app/Contents/
, znajduje się wiele ważnych zasobów:
- _CodeSignature: Ten katalog przechowuje szczegóły podpisywania kodu niezbędne do weryfikacji integralności aplikacji. Możesz sprawdzić informacje o podpisywaniu kodu za pomocą poleceń takich jak: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
- MacOS: Zawiera wykonywalny plik binarny aplikacji, który uruchamia się po interakcji użytkownika.
- Resources: Repozytorium dla komponentów interfejsu użytkownika aplikacji, w tym obrazy, dokumenty i opisy interfejsu (pliki nib/xib).
- Info.plist: Działa jako główny plik konfiguracyjny aplikacji, kluczowy dla systemu w celu rozpoznania i interakcji z aplikacją w odpowiedni sposób.
Ważne klucze w pliku Info.plist
Plik Info.plist
jest fundamentem konfiguracji aplikacji, zawierając klucze takie jak:
- CFBundleExecutable: Określa nazwę głównego pliku wykonywalnego znajdującego się w katalogu
Contents/MacOS
. - CFBundleIdentifier: Zapewnia globalny identyfikator aplikacji, szeroko używany przez macOS do zarządzania aplikacjami.
- LSMinimumSystemVersion: Wskazuje minimalną wersję macOS wymaganą do uruchomienia aplikacji.
Eksploracja pakietów
Aby zbadać zawartość pakietu, takiego jak Safari.app
, można użyć następującego polecenia: bash ls -lR /Applications/Safari.app/Contents
Ta eksploracja ujawnia katalogi takie jak _CodeSignature
, MacOS
, Resources
, oraz pliki takie jak Info.plist
, z każdym pełniącym unikalną rolę od zabezpieczania aplikacji po definiowanie jej interfejsu użytkownika i parametrów operacyjnych.
Dodatkowe katalogi pakietów
Poza powszechnymi katalogami, pakiety mogą również zawierać:
- Frameworks: Zawiera spakowane frameworki używane przez aplikację. Frameworki są podobne do dylibs z dodatkowymi zasobami.
- PlugIns: Katalog dla wtyczek i rozszerzeń, które zwiększają możliwości aplikacji.
- XPCServices: Przechowuje usługi XPC używane przez aplikację do komunikacji międzyprocesowej.
Ta struktura zapewnia, że wszystkie niezbędne komponenty są zamknięte w pakiecie, ułatwiając modularne i bezpieczne środowisko aplikacji.
Dla bardziej szczegółowych informacji na temat kluczy Info.plist
i ich znaczenia, dokumentacja deweloperska Apple oferuje obszerne zasoby: Apple Info.plist Key Reference.
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.