
الآن يمكنك عكس شاشة والتحكم في جهاز iPhone المخترق الخاص بك عبر USB
ioscpy قيد التشغيل (محجوز، سيقوم المؤلف بتنفيذ هذا بالكامل)ioscpy لاسلكيًا (BLE، Wi-Fi) (محجوز، سيقوم المؤلف بتنفيذ هذا بالكامل)أداة سطر أوامر لنظام macOS وLinux وWindows تعكس وتتحكم في iPhone مكسور الحماية عبر USB.
مع جهاز واحد متصل، هذا كل ما تحتاجه. يتصل من تلقاء نفسه.
هناك جانبان. تطبيق Mac يشغّل الانعكاس، وحزمة iPhone تتيح التحكم في الهاتف. ثبّت كليهما.
على Mac، باستخدام Homebrew:
brew tap lautarovculic/ioscpy # the Mac app
brew trust lautarovculic/ioscpy
brew install ioscpy
ioscpy --version
على iPhone المكسور الحماية، أضف هذا المستودع في Sileo أو Zebra، ثم ثبّت ioscpy منه وأعد تشغيل SpringBoard:
https://lautarovculic.github.io/ioscpy-repo/
يحمل المستودع كلاً من إصدارات rootless وrootful، ويختار مدير الحزم الإصدار المطابق للجيلبريك.
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 ما يظهر على الشاشة المعكوسة إلى ملف MP4 أثناء تشغيل الجلسة. يتم دمج بث H.264 الذي يرسله الهاتف بالفعل مباشرةً في الملف، لذا لا يُعاد ترميز أي شيء وتكلفة التسجيل كتابة مُخزّنة مؤقتًا لكل إطار؛ وتبقى النافذة بنفس سرعة الاستجابة. لا يحمل البث أي صوت، لذا تكون التسجيلات صامتة. يبدأ إعادة الاتصال ملفًا جديدًا (out-2.mp4، out-3.mp4، …) بدلاً من الكتابة فوق الملف الذي كتبته الجلسة المنقطعة.
يبدأ المسار عند أول إطار رئيسي بعد بدء الجلسة، ويُنهى الملف عند إغلاق النافذة. يتبع التسجيل اتجاه البث نفسه، لذا تُخزّن الجلسة الملتقطة والهاتف في الوضع الأفقي مُدوّرة؛ ويصلح تدوير QuickTime، أو تمريرة واحدة ffmpeg -display_rotation 90 -i out.mp4 -c copy، ذلك دون إعادة ترميز أي منهما.
لا يوجد إصدار جاهز لـ Linux بعد. ابنِ المضيف من المصدر. حزمة الجهاز هي نفسها كما في macOS، وتُثبّت من مستودع Sileo/Zebra أعلاه.
استنسخ هذا المستودع، ثم شغّل المثبّت:
./install.sh
يتخطى --yes مطالبات التأكيد. يثبّت --prefix DIR في DIR بدلاً من /usr/local ويحذف sudo عندما يكون الدليل تحت $HOME. يزيل --uninstall الملف التنفيذي المثبّت.
المتطلبات المسبقة على 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
تأكد من تشغيل usbmuxd حتى يظهر الجهاز:
sudo systemctl enable --now usbmuxd
idevice_id -l # should print the UDID with the phone attached
ابنِ المضيف كمستخدمك، ثم ثبّت:
make host-release
sudo make install-host # installs to /usr/local/bin/ioscpy
ioscpy --version
يعمل ./install.sh أيضًا على Arch Linux.
sudo pacman -S --needed \
base-devel pkgconf nasm \
libimobiledevice usbmuxd \
libxkbcommon wayland libxcb libxkbcommon-x11 \
rustup curl git
rustup default stable
فعّل الخدمة
sudo systemctl enable --now usbmuxd.service
تحقق مما إذا كان الجهاز متصلاً
idevice_id -l
ثم شغّل الملف التنفيذي
cd host/target/release && chmod +x ioscpy
./ioscpy
تبقى خطوة البناء كمستخدمك حتى يتم العثور على cargo المثبّت عبر rustup. install-host هدف منفصل ينسخ الملف التنفيذي المبني فقط، لذا يعمل بشكل جيد تحت sudo دون الحاجة إلى cargo في PATH الخاص بـ root. لتثبيت بدون sudo في مجلدك الرئيسي، استخدم make install-host PREFIX=$HOME/.local وتأكد من أن $HOME/.local/bin موجود في PATH الخاص بك.
يعمل فك ترميز H.264 على Linux عبر مفكك الترميز البرمجي openh264. مرّر --mjpeg إذا كنت تفضل مسار MJPEG.
على مُركّبات Wayland التي ترفض الزخارف من جانب الخادم (GNOME/mutter)، يتراجع ioscpy تلقائيًا إلى X11/XWayland حتى تحصل النافذة على شريط عنوان عادي. مرّر --wayland للبقاء على Wayland الأصلي بدلاً من ذلك.
لا يوجد إصدار جاهز لـ Windows بعد. ابنِ المضيف من المصدر. حزمة الجهاز هي نفسها كما في macOS وLinux، وتُثبّت من مستودع Sileo/Zebra.
يعيد ioscpy على Windows استخدام أدوات USB التي يمتلكها إعداد iOS بالفعل، ولا يستبدل أي برنامج تشغيل، لذا تظل Frida وobjection وgrapefruit وideviceinfo وiTunes وأي أداة usbmux أخرى تعمل أثناء تشغيله.
Apple Mobile Device Support: يُثبّت مع iTunes من apple.com (احصل على إصدار موقع Apple، وليس إصدار Microsoft Store)، أو حزمة AMDS المستقلة. يوفر هذا برنامج تشغيل USB وusbmuxd. يجب أن يرى iTunes الهاتف.
libimobiledevice-win32: يوفر iproxy.exe وidevice_id.exe وideviceinfo.exe. ثبّته باستخدام Scoop:
scoop install libimobiledevice
أو باستخدام MSYS2:
pacman -S mingw-w64-x86_64-libimobiledevice
تأكد من أن ملفات .exe الثلاثة موجودة في PATH الخاص بك (أو ضعها بجانب ioscpy.exe). تحقق باستخدام idevice_id -l، الذي يجب أن يطبع UDID جهازك.
openh264 بترجمة مكتبة C صغيرة عبر cc).PATH: مُجمّع 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
مرّر --mjpeg إذا كنت تفضل مسار MJPEG على H.264. إذا فشل بناء openh264، تأكد من أن nasm موجود في PATH.
بعد إعادة تشغيل SpringBoard أو اتصال جديد، اضغط على شاشة الهاتف ضغطة مادية واحدة قبل التحكم فيه من المضيف. لا يثق iOS إلا بأحداث اللمس القادمة من الرقمنة الحقيقية، لذا فإن تلك اللمسة الحقيقية الأولى هي ما يسمح بمرور اللمسات المحقونة. تفعلها مرة واحدة، ثم يتولى المضيف الأمر.
على Linux وWindows، استخدم Ctrl بدلاً من Cmd لهذه الاختصارات (Ctrl+C، Ctrl+V، وهكذا)؛ لا تزال الحافظة تتزامن في الاتجاهين.
يؤدي تدوير الهاتف إلى تدوير الانعكاس وتغيير حجمه.
المضيفات:
الأجهزة:
| layout | device | iOS | injection |
|---|---|---|---|
| roothide | iPhone11,2 | 15.5 | ElleKit |
| roothide | iPhone10,4 | 16.7.12 | ElleKit |
| roothide | iPhone10,3 | 16.7.10 | ElleKit |
| roothide | iPhone14 | 16.3 | ------- |
| rootless | iPhone13 | 15.5 | ElleKit |
يُطوَّر ioscpy ويُختبر على الأجهزة أعلاه. ليس لدي جهاز rootful أو كل إصدار iOS في متناول اليد، لذا التغطية حسب التخطيط غير مكتملة: