
Ora puoi specchiare e controllare il tuo iPhone jailbroken tramite USB.
ioscpy è in esecuzione (Riservato, l'autore lo implementerà completamente)ioscpy wireless (BLE, Wi-Fi) (Riservato, l'autore lo implementerà completamente)Una CLI per macOS, Linux e Windows che rispecchia e controlla un iPhone jailbroken via USB.
Con un dispositivo collegato, è tutto ciò che serve. Si connette da solo.
Ci sono due lati. L'app per Mac esegue il mirroring, il pacchetto per iPhone permette di controllare il telefono. Installa entrambi.
Sul Mac, con Homebrew:
brew tap lautarovculic/ioscpy # the Mac app
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
Sull'iPhone jailbroken, aggiungi questo repository in Sileo o Zebra, poi installa ioscpy da esso e fai un respring:
https://lautarovculic.github.io/ioscpy-repo/
Il repository contiene sia build rootless che rootful, e il gestore di pacchetti sceglie quella che corrisponde al jailbreak.
ioscpy --device <UDID> # pick a device when several are attached
ioscpy --list # list attached devices
ioscpy --no-keyboard # hide the on-screen keyboard, type from the Mac
ioscpy --mjpeg # force MJPEG video instead of the default H.264
ioscpy --record out.mp4 # record the mirrored screen while mirroring (video only)
ioscpy --debug # full diagnostics
ioscpy --version
--record PATH scrive ciò che è sullo schermo rispecchiato in un MP4 mentre la sessione
è in esecuzione. Il flusso H.264 che il telefono invia già viene muxato direttamente nel file, quindi
nulla viene ricodificato e la registrazione costa una scrittura bufferizzata per frame; la finestra
rimane reattiva come prima. Il flusso non contiene audio, quindi le registrazioni sono
mute. Una riconnessione avvia un nuovo file (out-2.mp4, out-3.mp4, …) invece di
sovrascrivere quello scritto dalla sessione interrotta.
La traccia inizia al primo keyframe dopo l'avvio della sessione, e il file viene
finalizzato alla chiusura della finestra. La registrazione segue l'orientamento del flusso stesso,
quindi una sessione catturata con il telefono tenuto in orizzontale viene salvata ruotata;
la rotazione di QuickTime, o un passaggio con ffmpeg -display_rotation 90 -i out.mp4 -c copy,
sistema la cosa senza ricodificare.
Non esiste ancora un prebuilt per Linux. Compila l'host dai sorgenti. Il pacchetto per il dispositivo è lo stesso di macOS, installato dal repo Sileo/Zebra sopra.
Clona questo repo, poi esegui l'installer:
./install.sh
--yes salta i prompt di conferma. --prefix DIR installa in DIR invece di /usr/local e omette sudo quando la directory è sotto $HOME. --uninstall rimuove il binario installato.
Prerequisiti su Debian/Ubuntu:
sudo apt install build-essential pkg-config nasm \
libimobiledevice-utils usbmuxd \
libxkbcommon-dev libwayland-dev \
libxcb1-dev libxkbcommon-x11-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Assicurati che usbmuxd sia in esecuzione così il dispositivo viene rilevato:
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
Compila l'host come tuo utente, poi installa:
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
./install.sh funziona anche su Arch Linux.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
Abilita il servizio
sudo systemctl enable --now usbmuxd.service
Verifica se il dispositivo è connesso
idevice_id -l
Poi esegui il binario
cd host/target/release && chmod +x ioscpy
./ioscpy
La fase di build rimane come tuo utente così un cargo installato tramite rustup viene trovato.
install-host è un target separato che copia semplicemente il binario compilato, quindi
funziona bene sotto sudo senza bisogno di cargo nel PATH di root. Per un'installazione
senza sudo nella tua home, usa make install-host PREFIX=$HOME/.local e assicurati
che $HOME/.local/bin sia nel tuo PATH.
La decodifica H.264 funziona su Linux tramite il decoder software openh264. Passa
--mjpeg se preferisci il percorso MJPEG.
Sui compositori Wayland che rifiutano le decorazioni lato server (GNOME/mutter),
ioscpy ripiega automaticamente su X11/XWayland così la finestra ottiene una normale
barra del titolo. Passa --wayland per rimanere su Wayland nativo.
Non esiste ancora un prebuilt per Windows. Compila l'host dai sorgenti. Il pacchetto per il dispositivo è lo stesso di macOS e Linux, installato dal repo Sileo/Zebra.
ioscpy su Windows riutilizza gli strumenti USB che un setup iOS già possiede, e non sostituisce alcun driver, quindi Frida, objection, grapefruit, ideviceinfo, iTunes e qualsiasi altro strumento usbmux continuano a funzionare mentre è in esecuzione.
Apple Mobile Device Support: installato con iTunes da apple.com (prendi la build dal sito Apple, non quella del Microsoft Store), o il pacchetto AMDS standalone. Questo fornisce il driver USB e usbmuxd. iTunes deve vedere il telefono.
libimobiledevice-win32: fornisce iproxy.exe, idevice_id.exe,
ideviceinfo.exe. Installa con Scoop:
scoop install libimobiledevice
o con MSYS2:
pacman -S mingw-w64-x86_64-libimobiledevice
Assicurati che i tre file .exe siano nel tuo PATH (o mettili accanto a
ioscpy.exe). Verifica con idevice_id -l, che dovrebbe stampare l'UDID del tuo dispositivo.
openh264
compila una piccola libreria C tramite cc).PATH: l'assembler di openh264 (scoop install nasm).git clone https://github.com/lautarovculic/ioscpy
cd ioscpy
cargo build --release --manifest-path host/Cargo.toml
.\host\target\release\ioscpy.exe --list # confirms the device is seen
.\host\target\release\ioscpy.exe # opens the mirror window
Passa --mjpeg se preferisci il percorso MJPEG rispetto a H.264. Se openh264 non riesce a
compilare, verifica che nasm sia nel PATH.
Dopo un respring o una nuova connessione, dai al telefono un tocco fisico sul suo schermo prima di pilotarlo dall'host. iOS si fida solo degli eventi touch che provengono dal digitizer reale, quindi quel primo tocco reale è ciò che permette a quelli iniettati di passare. Lo fai una volta, poi l'host prende il controllo.