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).

Author: Community, 2012-05-04

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
No i są też łatki do piaskownicy. Jeśli chcecie poczytać więcej o tych łatkach to proponuję zajrzeć na iOS Hacker ' s Handbook.

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:

  1. Przydziel trochę pamięci używając mach_vm_allocate()

  2. Zmień ochronę tej strony poprzez mach_vm_protect () na VM_PROT_READ | VM_PROT_EXECUTE / vm_prot_copy

  3. 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.

 24
Author: YllierDev,
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): {]}

  1. AFC2: pozwala na dostęp, przez USB, do wszystkich / jako root zamiast tylko / var / mobile / Media jako mobile.

  2. Fstab / rw: ustawia / montuje Odczyt-Zapis.

  3. Fstab / var suid dev: zezwala na pliki wykonywalne setuid i węzły urządzeń na partycji danych użytkownika.

  4. Codesign: Zezwalaj na wykonanie kodu, który nie został podpisany przez nikogo.

  5. Codehash: umożliwia wykonywanie procesów z "uszkodzonymi" stronami kodu.

  6. Rw- > rx: obsługuje zmianę strony pamięci z zapisywalnej na wykonywalną.

  7. Rwx: pozwala na zaznaczenie pamięci do zapisu i wykonania w tym samym czasie.

  8. 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.

  9. 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.

 2
Author: britta,
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