
حقن Dylib لنظام iOS 11.0 - 11.1.2 مع كسر حماية LiberiOS وElectra
حقن مكتبات dylib بسهولة على أجهزة iOS 11.0 - 11.1.2 المهكرة 64-بت. متوافق مع أدوات الكسر Electra و LiberiOS.
تقوم bfinject بتحميل مكتبات dylib عشوائية في تطبيقات App Store قيد التشغيل. لديها دعم مدمج لفك تشفير تطبيقات App Store، وتأتي مع iSpy و Cycript.
bfinject هي غلاف يتولى التوقيع الصحيح لمكتبات dylib قبل حقنها باستخدام bfinject4realz. وهي مستقلة تمامًا، ولا تتطلب jailbreakd أو QiLin أو أي شيء من هذا القبيل. إنها تعمل فحسب.
ملاحظة: لا تعمل bfinject على Electra إذا كان خيار "Tweaks" مفعّلًا. أعد التشغيل ثم أعد تشغيل Electra بدون tweaks لاستخدام bfinject. إذا رأيت أخطاءً تتعلق بـ "thread_create"، فهذا هو السبب.
ملاحظة: bfdecrypt متاحة كمكتبة dylib مستقلة هنا: https://github.com/BishopFox/bfdecrypt/
wget في Electra بروتوكول SSL.ssh root@your-device-ip # (the password is 'alpine')
mkdir bfinject
cd bfinject
wget http://<your_server>/bfinject.tar
tar xvf bfinject.tar
wget في LiberiOS بروتوكول SSL.ssh root@your-device-ip # (the password is 'alpine')
export PATH=$PATH:/jb/usr/bin:/jb/bin:/jb/sbin:/jb/usr/sbin:/jb/usr/local/bin:
cd /jb
mkdir bfinject
cd bfinject
wget http://<your_server>/bfinject.tar
tar xvf bfinject.tar
bash bfinject للحصول على المساعدةbash وإلا لن يعمل. بسبب بيئة الحماية (Sandbox) وهكذا دواليك.-bash-3.2# bash bfinject
Syntax: bfinject [-p PID | -P appname] [-l /path/to/yourdylib | -L feature]
For example:
bfinject -P Reddit.app -l /path/to/evil.dylib # Injects evil.dylib into the Reddit app
or
bfinject -p 1234 -L cycript # Inject Cycript into PID
or
bfinject -p 4566 -l /path/to/evil.dylib # Injects the .dylib of your choice into PID
Instead of specifying the PID with -p, bfinject can search for the correct PID based on the app name.
Just enter "-P identifier" where "identifier" is a string unique to your app, e.g. "fing.app".
Available features:
cycript - Inject and run Cycript
decrypt - Create a decrypted copy of the target app
test - Inject a simple .dylib to make an entry in the console log
ispy - Inject iSpy. Browse to http://<DEVICE_IP>:31337/
قبل القيام بأي شيء أكثر تعقيدًا، اختبر أنه يعمل. تحتوي bfinject على اختبارات ذاتية مدمجة. إليك مثال باستخدام تطبيق Reddit كهدف:
Cs-iPhone:~ root# bash bfinject -P Reddit -L test
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/55C94FAA-A282-4FDC-967D-6A012D01087E/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 486.
[bfinject4realz] Calling thread_create() on PID 486
[bfinject4realz] Looking for ROP gadget... found at 0x1019a2ba0
[bfinject4realz] Fake stack frame at 0x12ac5c000
[bfinject4realz] Calling _pthread_set_self() at 0x182bfb814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1829bb460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c016e1c0
[+] So long and thanks for all the fish.
على شاشة الجهاز يجب أن ترى ما يلي:
إذا لم يحدث ذلك، فشيء ما معطّل ;)
إليك مثالًا لفك تشفير تطبيق Reddit على iPhone مكسور الحماية عبر Electra:
Cs-iPhone:~ root# bash bfinject -P Reddit -L decrypt
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/BCEBDD64-6738-45CE-9B3C-C6F933EA0793/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 3218.
[bfinject4realz] Calling thread_create() on PID 3218
[bfinject4realz] Looking for ROP gadget... found at 0x1016a5110
[bfinject4realz] Fake stack frame at 0x10a06c000
[bfinject4realz] Calling _pthread_set_self() at 0x181303814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1810c3460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c03e1100
[+] So long and thanks for all the fish.
سترى هذه الشاشة على جهازك:
عند اكتمالها، ستظهر لك رسالة تنبيه تسألك عما إذا كنت تريد تشغيل خدمة يمكنك من خلالها تنزيل ملف IPA المفكوك تشفيره:
إذا نقرت على Yes، سيتم تشغيل خدمة على المنفذ 31336 في جهازك. اتصل بها وستُرسل إليك نسخة خام من ملف IPA يمكن تنزيلها باستخدام netcat كما يلي:
carl@calisto-3 /tmp $ nc 192.168.1.33 31336 > decrypted.ipa
carl@calisto-3 /tmp $ ls -l decrypted.ipa
-rw-r--r-- 1 carl wheel 14649063 Jan 25 16:57 decrypted.ipa
carl@calisto-3 /tmp $ file decrypted.ipa
decrypted.ipa: iOS App Zip archive data, at least v2.0 to extract
بدلاً من ذلك، تحقق من سجل وحدة التحكم (console log) الخاص بالجهاز، فسيخبرك بمكان تخزين ملف IPA المفكوك. على سبيل المثال:
[dumpdecrypted] Wrote /var/mobile/Containers/Data/Application/6E6A5887-8B58-4FC5-A2F3-7870EDB5E8D1/Documents/decrypted-app.ipa
يمكنك أيضًا البحث في نظام الملفات عن ملف IPA كما يلي:
find /var/mobile/Containers/Data/Application/ -name decrypted-app.ipa
يمكن إخراج ملف .ipa من الجهاز باستخدام netcat. على حاسوبك المحمول، جهّز خدمة استماع:
ncat -l 0.0.0.0 12345 > decrypted.ipa
وعلى الجهاز المهكّر:
cat /path/to/decrypted.ipa > /dev/tcp/<IP_OF_YOUR_COMPUTER>/12345
سيكون ملف .ipa نسخة طبق الأصل من ملف .ipa الأصلي القادم من App Store، باستثناء أن الملف الثنائي الرئيسي وجميع أُطر العمل والمكتبات المشتركة المرافقة له ستكون مفكوكة التشفير. وستكون قيمة علم CRYPTID صفرًا في كل ملف كان مشفّرًا سابقًا. يمكنك أخذ ملف .ipa واستخراج التطبيق وتعديله حسب الحاجة، ثم إعادة توقيعه بشهادة المطوّر الخاصة بك، ونشره على الأجهزة غير المهكرة عند الحاجة.