iOS Basic Testing Operations
Sažetak identifikacije i pristupa iOS uređaju
Identifikacija UDID-a iOS uređaja
Za jedinstvenu identifikaciju iOS uređaja koristi se 40-cifreni niz poznat kao UDID. Na macOS Catalina ili novijim verzijama, to se može pronaći u aplikaciji Finder, jer iTunes više nije prisutan. Uređaj, jednom povezan preko USB-a i izabran u Finder-u, otkriva svoj UDID među ostalim informacijama kada se klikne na detalje ispod njegovog imena.
Za verzije macOS-a pre Cataline, iTunes omogućava otkrivanje UDID-a. Detaljne instrukcije mogu se pronaći ovde.
Alati komandne linije nude alternativne metode za dobijanje UDID-a:
Korišćenje alata I/O Registry Explorer
ioreg
:
Korišćenje
ideviceinstaller
alata za macOS (i Linux):
Korišćenje
system_profiler
alata:
Korišćenje
instruments
alata za listanje uređaja:
Pristupanje Shell uređaju
SSH pristup je omogućen instaliranjem OpenSSH paketa nakon jailbreak-a, što omogućava konekcije putem ssh root@<device_ip_address>
. Važno je promeniti podrazumevane lozinke (alpine
) za korisnike root
i mobile
kako bi se osigurao uređaj.
SSH preko USB-a postaje neophodan u slučaju nedostatka Wi-Fi mreže, koristeći iproxy
za mapiranje portova uređaja za SSH konekcije. Ova postavka omogućava SSH pristup preko USB-a pokretanjem:
Aplikacije za pristup uređaju, poput NewTerm 2, olakšavaju direktnu interakciju sa uređajem, posebno korisno za rešavanje problema. Obrnuti SSH školjke takođe se mogu uspostaviti za daljinski pristup sa računara domaćina.
Resetovanje zaboravljenih lozinki
Da biste resetovali zaboravljenu lozinku na podrazumevanu (alpine
), neophodno je izmeniti datoteku /private/etc/master.passwd
. To uključuje zamenu postojećeg heša sa hešom za alpine
pored unosa korisnika root
i mobile
.
Tehnike prenosa podataka
Prenos datoteka aplikacije
Arhiviranje i preuzimanje putem SSH i SCP: Jednostavno je arhivirati direktorijum podataka aplikacije koristeći tar
, a zatim ga preneti koristeći scp
. Komanda ispod arhivira direktorijum podataka u .tgz datoteku, koja se zatim preuzima sa uređaja:
Grafički alati sa korisničkim interfejsom
Korišćenje iFunbox-a i iExplorer-a: Ovi grafički alati su korisni za upravljanje fajlovima na iOS uređajima. Međutim, počevši od iOS 8.4, Apple je ograničio pristup ovim alatima do aplikacionog sandbox-a, osim ako je uređaj jailbroken.
Korišćenje Objection-a za upravljanje fajlovima
Interaktivna komandna linija sa Objection-om: Pokretanje Objection-a omogućava pristup Bundle direktorijumu aplikacije. Odavde možete navigirati do Documents direktorijuma aplikacije i upravljati fajlovima, uključujući njihovo preuzimanje i otpremanje sa iOS uređaja.
Dobijanje i izdvajanje aplikacija
Dobijanje IPA fajla
Veza za distribuciju preko mreže (OTA): Aplikacije distribuirane za testiranje putem OTA mogu se preuzeti koristeći alat za preuzimanje ITMS usluga, koji se instalira putem npm-a i koristi se za lokalno čuvanje IPA fajla.
Izdvajanje binarnog koda aplikacije
Iz IPA datoteke: Dekompresirajte IPA datoteku kako biste pristupili dešifrovanom binarnom kodu aplikacije.
Sa Jailbroken uređaja: Instalirajte aplikaciju i izvucite dešifrovanu binarnu datoteku iz memorije.
Proces dešifrovanja
Pregled ručnog dešifrovanja: Binarni kod iOS aplikacija je enkriptovan od strane Apple-a koristeći FairPlay. Da biste izvršili reverzno inženjerstvo, morate izvući dešifrovanu binarnu datoteku iz memorije. Proces dešifrovanja uključuje proveru PIE zastavice, podešavanje zastavica memorije, identifikaciju enkriptovane sekcije, a zatim izvlačenje i zamenu ove sekcije sa njenom dešifrovanom formom.
Provera i izmena PIE zastavice:
Identifikacija šifrovane sekcije i ispuštanje memorije:
Koristite otool
da odredite početnu i krajnju adresu šifrovane sekcije, a zatim koristite gdb da ispuštate memoriju sa jailbroken uređaja.
Prepisivanje šifrovanog dela:
Zamenite šifrovanu sekciju u originalnom binarnom fajlu aplikacije sa dešifrovanim dumpom.
Završavanje Dekripcije: Izmenite metapodatke binarnog fajla kako biste naznačili odsustvo enkripcije koristeći alate poput MachOView, postavljajući cryptid
na 0.
Dekripcija (Automatski)
frida-ios-dump
Alat frida-ios-dump se koristi za automatsko dekriptovanje i izdvajanje aplikacija sa iOS uređaja. Prvo, treba konfigurisati dump.py
da se poveže sa iOS uređajem, što se može uraditi preko localhost-a na portu 2222 putem iproxy-ja ili direktno putem IP adrese uređaja i porta.
Instalirane aplikacije na uređaju mogu se prikazati komandom:
Da biste izvršili dump određene aplikacije, kao što je Telegram, koristite sledeću komandu:
Ova komanda pokreće izvlačenje aplikacije, rezultirajući stvaranjem Telegram.ipa
datoteke u trenutnom direktorijumu. Ovaj proces je pogodan za jailbroken uređaje, jer se nepotpisane ili lažno potpisane aplikacije mogu ponovo instalirati pomoću alata kao što je ios-deploy.
flexdecrypt
Alat flexdecrypt, zajedno sa svojim omotačem flexdump, omogućava izvlačenje IPA datoteka iz instaliranih aplikacija. Komande za instalaciju flexdecrypt na uređaju uključuju preuzimanje i instaliranje .deb
paketa. flexdump se može koristiti za listanje i izvlačenje aplikacija, kao što je prikazano u sledećim komandama:
bagbak
bagbak, još jedan alat zasnovan na Fridi, zahteva jailbroken uređaj za dešifrovanje aplikacija:
r2flutch
r2flutch, koristeći i radare i fridu, služi za dešifrovanje i iskopiranje aplikacija. Više informacija možete pronaći na njegovoj GitHub stranici.
Instaliranje aplikacija
Sideloading se odnosi na instaliranje aplikacija van zvanične App Store prodavnice. Ovaj proces obavlja installd daemon i zahteva da aplikacije budu potpisane Apple-ovim sertifikatom. Jailbroken uređaji mogu zaobići ovo korišćenjem AppSync-a, omogućavajući instaliranje lažno potpisanih IPA paketa.
Alati za sideloading
Cydia Impactor: Alat za potpisivanje i instaliranje IPA fajlova na iOS i APK fajlova na Androidu. Vodiči i rešavanje problema mogu se pronaći na yalujailbreak.net.
libimobiledevice: Biblioteka za Linux i macOS za komunikaciju sa iOS uređajima. Komande za instalaciju i primeri korišćenja za ideviceinstaller su dostupni za instaliranje aplikacija preko USB-a.
ipainstaller: Ovaj alat komandne linije omogućava direktnu instalaciju aplikacija na iOS uređajima.
ios-deploy: Za korisnike macOS-a, ios-deploy instalira iOS aplikacije sa komandne linije. Dekompresovanje IPA fajla i korišćenje opcije
-m
za direktno pokretanje aplikacije su deo procesa.Xcode: Koristite Xcode za instaliranje aplikacija tako što ćete otići na Window/Devices and Simulators i dodati aplikaciju u Installed Apps.
Dozvoljavanje instalacije aplikacija na uređajima koji nisu iPad
Da biste instalirali aplikacije specifične za iPad na uređajima iPhone ili iPod touch, vrednost UIDeviceFamily u fajlu Info.plist treba promeniti u 1. Međutim, ova modifikacija zahteva ponovno potpisivanje IPA fajla zbog provere potpisa.
Napomena: Ovaj metod može da ne uspe ako aplikacija zahteva mogućnosti koje su ekskluzivne za novije modele iPada dok se koristi stariji iPhone ili iPod touch.
Reference
Last updated