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

منتدى الاحباب

منتدى يتواجد فيه كل ما هو جديد ومفيد
 
الرئيسيةأحدث الصورالتسجيلدخول
أهلا وسهلا بك زائرنا الكريم, أنت لم تقم بتسجيل الدخول بعد! يشرفنا أن تقوم بالدخول أو التسجيل إذا رغبت بالمشاركة في المنتدى والمنتدى فيه مزايا رائعة جدا ADMIN الدعوة عامة
الرجاء من جميع الأعضاء المسجلين الجدد الدخول إلى ايميلاتهم وتفعيل(تنشيط) عضويتهم لكي يتم الدخول على المنتدى بسهولة
بشرى سارة من الأن يمكنكم التواصل معنا بسهولة أكثر وذلك من خلال ارسال اقتراحاتكم وملاحظاتكم الينا عبر العنوان التالي: AL_AHBAB.MAM9@HOTMAIL.COM

 

 تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا

اذهب الى الأسفل 
كاتب الموضوعرسالة
anasabom




رقم العضوية : 6
عدد المساهمات : 245
نقاط : 7614
السٌّمعَة : 8
تاريخ التسجيل : 24/11/2010
الموقع : الرياض
لائحة الصور : بالشكر تدوم النعم من الله عز وجل
الدولة : سوريا
مهنتي : تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Progra10
تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Jb12915568671

تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا A5

تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Images?q=tbn:Msdp8TtKo8bCuM

تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Images?q=tbn:S9-KQvlLdgZP0M

تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا *******

تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Empty
مُساهمةموضوع: تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا   تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا Emptyالأحد 26 ديسمبر 2010, 2:02 am




الديبغر عبارة عن برنامج دوس وضيفتة الأساسية تصحيح البرامج 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

الصفر
الأول عنوان القطاع المعدل في الذاكرة

الصفر
الثاني يمثل السواقة

الصفر
الثالث رقم القطاع المستبدل في السواقة

الواحد عدد
القطاعات

وهكذا

-------------------------

بقي أمور
كثيرة في الأقراص وخاصة الحماية وفك الحماية

وسنكمل
باقي الدروس في أقرب فرصة أجدها وسنكمل الإبحار في

البرنامج
المنسي الديبغر









لك بقية
الدروس
تكملة الشرح

حماية الأقراص

ما معنى حماية القرص : هو التغيير في التنسيق أو الترتيب المعروف
للقرص منعا للنسخ

والمقصود من التنسيق هو عدد القطاعات وعدد المسارات والتجمعات وعلامات
القطاع



لتتمكن من حماية أي يقرص يجب أن نفهم بنية القرص

البنية الأساسية للقرص

بشرح سريع القرص يتكون من إسطوانات دائرية

هذة الإسطوانة تمر بها مسارات على شكل دائرة

هذة المسارات مقسمة إلى قطاعات

كل مجموعة قطاعات تسمى تجمع

والقطاع عبارة عن مجموعة بايتات عددها الإفتراضي 512

هذا التقسيم بالنسبة للبنية الفيزيائية للقرص

أما بالنسبة للبنية البرمجية

ينقسم القرص إلى خمس أقسام

1- سجل الإقلاع

2- جدول نظام الملفات ( فات)

3- منطقة الفهرسة

4- ملفات النظام

5- ملفات المستخدم



--------------

سجل الإقلاع
:

عبارة عن قطاع (في القرص المرن) أو عدة قطاعات (في القرص الصلب)

يحتوي على معلومات تقسيم القرص + برنامج الإقلاع للجهاز

ولتمييز قطاع الإقلاع فإنة يحمل توقيع في نهاية القطاع وهو 55AA

وإليك ترويسة المعلومات التي يحتويها هذا القطاع مرتبة بالرقم الست
عشري

03=بداية لإسم المصنع ونسخة دوس
0B=عدد البايتات في كل قطاع
0D=عدد القطاعات في كل تجمع
0E=عدد القطاعات في القرص
10=عدد نسخ الجدول فات
11=عدد المداخل في منطقة الفهرسة
13= عدد القطاعات الكلي للقرص الاقل من 32 ميجا
16=عدد قطاعات جدول فات
18= عدد القطاعات في كل مسار
1A=عدد رؤس القراة والكتابة وهو عدد اوجة القرص
1C=عدد القطاعات المخفية في القرص
20=عدد القطاعات الكلي للأقراص أكبر من32 ميجا
24=رقم السواقة الفيزائية مثل 80=سي
26=إشارة قطاع الإقلاع الموسع


وبعد هذة الترويسة يبدأ كود لبرنامج وضيفتة تحميل نظام التشغيل

بعد إنتهاء سجل الإقلاع مباشرة يبدأ قسم نظام الملفات

----------

جدول نظام الملفات: وهو عبارة عن مجموعة من القطاعات يكون عددها على
حسب حجم القرص

ويخزن فيها أرقام تدل على مواقع للقطاعات والتجمعات التي يحجزها ملف
ما

ذكرنا أن حجم القطاع 512 بايت

إذا خزنا ملف كبير في الحجم فإنة يأخذ أكثر من قطاع وقد يأخذ أكثر من
تجمع

عندما نطلب من النظام فتح هذا الملف كيف سيعرف كل القطاعات التي مخزن
فيها الملف؟

الجواب : سيعرف القطاعات عن طريق جدول فات أما بداية موقعها فعن طريق
منطقة الفهرسة

سيتم التوضيح بعد شرح منطقة الفهرسة

بمعنى أن جدول فات يمثل دليل للقطاعات التي يحجزها ملف ما

وبعض البايتات لها معنى في جدول فات مثل

أول بايت في الجدول إذا كان

F8= قرص صلب
F0=قرص مرن

أما بقية البايتات فتساوي

000=التجمع المقابل غير موجود
FF0=التجمع محجوز من قبل ملف
FF7=تشير إلى أنالتجمع سيء غير محجوز
FFF-FF8= تشير هذة القيمة إلى أن المدخل خاص بآخر تجمع في القرص
أما بقية الأرقام فهي تشير إلى رقم التجمع الخاص بالملف



-------------

منطقة الفهرسة : منطقة تحتوي على معلومات الملف المخزن مثل إسمة موقعة
تاريخ إنشائة

وأي ملف يخزن على القرص يكتب في منطقة الفهرسة هذة المعلومات

مرتبة على عدد البايتات

0-7= تخصص لإسم الملف وقد يكون البت 0 يبين حالة الملف
على النحو التالي:
E5=تم حذف الملف
2E=فهرس فرعي
05=ملف محمي
00= فهرس لم ستخدم من اي ملف


ملاحظة : هل تعلم أنك عندما تحذف ملف من القرص فإنك تغير هذا البايت
فقط

وهذة طريقة إسترداد الملفات المحذوفة بشكل نهائي من الملف بمعنى أنك
تغير أول بايت

نكمل
8-10=إمتداد الملف
11=مواصفات الملف ويكون على النحو التالي
01=مقروء فقط
02=مخفي
04= ملف نظام
8=لافتة إسم القرص
20= أرشيف
10= فهرس فرعي

12-21=محجوز للنظام
22-23= يحفظ لوقت التعديل والإنشاء
وتخزن في 16 خانة ثنائية
hhhhh mmmmmm sssss
01011 100000 00101
=11:32:10

24-25= تاريخ إنشاء الملف
yyyyyyy mmmm ddddd

26-27= يحتوي على عناون بداية أول تجمع حيث تخزن شفرة الملف

هذا هو البايت + جدول فات يحددان موقع قطاعات شفرة الملف



--------------

آخر قسمين :
ملفات المستخدم+ ملفات النظام

وهي مكان تخزين المعلومات في القرص

إقرأ هذا المثال وبتستوعب الفكرة

لو عندنا برنامج حجمة 4 ميجابايت كيف يقوم النظام بتخزينة

يقوم النظام بما يلي

قرائة إسمة وتاريخة ومعلوماتة ثم يبدأ يبحث عن منطقة غير مشغولة في
منطقة الفهرسة

وعندما يجدها ولنفرض أنة وجد المنطقة في قطاع رقم 20

يبدأ بكتابة معلومات الملف لها

مع ملاحظة مهمة ( يحتفظ برقم 20 وهو رقم القطاع) سيتم ذكر السبب

والخطوة الثانية

يبحث عن القطاعات غير مشغولة في منطقة ملفات المستخدم على القرص
ولنفرض أنة

وجد قطاع رقم 100 فارغ وبعدة كل القطاعات مشغولة

ووجد قطاع رقم 210 فارغ وبعدة مشغول ووجد 545 فارغ :: كيف يخزن

يبدأ النظام بقرائة كود البرنامج ويكتبة عند القطاع رقم 100

ويطبق قانون هنا وهو 100 - 20 = 80

ومعناة = أول قطاع يبدأ فية تخزين البرنامج - رقم القطاع الذي يحتوي
معلومات البرنامج في سجل الفهرسة

والناتج الي هو 80 يكتبة في نهاية معلومات الملف في سجل الفهرسة( راجع
البايت 26-27) في منطقة الفهرسة

هل تريد أن تعرف لماذا كل هذة الصدعة

بكل بساطة : أكبر قيمة للبايت = 255 = الحد الأعلى من طول المسار في
نظام التشغيل مثل

C:\program\aas\ffgg\d

هذا مسار حدة الأعلى 255 حرف

نرجع للموضوع

أكيد قطاع لا يكفي لتخزين 4 ميجا يبدأ يبحث عن القطاع التالي الغير
مشغول وهو210

يبدأ النظام بقرائة باقي معلومات الملف ويكتبها عند 210

لاحظ هنا : يطبق قانون وهو 210 - 100 = 110

ومعناة القطاع الحالي - أول قطاع من شفرة البرنامج

والناتج إلي هو 110 يكتب في جدول نظام الملفات ( فات)

بمعنى : أن القطاع الأول فقط تصير معة شغلة أما باقي القطاعات يصيرلها
مثل هذا القطاع

ويكمل النظام يقرأ ما تبقى من البرنامج ويبحث عن منطقة فارغة وهي 545

ويكتب إليها باقي كود البرنامج ويطبق المثال

100-545 =445 وتكتب القيمة إلى جدول فات وفي النهاية تظهر البيانات في جدول فات
بهذة الطريقة

110-445-000

وهكذا يكتب الملف

ويظهر للمستخدم : إسمة وإمتدادة وتاريخة (أي معلومات قسم الفهرسة)

وعند الضغط على البرنامج( يقوم البرنامج بقرائة آخر بايت في قسم
الفهرسة) وهو 80

ويطبق كل القوانين بالعكس

80 + 20 =100

ومعناها : بايت قسم الفهرسة + رقم القطاع الموجود فية معلومات الملف

ويقرأ أول جزء من كود البرنامج الموجود في القطاع 100

وبعد ذلك يضيف الرقم 100 إلى قيم الجدول فات

110+100=210

445+100=545

وهذة هي بقية القطاعات الموجود فيها كود البرنامج

وينقل البرنامج إلى الذاكرة ويشتغل

شفتوا كل هذي القصة تصير بمجر كليك على أيقونة

ياترى حد فكر فيها ؟؟؟

---------------------------------

وفي معلومات أخرى عن القرص( لو تحب تزيد معلوماتك)

عرفنا أن الملف يكتب في عدة أقسام في القرص

معلوماتة في قسم الفهرسة + كود أو محتوى الملف إلى قسم ملفات المستخدم

إذا حذفنا الملف

هذة القصة يبالها مثال :

ملف إسمة
: wejjdkfjdkfldkfj.exe

نلاحظ أن إسم الملف أكبر من 8 أحرف (رقم 8 عدد الأحرف في منطقة
الفهرسة)

لماذا 8 أحرف: لأن الفورمات ( أي تقسيم القرص) يقوم بة نظام دوس

المهم يتحول إسم البرنامج إلى

wed~klj


كيف تحول : يحتاج قصة ثانية( الظاهر إن الشغلة بتصير ألف ليلة وليلة)

المهم : ينكتب في منطقة الفهرسة

ويكتب الكود إلى منطقة ملفات المستخدم

ثم

إحذف الملف : تتوقع شو الي بيصير

بيتغير فقط أول حرف من الملف من w

إلى قيمة بالست عشري =E5

ولو صممت برنامج يسترجع الملفات المحذوفة

إطلب من المستخدم إدخال إسم الملف الذي يود إسترجاعة حولة لحالة نص
قصير(صيغة دوس)

ويتم التحويل عن طريق هذة الدالة

GetShortPathName

حول أول حرف إلى E5

وإبحث عن البرنامج أول ما تحصلة غير أول حرف وهو E5

إلى أي حرف والأفضل للحرف الي أدخله المستخدم

وبتلاقي الملف ظهر- شغلة بيشتغل

----------------------------------

وهذا يدل على شيء مهم وهو إنة المنطقة التي يخزن فيها بيانات الملفات

لا حظ بيانات الملف ( لا يمسحها النظام ) حتى لو عملت مئة مرة فورمات

فقط النظام يضع علامة على القطاع تدل على أنة قد حذف دون أن يمسح
محتوياتة

ويرجع لهذا القطاع ويكتب فية إذا تم الكتابة في كل مساحة القرص ولم
يجد مساحة جديدة فارغة

يرجع من البداية يدور على قطاعات علم عليها أنها فارغة

( إنتبهوا يا أصحاب المعلومات السرية)

في طريقتين لتمسح القرص نهائيا

1- عن طريق برامج خاصة

2- عن طريق تعبئة القرص بشكل نهائي ثم فورمات ثم تعيد تكتب فوقة

---------------------------------

في كثير ملاحظاتي عندي عن الأقراص

لاحظنا في أول برنامج كتبناة على القرص

أنة كتب في القطاعات : 100 و 210 و 545

لو شغلنا البرنامج قد يستغرق جزء من الثانية أبطأ لين مايلاقي
القطاعات

ولكن لو كان القطاع الأول 100 الثاني 1000 الثالث 2000

قد تقل أكثر السرعة

ومع كتابة ملفات كثيرة تجد أن السرعة قلت أكثر

وحل هذة المشكلة هو بتقريب كل مجموعة قطاعات إلى أقرب حد ممكن

وهذا الحل يسمى إلغا التجزئة وهو برنامج مشهور في وندوز تجدة في أدوات
النظام



--------------------------------

دخلنا في مواضيع كثيرة ونسينا الموضوع الأساسي

حماية الأقراص

بكل بساطة ذكرنا أن الحماية معناها

تغيير في تنسيق القرص

ويتم هذا التنسيق بطرق كثيرة منها( الحماية على مستوى بويس)

وهي الخدمة رقم 5 من المقاطعة 13

والبارمترات

AL= عدد القطاعات
CH=رقم المسار
DH=رقم الرأس
DL=رقم السواقة
ES:BX=تحتوي على عنوان بداية الذاكرة للتنسيق
---

عنوان التنسيق مكون من 4 بايتات
1-C OR T=المسار
2-H= الرأس-او الوجة
3-R or s = السجل او رقم القطاع
4-N or B = عدد البايتات في القطاع الواحد


شرح الأربع بايتات
يتكون البايت رقم واحد من رقم المسار وهو رقمين بالنظام الست عشري مثل

01=المسار1 05=لمسار5
2- ويكون كذالك تحديد الرأس
3- وكذالك رقم القطاع
أما عدد البايتات في القطاع وهو البايت رقم أربعة فيأخذ عدة قيم
للبايت مثال
00=128
ويعني عدد البتات في القطاع 128 بت
و القيم الأخرى
01=256
02=512
03=1024

فمثل نريد المسار الثالث من الوجة صفر والقطاع صفر ب 512 بت
03000102
جعلنا رقم القطاع يبدأ 1 وهو يمثل الصفر خلاف للمسار والرأس
ونبدأ بتنسيق القرص بهذة الطريقة على كل القطاعات
03000202
03000302

يجب تحفيز القرص ببعض الخدمات
قبل هذة العملية يفضل تحفيز بعض خدمات البويس مثل الخدمة 17 و18


-------------------

هل أفتهم الموضوع

نسهل أكثر : الحماية بلغة السي

بكل بساطة بإستخدام دالة واحدة

DeviceIoControl

والمتغير

IOCTL_DISK_FORMAT_TRACKS

ولكن هذة الطريقة لم أجربها( بحاول أكتب مثال وإذا خلص تلاقية في هذا
الدرس)











الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تعلم الديبغر (خفايا النظام وندوز) أسرار وخفايا
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» خفايا وندوز 7
» خفايا الاغذيه المصنعة....
»  أسباب تهنيق النظام
» أسرار آية الكرسي‏
» أسرار البنات الفيزيائية والكيميائية

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى الاحباب :: الثقافة والتطور :: التكنلوجيا-
انتقل الى: