تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال حول حماية لعبة & IsDebuggerPresent
#11
(13-09-2020, 05:41 PM)Cyros كتب : جربت نزل لعبة نسخة اصلية بدون كراك لكي اجاول ان اقوم بكسرها
حمايتها من نوع: 
SafeDisc 2.80.010 -> Macrovision [Overlay]

لدراسة مثل هذه الحماية تحتاج إلي استخدام نظام Windows ويفضل أن يكون XP، لكن إذا كان النظام Vista أو Windows 7 فيجب أن يكون بدون التحديث KB3086255؛ لإنه يوقف عمل هذه الحماية لأسباب أمنية، بالإضافة إلي استخدام DAEMON Tools أو Alcohol 120% لمحاكاة صورة من القرص المدمج الخاص باللعبة كي تستطيع تنقيحها بشكل سليم.
(13-09-2020, 05:41 PM)Cyros كتب :  عندما حملتها في OllyDbg كانت جميع الدوال سليمة
هل هذا يعني انه ليست محمية وانما مضغوطة  packer ؟

إذا كنت تحمل ملف اللعبة المحمي فالأغلب أن ما تراه هو دوال خاصة ب Loader المسؤول عن فك التشفير، فالحماية في الإصدار الأول لها كانت تقوم بتشفير ملف اللعبة بامتداد ICD. بالإضافة لملف اخر لفك التشفير وتم دمج الملفين إلي ملف واحد في الإصدار الثاني.
(13-09-2020, 05:41 PM)Cyros كتب : بعد ان حملتها OllyDbg جربت اشغلها ولكن حدث  Terminater
بعدها وضعت نقطة توقف على دالة ْIsDebuggerPresentt وبعد توقف البرنامج عندها جعلته يقفز للمكان الذي لم يكن سيقفز عليه
ولكن ايضا حدث Terminater

الحماية تستخدم هذه الآليات لكشف المنقح:
  • IsDebuggerPresent().
  • .PEB!IsDebugged
  • ZwQueryInformationProcess().
يمكنك تجاوز هذه الآليات إما يدوياً أو باستخدام إضافة، وتوجد آليه اخري في الإصدارات الأحدث نسبياً؛ حيث تقوم الحماية بإنشاء ملف تنفيذي مؤقت يقوم بتنقيح الملف الرئيسي، مما يمنع تنقيحه باستخدام أي منقح آخر من فئة (Ring 3) مثل OllyDbg أو x64dbg، وتعتمد هذه الآلية علي إنشاء ملف تنفيذي مؤقت، وتنتظر الحماية إشارة منه باستخدام الدالة WaitForSingleObject، ويقوم هذا الملف المؤقت بعمل Attach للملف الرئيسي وإرسال هذه الإشارة ثم يكمل تنقيحه.

تستطيع التغلب علي هذه الآلية إما عن طريق التعديل علي الدالة WaitForSingleObject وتغيير الزمن من لا نهائي إلي صفر، أو منع الحماية من إنشاء هذا الملف التنفيذي المؤقت عن طريق عدم تنفيذ الدالة CreateProcessA، وستحتاج إلي إجراء بعد التعديلات أثناء التنقيح كي لا يحدث خطأ أثناء تنفيذ البرنامج.
أعضاء أعجبوا بهذه المشاركة : rce3033 , Cyros , TITANIUM
#12
(28-12-2021, 08:42 PM)Venom كتب : لدراسة مثل هذه الحماية تحتاج إلي استخدام نظام Windows ويفضل أن يكون XP، لكن إذا كان النظام Vista أو Windows 7 فيجب أن يكون بدون التحديث KB3086255؛ لإنه يوقف عمل هذه الحماية لأسباب أمنية، بالإضافة إلي استخدام DAEMON Tools أو Alcohol 120% لمحاكاة صورة من القرص المدمج الخاص باللعبة كي تستطيع تنقيحها بشكل سليم

استعملت Windows 7 x86 Lite إصدار خفيف خالي من الإضافات والتحديثات، وحسب ما قرأت إن اللعبة لا تعمل على ويندوز 8 وما فوق لإنه يتم حظر الدرايفر SecDRV.sys الموجود بالقرص الأول.. 
Alcohol 120% أعلم إنه يستخدم لعمل صورة لقرص اللعبة ولدي صورة "ISO" لكل قرص من القرصين الخاصين باللعبة. 
​​​​بالنسبة للحماية فهناك ملفين 
ما توصلت إليه
generals.exe 73KB مطلق خاص لمحرك اللعبة لايمكن إطلاق محرك اللعبة game.dat بدونه، جزء كبير منه مشفر .
game.dat ~5MB وهو ملف تنفيذي ومحرك اللعبة الاساسي وهو غير محمي وغير مشفر ولا يحتاج للتعديل عليه .
generals.exe عند تشغيله ينشئ مكتب df394b.tmp بمجلد المؤقتات Temp ثم ينفذ الدالة WaitForSingleObject  ولكن في حال إلغاء هذه العملية مثلما ذكرت سينفذ بعض عمليات المقارنة والقفزات لينتهي بقفزة لعنوان نقطة الدخول الأصلية OEP وهي نفس عنوان نقطة البداية في الاصدار المكرك لكن البيانات مختلفة  لانه لم يفك التشفير بعد وسيحدث Terminater
 المكتبة مسؤولة على التحقق من المنقح Anti-Debug وهو من السهل تخطيه بمجرد وضع نفطة توقف على IsDebuggerPresent 
​​​​وبدء التتبع وتغيير القفزات بدءا من مكان استدعاء IsDebuggerPresent حتى ثاني تعليمة ارجاع RET ستنفذ.
تقوم المكتبة بالتحقق من جميع الأقراص الموجودة وما هي طبيعتها عبر دوال ك GetDriverType وترجع 3 في حال كان وسائط يمكن إزالتها وإن لم يكن هناك تخرج رسالة إدخال القرص الأول .
إن وجد، تقوم بالتحقق من وجود ملف 256.00000000 في مجلد اللعبة ولم استطع معرفة  دور هذا الملف ثم عن وجود ملف 00000001.TMP بالقرص وحجمه 2KB و اظن ان فيه مفتاح فك التشفير وهو من المفترض أن يكون بقطاع خاص sector  تشير اليه اللعبة بعنوان ان وجد سيتم إظهار رسالة يتم التحميل لكن ظهر لي رسالة ادخل القرص لاتوقف عند هذه المرحلة.
​​​​معظم الشروحات القليلة المتوفرة على هذه الحماية تتكلم عن المرحلة بعد فك تشفير اي من المفترض وجود القرص الاصلي ولم ارى احد يتكلم فيها عن عملية فك التشفير.
( وَفِىٓ أَنفُسِكُمْ ۚ أَفَلَا تُبْصِرُونَ )
أعضاء أعجبوا بهذه المشاركة :
#13
(29-12-2021, 09:06 AM)Cyros كتب : استعملت Windows 7 x86 Lite إصدار خفيف خالي من الإضافات والتحديثات، وحسب ما قرأت إن اللعبة لا تعمل على ويندوز 8 وما فوق لإنه يتم حظر الدرايفر SecDRV.sys الموجود بالقرص الأول.. 

يمكنك تشغيلها علي Windows 8 ما لم يتم تثبيت التحديث الذي أشرت إليه سابقاً، ويمكن أيضاً تشغليها علي Windows 10 عن طريق توقيع الدرايفر الخاص بالحماية بالإضافة إلي تعطيل خاصية Driver Signature Enforcement.
(29-12-2021, 09:06 AM)Cyros كتب : Alcohol 120% أعلم إنه يستخدم لعمل صورة لقرص اللعبة ولدي صورة "ISO" لكل قرص من القرصين الخاصين باللعبة. 

لا أقصد ملف ISO، ولكن ما اعنيه Backup يتم إنشائه من الاسطوانة الحقيقية به البيانات المطلوبة لتشغيل اللعبة، ستجد هذه الصورة علي موقع GCW.
(29-12-2021, 09:06 AM)Cyros كتب : إن وجد، تقوم بالتحقق من وجود ملف 256.00000000 في مجلد اللعبة ولم استطع معرفة  دور هذا الملف ثم عن وجود ملف 00000001.TMP بالقرص وحجمه 2KB و اظن ان فيه مفتاح فك التشفير وهو من المفترض أن يكون بقطاع خاص sector  تشير اليه اللعبة بعنوان ان وجد سيتم إظهار رسالة يتم التحميل لكن ظهر لي رسالة ادخل القرص لاتوقف عند هذه المرحلة.

ربما يمكنك البحث عن الخوارزمية المسؤولة عن فك التشفير ودراستها؟ ستاعدك نقاط التوقف من نوع Break-point On Memory Access كثيراً للوصول إلي المكان المسؤول، والإصدارات السابقة للحماية كانت تقوم بحساب المفتاح بمساعدة القطاعات التالفة الموجودة علي القرص المدمج، وكان بالإمكان عمل Brute Force لفك التشفير.

يمكنك استخدام الصورة الموجودة علي موقع GCW لدراسة الحماية بشكل كامل اولاً، ثم بعد ذلك التعمق في كل جزء علي حدة.
أعضاء أعجبوا بهذه المشاركة : Cyros
#14
تفضل اخي اطلع
https://www.apriorit.com/dev-blog/367-an...g-software
أعضاء أعجبوا بهذه المشاركة :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 4 ) ضيف كريم