Jakie zmiany w jailbroken kernel?
Widząc to pytanie na ochronę aplikacji przed pęknięciem, zobaczyłem, że top answer wspomniał coś o możliwości sprawdzenia, czy urządzenie zostało złamane przez jakiś wewnętrzny brak równowagi w jądrze. Po przyjrzeniu się temu bliżej odkryłem przewodnik Kernel Architecture Overview i posiadam wiedzę na temat sposobów interakcji z jądrem Mach-BSD. Wszystko, co muszę wiedzieć, to: czego szukam? Czy jest jakiś klucz czy wewnętrzny stan, że zmienia się, gdy urządzenie jest jailbroken w kontekście jądra?
Żeby było jasne, nie szukam kodu( sam wiem jak to zrobić), Szukam czego szukać... Jakkolwiek dziwnie to brzmi. Widziałem odpowiedzi w połączonych pytaniach, wiem, że działają, ale zastanawiam się nad All kernel route, która wydaje się bardziej ogólnym i skutecznym sposobem sprawdzania zamiast wyszukiwania katalogów, które mogą zmienić lub plist klucze, które mogą mieć różne nazwiska.
Nie zamierzam również wyłączać żadnej funkcjonalności ze strony aplikacji z powodu piractwa (wystarczy pokazać wiadomość lub coś w oparciu o warunek).
2 answers
Wszystkie "nowoczesne" łaty jądra są oparte na łatkach comex .
Główne rzeczy, które są łatane to:
security.mac.proc_enforce
cs_enforcement_disable (kernel and AMFI)
PE_i_can_has_debugger
vm_map_enter
vm_map_protect
- …
Edytuj: Właśnie wpadłem na prosty pomysł, aby sprawdzić, czy urządzenie jest jailbroken, ale nie jestem pewien, czy Apple zezwala na korzystanie z tych funkcji:
Przydziel trochę pamięci używając mach_vm_allocate()
-
Zmień ochronę tej strony poprzez mach_vm_protect () na VM_PROT_READ | VM_PROT_EXECUTE / vm_prot_copy
Ponieważ system iOS nie zezwala na VM_PROT_EXECUTE z wewnątrz aplikacji, to się nie powiedzie, sprawdź wartość zwracaną mach_vm_protect (), jeśli nie jailbroken, ale uda się, jeśli urządzenie jest jailbroken.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-03 23:41:19
Około rok temu saurik napisał komentarz do Hacker News z listą "'najlepszych praktyk' łatek, które jailbreaks instaluje domyślnie " . Sugerowałbym przeczytanie tego komentarza dla wszystkich szczegółów, ale tutaj jest podgląd tego, co mówi (z wieloma wyjaśnieniami, które wyciąłem): {]}
AFC2: pozwala na dostęp, przez USB, do wszystkich / jako root zamiast tylko / var / mobile / Media jako mobile.
Fstab / rw: ustawia / montuje Odczyt-Zapis.
Fstab / var suid dev: zezwala na pliki wykonywalne setuid i węzły urządzeń na partycji danych użytkownika.
Codesign: Zezwalaj na wykonanie kodu, który nie został podpisany przez nikogo.
Codehash: umożliwia wykonywanie procesów z "uszkodzonymi" stronami kodu.
Rw- > rx: obsługuje zmianę strony pamięci z zapisywalnej na wykonywalną.
Rwx: pozwala na zaznaczenie pamięci do zapisu i wykonania w tym samym czasie.
Sandbox: Zezwalaj procesom na dostęp do plików, które znajdują się poza ich piaskownicą, w oparciu o uprawnienia uniksowe, a nie zwykłe piaskownice Zasady.
Crazeles: absurdalnie skomplikowany hack przez planetbeing, który eliminuje testy DRM FairPlay, które powodują, że iBooks odmawia działania poprawnie na urządzeniach jailbroken.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-30 05:01:51