نشرها أندريه باتوتين ، كبير مطوري iOS ، DataArt.أكثر من مرة أو مرتين ، عندما جئت إلى العمل (أو خرجت للتو من الفراش) ، وجدت خطابًا غاضبًا في البريد ، كان جوهره أنه لا يوجد شيء يعمل في تجميع التطبيق للتطبيق ، ويجب إصلاح كل شيء على وجه السرعة.
في بعض الأحيان كان السبب هو ضحولي. في بعض الأحيان زملائي. وأحيانًا حتى
شركة Apple نفسها .
لكن أكثر السيناريوهات فتكًا كانت مرتبطة بالأخطاء التي تم استنساخها فقط على إصدارات التطبيق / الإصدار. لا شيء محير ويجعلك تعوي قبل جهاز Macbook ، مثل عدم القدرة على توصيل مصحح الأخطاء بتطبيقك الخاص ومعرفة ما يحدث هناك.
يتم إنشاء صعوبات مماثلة من قبل
APNS واستكشاف الأخطاء وإصلاحها في الإصدار / التجميعات
المؤقتة .
في تلك التجميعات حيث توجد بيئة APNS للإنتاج ، لا يمكنك توصيل مصحح أخطاء.
في تلك التجميعات حيث يوجد مصحح أخطاء ، لا توجد دفعات إنتاج APNS. لكنهم يسقطون عادة.
التفاح ، مثل إله العهد القديم ، بيد واحدة يمنح منصة حيث سيتم كسر الحماية بسرعة في
التاريخ (وتبقى القرصنة في App Store عند مستوى الخطأ الإحصائي) ، والأخرى تجعل المطور يشعر وكأنه قريب فقير ، أوليفر تويست الصغير ، الذي تجرأ على طلب المزيد من العصيدة.
التعليق الصوتي: "العم أبل ، من فضلك أعطني شهادة توزيع أخرى ..."بالنسبة للمبرمج العادي ، كان من المستحيل تقريبًا القيام بشيء مع بناء الإصدار / appstore لتطبيق iOS. كان من الأسهل الإقلاع عن التدخين قبل الإصدار.
باختصار:
يتم توقيع الإصدار من قبل شهادة التوزيع ويستخدم ملف تعريف إدارة التوزيع. يحظر الاستحقاق إرفاق مصحح أخطاء لعملية التطبيق. بالإضافة إلى ذلك ، عند تنزيل ipa من App Store ، يتم تشفير الثنائي أيضًا. يتم توقيع إضافات التطبيقات بشكل منفصل.
أي ، يبدو أن مؤلف التطبيق قادر على أخذ وإعادة تجميع متجر App Store بشهادة باستخدام ملف تعريف التوفير. ولكن ما زلت بحاجة إلى معرفة كيفية القيام بذلك. ولكن حتى بعد ذلك ، يبقى السؤال حول كيفية توصيل المصحح بعملية التطبيق مفتوحًا.
لذلك ، يجب أن نركز بشكل حصري على عدم التكيف في مرحلة التطوير. والتقط جميع الأخطاء قبل أن يغادر التطبيق متجر التطبيقات. وسجلات ، المزيد من السجلات لإله السجلات!

لكن أفقًا جديدًا يلوح في الأفق مؤخرًا.

في
الجزء السابق
، التقينا مع فريدا ، إطار رائع لحقن الشفرة الديناميكية.
وتجاوزها مع تثبيت SSL في مشروع
FoodSniffer الممتاز.
في هذه المقالة سوف نتعرف على الإطار الذي تم إنشاؤه على أساس Frida ، والذي يسهل بشكل كبير التلاعب في إصدارات الإصدار من تطبيقات iOS.
يسمح
لك الاعتراض
بحقن FridaGadget في تجميع iOS وإعادة
تسجيله بالشهادة اللازمة وملف التعريف.
تحضير
أولا نحن بحاجة إلى بناء الإصدار من FoodSniffer.
ملاحظة مهمة - عند إنشاء ipa ، أوقف تشغيل "تضمين رمز البت لمحتوى iOS".

ثم نحتاج إلى ملف تعريف توفير للبناء.
للحصول عليه:
- قم بتثبيت التطبيق من خلال Xcode على الجهاز.
- ابحث عن FoodSniffer.app في الباحث.

- انتقل إلى حزمة FoodSniffer.

- انسخ ملف embedded.mobileprovision من هناك إلى المجلد باستخدام ipa للإصدار.

يجب أن تحصل على شيء مثل ما يلي:

بعد ذلك ، قم بتثبيت الاعتراض وفقًا
للتعليمات . أوصي بشدة باستخدام خيار virtualenv.
بالإضافة إلى الاعتراض ، سنحتاج إلى
نشر ios لتشغيل التطبيق المصحح على الجهاز.
أعد التوقيع على الطلب!
في المحطة ، اكتشف تجزئة هوية علامة الرمز التي نحتاجها:
العثور على الهوية الأمنية -p كود التوقيع -v
نحن مهتمون بهوية 386XXX ، لأنها تتوافق مع شهادة الدُفعة التي تم توقيع التطبيق بها أثناء التثبيت من خلال Xcode ، والتي حصلنا منها على ملف تعريف التوفير.
ادخل FridaGadget وأعد توقيع طلبنا:
اعتراض patchipa - مصدر FoodSniffer / FoodSniffer.ipa - توقيع الرمز 386XXX - تقديم ملف مضمن.
نتيجة لذلك ، يجب أن نحصل على
FoodSniffer-frida-codeigned.ipa .
الآن نحن بحاجة إلى نظام تشغيل
ios- install لتثبيت برنامج FridaGadget والاتصال به. هذه خطوة مهمة - إذا قمت ببساطة بتثبيت ipa على جهازك عبر iTunes أو Xcode ، فلن تعمل للاتصال بـ FridaGadget.
بعد تفريغ
FoodSniffer-frida-codeigned.ipa :
unzip FoodSniffer-frida-codeigned.ipaأطلقنا تطبيقنا المصحح على الجهاز:
ios-لنشر - حزمة حمولة / FoodSniffer.app -W -dإذا سار كل شيء على ما يرام ، فيجب أن يبدأ التطبيق على الجهاز ، وسنرى في المحطة:

الآن في علامة تبويب طرفية أخرى ، قم بتوصيل الاعتراض بـ FridaGadget:
استكشاف الاعتراض
ربح!
الكعك الذي يقدمه الاعتراض
تجاوز SSL تعلق
كل شيء بسيط هنا:
تعطيل ios sslpinning
الآن يمكنك بسهولة استخدام Proxy Server لمراقبة حركة تطبيقنا ، كما هو موضح في
الجزء الأول .
تفريغ UserDefaults
الحصول على ios nsuserdefaultsفي نهاية التفريغ ، يجب أن نرى
"mood_state" = "أنا جائع"
تفريغ سلسلة المفاتيح التطبيق
ios keychain dump
وهنا كلمة السر الخاصة بنا.
إحضار البيانات من قاعدة بيانات SQLite.في التطبيق ، أضفت قاعدة بيانات sqlite
chinook.db من هنا .
يسمح لك الاعتراض بإجراء الاستعلامات مباشرة إلى قاعدة البيانات على النحو التالي.
- الاتصال بقاعدة البيانات:
sqlite ربط chinook.db

- طلبها:
تنفيذ sqlite الاستعلام تحديد * من الألبومات

الخلاصة
يسمح الاعتراض وفريدا أخيرًا بالعمل العادي والبسيط نسبيًا مع إصدارات Ad Hoc و Distribution لتطبيقات iOS. يعودون إلى المبرمج القوة على تطبيقهم الخاص ، مختبئين خلف طبقات الحماية التي تغلف بها Apple تطبيقات iOS بعناية. بالإضافة إلى ذلك ، يعمل الاعتراض وفريدا على الأجهزة التي لا تعمل مع كسر الحماية. بالإضافة إلى ذلك ، فهي سهلة الاستخدام نسبيًا.
معهم ، آمل أن أجعل تطوير iOS رائعًا مرة أخرى. تجنب تقويض المقر الرئيسي الجديد لشركة Apple بأمان من الداخل.

روابط مفرطة (مفيدة)
طالب أمستردام حول موضوع علامة رمز iOS .
https://labs.mwrinfosecurity.com/blog/repacking-and-resigning-ios-applications/https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2016/october/ios-instrumentation-without-jailbreak/ .
كود مصدر تطبيق FoodSniffer iOS .
فريدا برقيةشكر خاص ل
@ manishrhll .
ملاحظة يجب تطبيق كل ما سبق على تطبيقاتهم فقط وعدم محاولة كسر "Tinder" أو أي شيء آخر. لا يزال لا يعمل!