الديبغر عبارة عن برنامج دوس وضيفتة الأساسية تصحيح البرامج 16 بت
ولكن لة أهمية كبيرة في أمور كثيرة منها
تصحيح البرامج
الوصول إلى مناطق حساسة في الذاكرة وتغيرها
كتابة أصغر برامج للكمبيوتر
حماية الأقراص وفك حمايتها
إضافة نقاط توقف للهاردوير (أسرع طريقة لكشف أخطاء العتاد الصلب)
مراقبة الإتصالات عبر المنافذ
---------------------------
صمم الديبغر لتصحيح البرامج ولكنة لم يستخدم على نطاق واسع في تصحيح البرامج
لسبب قد يكون صعوبة الديبغر نفسة في التصحيح ولذالك
سنتجاوز هذة المرحلة لأنة توجد برامج كثيرة للتصحيح أسهل من الديبغر
الوصول لمناطق حساسة في الذاكرة
أكيد نبدأ بمثال شغل الديبغر
Start ->Run
وأكتب
debug
وإضغط أوكي
ستظهر لك نافذة دوس فارغة بها خط بسيط يستقبل الأوامر
بعد ما يشتغل الديبغر بنكتب مثال بسيط هذا المثال سيغير في ذاكرة
الشاشة أحادية اللون التي هي شاشة الدوس عن طريق البرمجة المباشر للذاكرة
أكتب عند علامة
-
e b800:0000
لاحظ المسافة بين الحرف والعنوان
وإضغط زر إنتر
تلاحظ إنة ظهر لك عنوان الذاكرة وبجانبة بايت بالقيمة الست عشرية وبجانبة نقطة وبجانبة مؤشر الكتابة
عند مؤشر الكتابة أكتب
41
وإضغط مفتاح المسافة سبيس أطول مفتاح في الكيبورد وأكتب
09
وإضغط سبيس ماذا تلاحظ في شاشة الدوس أول حرف تحول لحرف A وبلون أزرق
وهكذا كمل
42
سبيس
05
سبيس
وهكذا
لا حظ التغيير المباشر في الذاكرة يغير في شاشة العرض
للخروج من الديبغر إكتب q ثم إنتر
هذا مثال بسيط لفهم ما يقوم بة الديبغر وتستطيع أن تكتب إلى أي مكان في الذاكرة
كتابة أصغر برامج للكمبيوتر
هذة الطريقة لكتابة البرامج تمكنك من فهم أدق تفاصيل البرامج ومترجمات البرامج
ولنفرض أنك لا تملك مترجم للغة برمجة وتريد كتابة برنامج بسيط هل يمكنك كتابتة
أكيد وإليك المثال التالي
-a 100 0B24:0100 mov ah,09 0B24:0102 mov al,41 0B24:0104 mov bh,0 0B24:0106 mov bl,09 0B24:0108 mov cx,10 0B24:010B int 10 0B24:010D ret 0B24:010E -e 100 0B24:0100 B4. 09. B0. 41. B7. 00. B3. 09. 0B24:0108 B9. 10. 00. CD. 10. C3. -r cx CX 0000 :e -n d:\jaas.com -w Writing 0000E bytes -
في ملاحظات على الكود عندما تكتب
e 100
وتضغط إنتر
تقوم بإدخال أول بايت للذاكرة لتكملة إدخال باقي البايتات تضغط على زر المسافة
التعليمة
r cx
تقوم بإدخال حجم البرنامج بالبايت وهو بالرقم الست عشري
e
ويساوي 14
هذا بالنسبة للكود ولكن لو واحد سأل لماذا بدأنا الكود عند العنوان 100 كما هو موضح
a 100
لأن الديبغر عندما يبدأ يكون المسجل ip = 100
وهو بداية الشفرة التنفيذية للبرنامج
لمعرفة محتويات كل المسجلات عند تشغيل الديبغر أكتب
r
ثم إنتر
-r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B24 ES=0B24 SS=0B24 CS=0B24 IP=0100 NV UP EI PL NZ NA PO NC
وتستطيع أن تغير قيمة المسجل قبل أن تبدأ بكتابة البرنامج
وفي شيء مهممممم جدا هنا تقدر تسرق برامج النظام المقيمة في الذاكرة
وهي برامج سرية يستخدمها النظام وأكيد بتواجهة مقاومة شرسة من النظام لا نريد الخروج عن الموضوع
المهم بعد كتابة البرنامج جربة وشوف مع ملاحظة أن البرنامج سيعمل في كل أجهزة الكمبيوتر
حتى لو لم يكن هناك نظام تشغيل
حماية الأقراص وفك حمايتها
من أهم المواضيع في الديبغر معالجة الأقراص
لو تعرضت لفايروس وهذا الفايروس قام بالتغيير في قطاع الإقلاع في القرص الصلب
كيف ستعيد قطاع الإقلاع إلى وضعة الطبيعي
ملاحظة برنامج الديبغر موجود في قرص الطواريء أو start up
الذي تنشأة من خلال النظام
مثال سيكون مثالنا على قرص مرن للتعليم
أدخل القرص المرن ثم شغل برنامج الديبغر وأكتب
L 0 0 0 1
مع ملاحظة المسافة بين الحروف والأرقام
معنى هذا الأمر
الصفر الأول معناة السواقة A
الصفر الثاني الموقع في الذاكرة وهو الموقع الذي سيحمل إلية القطاع
الصفر الثالث رقم القطاع وهو 0 أي قطاع الإقلاع
الواحد معنى عدد القطاعات التي تريد تحميلها
ولتستعرض محتوى القطاع
D 0000:0000
وللتغيير في المحتوى
E 0000:0000
ومع كل بايت تغيرة إضغط زر المسافة
وللكتابة في القطاع
W 0 0 0 1
الصفر الأول عنوان القطاع المعدل في الذاكرة
الصفر الثاني يمثل السواقة
الصفر الثالث رقم القطاع المستبدل في السواقة
الواحد عدد القطاعات
وهكذا
-------------------------
بقي أمور كثيرة في الأقراص وخاصة الحماية وفك الحماية
وسنكمل باقي الدروس في أقرب فرصة أجدها وسنكمل الإبحار في
البرنامج المنسي الديبغر
وإلى اللقاء
أي إستفسار عن الموضوع لا تترد في طرحة
------------------
هذا والله أعلم


