24-01-2021, 10:19 AM
السلام عليكم و رحمة الله
شرح سريع للتمرين BlackSpace #02:
https://www.at4re.net/f/thread-2435.html
- التمرين مبني على آلية محاولة كشف البيئة التي يتم تشغيله فيها، اعتمادا على جلب معلومات المعالج.
- المعلومات التي نحاول جلبها هي قيمة البت رقم 31.
- حسب التوثيق قيمة البت رقم 31 هي دائما صفر في الأجهزة "الحقيقية" و واحد في الأجهزة "لافتراضية".
- لجلب المعلومات نستعمل الــ OPCODE المسمى CPUID اختصار لـ CPU Identification.
مراحل العملية (لاحظ الصورة) :
01 يمثل تمرير القيمة 1 للـ EAX يمكننا من تحديد ما نريده من معلومات، في حالتنا (EAX=1 (Processor Info and Feature Bits
02 تمثل وضع الــ OPCODE المسمى CPUID و النتيجة سوف تكون في ECX.
03 باعتماد الأمر TEST نلاحظ في الــ FLAGS ان العلم SF يحمل القيمة 0 او 1 (حالة الجهاز الحقيقي تكون القيمة 0 و في حالة الجهاز الافتراضي تكون القيمة 1)
الحل:
بما المطلوب في التمرين كان اظهار رسالة النجاح دون التعديل عليه و طبعا عند تشغيل التمرين في الجهاز الحقيقي يظهر رسالة الفشل، بعد فهم ما يجري يكفي تشعيله في الجهاز الافتراضي لكي يظهر رسالة النجاح...
ملاحظة:
بالنسبة للبرنامج VMWare فهو يتيح لنا التعديل على الاعدادات (ملف vmx) لتخطي الآلية التي تعتمد على البت رقم 31 و جعله دائما صفر.
يكفي اضافة هذا السطر:
شرح سريع للتمرين BlackSpace #02:
https://www.at4re.net/f/thread-2435.html
- التمرين مبني على آلية محاولة كشف البيئة التي يتم تشغيله فيها، اعتمادا على جلب معلومات المعالج.
- المعلومات التي نحاول جلبها هي قيمة البت رقم 31.
- حسب التوثيق قيمة البت رقم 31 هي دائما صفر في الأجهزة "الحقيقية" و واحد في الأجهزة "لافتراضية".
- لجلب المعلومات نستعمل الــ OPCODE المسمى CPUID اختصار لـ CPU Identification.
مراحل العملية (لاحظ الصورة) :
01 يمثل تمرير القيمة 1 للـ EAX يمكننا من تحديد ما نريده من معلومات، في حالتنا (EAX=1 (Processor Info and Feature Bits
02 تمثل وضع الــ OPCODE المسمى CPUID و النتيجة سوف تكون في ECX.
03 باعتماد الأمر TEST نلاحظ في الــ FLAGS ان العلم SF يحمل القيمة 0 او 1 (حالة الجهاز الحقيقي تكون القيمة 0 و في حالة الجهاز الافتراضي تكون القيمة 1)
الحل:
بما المطلوب في التمرين كان اظهار رسالة النجاح دون التعديل عليه و طبعا عند تشغيل التمرين في الجهاز الحقيقي يظهر رسالة الفشل، بعد فهم ما يجري يكفي تشعيله في الجهاز الافتراضي لكي يظهر رسالة النجاح...
ملاحظة:
بالنسبة للبرنامج VMWare فهو يتيح لنا التعديل على الاعدادات (ملف vmx) لتخطي الآلية التي تعتمد على البت رقم 31 و جعله دائما صفر.
يكفي اضافة هذا السطر:
cpuid.1.ecx="0---:----:----:----:----:----:----:----"
software analysis addict