سؤال

ما هي الطرق المقبولة للحد من قرصنة تطبيقات الآيفون والتي لا تنتهك عملية التقييم الخاصة بآبل؟

إذا كان تطبيقي "يتصل بالمنزل" لتوفير معرف الجهاز الفريد الذي يعمل عليه، فما هي المعلومات الأخرى التي سأحتاج إلى جمعها (على سبيل المثال، معرف Apple المستخدم لشراء التطبيق) لإنشاء رمز تسجيل صالح يسمح باستخدام التطبيق ؟وبالمثل، ما هو الرمز الذي سأستخدمه للوصول إلى تلك البيانات الإضافية؟

ما هي أفضل الأساليب التقنية المتاحة لحل هذه المشكلة في الوقت الحالي؟

(يرجى الامتناع عن إجابات غير البرمجة حول كيف أن القرصنة أمر لا مفر منه، وما إلى ذلك.أعلم أن القرصنة أمر لا مفر منه.ان مهتم ب الإجابات القائمة على البرمجة التي تناقش كيفية الحد منها.شكرا مقدما على تفهمك.)

هل كانت مفيدة؟

المحلول

تحديث

لو سمحت زيارة وقراءة

شكرا لchpwn في التعليقات.

الكود قديم جدًا!- 11 مايو 2009

توجد حاليًا طريقة أسهل لاكتشاف ما إذا كان تطبيق iPhone الخاص بك قد تم اختراقه لاستخدامه في القرصنة.لا يتطلب هذا منك التحقق من المعرفات الفريدة لجهاز iPhone مقابل قائمة المعرفات المقبولة.

يوجد حاليًا ثلاثة أشياء تفعلها المفرقعات:

  1. تحرير ملف Info.plist
  2. فك تشفير info.plist من الثنائي إلى UTF-8 أو ASCII
  3. إضافة لوحة مفاتيح إلى info.plist {signeridentity ، توقيع تطبيق Apple iPhone OS}

من الأسهل التحقق من هذا الأخير باستخدام هذا الرمز:

NSBundle *bundle = [NSBundle mainBundle]; 
NSDictionary *info = [bundle infoDictionary]; 
if ([info objectForKey: @"SignerIdentity"] != nil) 
{ /* do something */  }

بشكل عام، ليس لدينا SignerIdentity في أي من تطبيقات App Store التي نبنيها، لذا فإن التحقق من عدم وجود شيء ثم تنفيذ التعليمات المحددة من شأنه أن يجعل الأمر أكثر صعوبة على المتسللين والقراصنة.

لا أستطيع الحصول على الفضل في هذا لذا يرجى الزيارة كيفية إحباط المفرقعات IPA فون. هناك الكثير من المعلومات حول القرصنة على iPhone وكيفية الحد منها.

نصائح أخرى

كما أشار Andrey Tarantsov في التعليقات، فإن البحث عن سلسلة "SignerIdentity" في الملف الثنائي (باستخدام تطبيق مثل HexEdit) واستبدالها أمر سهل جدًا.

يمكنك تشفير هذه السلسلة، ولكن مرة أخرى، كل ما عليك فعله هو تغيير حرف واحد منها ولن يبحث التطبيق عن مفتاح "SignerIdentity" بعد الآن، بل عن مفتاح آخر ربما لا يكون موجودًا (وبالتالي فهو فارغ ).نظرًا لأن هذا المفتاح فارغ، يعتقد التطبيق أنه لم يتم اختراقه (نظرًا لأن SignerIdentity يجب أن يكون فارغًا إذا لم يتم اختراق التطبيق).

بدلاً من ذلك، أفضل التحقق من حجم ملف info.plist ومقارنته بقيمة مرجعية.لقد لاحظت أن إصدارات Simulator والأجهزة لا تحتوي على نفس حجم ملف info.plist.وينطبق الشيء نفسه على إصدارات التصحيح والإصدار والتوزيع.لذلك، تأكد من تعيين القيمة المرجعية باستخدام حجم ملف info.plist لبناء توزيع الجهاز.

كيفية البحث عن حجم الملف عند الإطلاق:

يبدو أن حفظ المجموع الاختباري MD5 لـ Plist والتحقق من CryptID يجب أن يعمل بشكل جيد حتى بعض الوقت.

يفحص iTunesMetadata.plist بالنسبة لتاريخ الشراء، كما هو الحال في بعض الأحيان، عندما يتم اختراق أحد التطبيقات، يتم تغيير هذا التاريخ إلى شيء غير عادي.

تحقق أيضًا لمعرفة ما إذا كان حقل اسم المشتري موجودًا.في تجربتي مع اختراق التطبيقات للاستخدام الشخصي، عادةً ما تتم إزالة ذلك.إذا كان أي شخص يعرف كيف تعمل الحماية ضد التفريغ في Temple Run، فيمكنك استخدام ذلك جنبًا إلى جنب مع بعض الحماية التي لا يمكن لـ poedCrackMod الحصول عليها (google poedCrackMod قم بإنشاء حساب hackulo.us، انتقل إلى مركز التطوير وابحث عن poedCrackMod، وقم بتثبيته على iDevice) .

القابض الذي لن يكسر الأشياء باستخدام Temple Run مثل الحماية، لديه ميزة تسمى OverDrive تهدف إلى إسكات اكتشاف الكسر في التطبيق.يحتوي poedCrackMod على LamestPatch، وهو ليس جيدًا.يعد poedCrackMod أيضًا برنامج نصي bash مفتوح المصدر يمكن إجراء هندسة عكسية له.للتلخيص، لديك تطبيق يتمتع بحماية النسخ التي لا يمكن التحايل عليها باستخدام القابض/زيادة السرعة ولكن يمكن اختراقها باستخدام poedCrackMod.ومع ذلك، لا يستطيع poedCrackMod التحايل على عمليات التحقق من قرصنة التطبيق.من الصعب تصحيح عمليات التحقق من التكامل يدويًا في الملف القابل للتنفيذ الخاص بالتطبيق.لذلك يصعب اختراق تطبيقك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top