04-05-2020, 06:55 AM
(آخر تعديل لهذه المشاركة : 04-05-2020, 06:59 AM بواسطة ahmed_1337.)
كما تعلمون ال virtual machine هي محاولة ل عمل محاكات لل الجهاز لاكن هادا اخير يضل فيه الكتير من العيب ونقص
كمتال بسيط انه بعض instructions لا تشتغل بشكل مطلوب وفي ما قبل ايام ال binary translation كان الكتير من instruction غير مدعومة
ما هي non-maskable interrupt هي interrupt لا تستطيع عمل لها mask متل power on rest حيت لا تستطيع ايقافها ب المعنى الحرفي
معضم مطويري virtual machine يقومون باشيء لتسهيل عملهم كتمال بسيط هوا انه يعمل تشارك في IDT و PIC بين guest و host وهادا شي خطير نوعا ما ف ادا تمكنت من وصول لل kernel land في guest تستطيع تحكم في host
لأن هادا اخير IDT هوا جدول يوجد به كل interrupt و handler تبعاها مادا لوا قما بتبديل handler خاصة ب interrupt تبع mouse ب شيء متل print hello world كل مرة تقوم ب تحريك ال mouse رح ينطبع hello world هادا بس تبسيط للفهم فقط
بنسبة لل PIC فهوا chipset في الكمبيوتر تقوم بمعالجة ال interrupts ولها configuration خاصة فيها وفي حالة وصول لهاده config وتعديل عليه فقد نسبب مشاكل متلا نبدل في priority بين interrupts تبع timer و disk controller نعمل لهم swap
xD هادا رح يخربق كل شي على كل لا اريد ان اطيل عليكم
كيف يشتغل هادا نوع من الهرب
نحتاج ل guest يتوفر على 2 core سواء logical او physical لا يهم
حيت سوف نقوم بعمل registration ل callback خاص ب عمل handling لل non-maskable interrupt
وبعدين سوف نقوم ب محاولة لجعل core 1 يطبق عملية vm_exit و في نفس الوقت سوف يرسل core 2
interrupt من نوع non maskable مما سوف يدعنا ننفد ننفد handler في context خاص ب ال host لي في هاده الحالة vmm
اعمل له compile ب debug عشان تقدر تشوف output في Dbgview خاصة ب sysinternals على كل هاد شي لا ينطبق على
vmm متل vmware و virtual box و كبار لاكن قد تجده في handmade honeypot
على كل لعمل load لل driver
sc create driverName type= kernel binPath= C:driver.sys
sc start driverName
بعدين راقب في dbgview
اريد ان اشير لطريقة جميلة لل anti debug وهي تغير handler خاص ب int 3 في هاده الحالة نتكلم عن trap و ليس interrupt لاكن نفس شيء تقريبا
كمتال بسيط انه بعض instructions لا تشتغل بشكل مطلوب وفي ما قبل ايام ال binary translation كان الكتير من instruction غير مدعومة
ما هي non-maskable interrupt هي interrupt لا تستطيع عمل لها mask متل power on rest حيت لا تستطيع ايقافها ب المعنى الحرفي
معضم مطويري virtual machine يقومون باشيء لتسهيل عملهم كتمال بسيط هوا انه يعمل تشارك في IDT و PIC بين guest و host وهادا شي خطير نوعا ما ف ادا تمكنت من وصول لل kernel land في guest تستطيع تحكم في host
لأن هادا اخير IDT هوا جدول يوجد به كل interrupt و handler تبعاها مادا لوا قما بتبديل handler خاصة ب interrupt تبع mouse ب شيء متل print hello world كل مرة تقوم ب تحريك ال mouse رح ينطبع hello world هادا بس تبسيط للفهم فقط
بنسبة لل PIC فهوا chipset في الكمبيوتر تقوم بمعالجة ال interrupts ولها configuration خاصة فيها وفي حالة وصول لهاده config وتعديل عليه فقد نسبب مشاكل متلا نبدل في priority بين interrupts تبع timer و disk controller نعمل لهم swap
xD هادا رح يخربق كل شي على كل لا اريد ان اطيل عليكم
كيف يشتغل هادا نوع من الهرب
نحتاج ل guest يتوفر على 2 core سواء logical او physical لا يهم
حيت سوف نقوم بعمل registration ل callback خاص ب عمل handling لل non-maskable interrupt
وبعدين سوف نقوم ب محاولة لجعل core 1 يطبق عملية vm_exit و في نفس الوقت سوف يرسل core 2
interrupt من نوع non maskable مما سوف يدعنا ننفد ننفد handler في context خاص ب ال host لي في هاده الحالة vmm
اعمل له compile ب debug عشان تقدر تشوف output في Dbgview خاصة ب sysinternals على كل هاد شي لا ينطبق على
vmm متل vmware و virtual box و كبار لاكن قد تجده في handmade honeypot
على كل لعمل load لل driver
sc create driverName type= kernel binPath= C:driver.sys
sc start driverName
بعدين راقب في dbgview
اريد ان اشير لطريقة جميلة لل anti debug وهي تغير handler خاص ب int 3 في هاده الحالة نتكلم عن trap و ليس interrupt لاكن نفس شيء تقريبا