الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عملية الإقلاع والتحكم ( برمجة البويس ؟!)

رائج
بدأه JAAS في 20 أكتوبر 2004 · 33 رد · 22,578 مشاهدة · في مواضيع الأخ JAAS في الأسمبلي وتحليل التطبيقات البرمجية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله ,,,

لاحظت مواضيع كثيرة ومشاريع الهدف منها بناء نظام تشغيل عربي ؟!

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

قرأت أغلب الأسئلة ... ووجدت أن جوابها واحد ؟ والسؤال واحد ؟

كيف يعمل جهاز الكمبيوتر ؟!

أعتقد أن جواب هذا السؤال البسيط ... علم كثير وكبير في كل مجالات الكمبيوتر

مثل البرمجة والهندسة والصيانة وحتى البرمجة العكسية والهكر وسأضع لك الأمثلة عند كل نقطة تقرئها

وسؤحاول في هذا الموضوع تقريب الإجابة عن السؤال !

أولا : عملية الإقلاع

الآن عندك جهاز كمبيوتر بجانبك ... بشرط أن يكون مغلق . بمعنى أنة غير موصول بالكهرباء!

قم بتوصيل كل أجزاء الكمبيوتر+ تأكد من توصيل أسلاك الكهرباء + ضع أصبعك على زر التشغيل

هل أنت مستعد لتشغيل الكمبيوتر ؟!

سنقوم الآن بكتابة كل عملية تحدث من أول ما تضغط على زر التشغيل ..إلى أن تظهر نافذة نظام التشغيل

والآن إضغط على زر التشغيل وإقرأ كل كلمة في الموضوع بتفكير عميق ... البداية

يبدأ موزع الكهرباء أو البور سبلاي بإمداد اللوحة الأم بالطاقة .. مباشرة تصل الطاقة إلى المعالج

يشتغل المعالج أول ما يقوم بة هو تصفير لكل مسجلات المعالج مثل ax وbx وds و..و..

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

القيمة F000 (كل الأرقام بالرمز الست عشري أو الهكس ) وبهذا يكون المعالج قد حدد قسم التنفيذ

وبعد ذلك يقوم بتحديد الإزاحة للقسم وأكيد بواسطة المسجل ip فيعطية القيمة FFF0

تلاحظ أن المعالج بدأ التنفيذ في النمط الحقيقي أي نمط 16 بت وقد إستخدم مسجلات هذا النمط

والسبب في ذلك هو التوافقية بين الأنظمة + إمكانية الوصول إلى أي عنوان في الذاكرة

والآن المعالج صفر أو هيأ كل المسجلات + حدد بداية التنفيذ في الذاكرة

بعد ذلك يقوم بنقل التنفيذ من العنوان الذي حددة المعالج إلى نظام الإدخال والإخراج الأساسي ( البويس )

ماهو البويس : عبارة عن برنامج مخزن في ذاكرة على اللوحة الأم تسمى الذاكرة ROM

وهي ذاكرة للقرائة فقط + أنها لاتفقد المعلومات المخزنة بها عند إغلاق الجهاز

والأمثلة على البرامج المخزنة في ذاكرة ROM كثيرة .. هل لاحظت شعارات الشركات في بداية تشغيل الكمبيوتر

مثل كرت الشاشة يظهر لك علامة تجارية مثلا SIS .. هذة البرامج كلها مخزنة في الذاكرة ROM

وللمعلومة : يمكن للهكر أو الكراكر(وهم المختصين في البرمجة العكسية ) الوصول للبرامج المخزنة في ROM !!؟

وتغيير محتوها .. بل وكسر حمايتها ؟ أكيد تريد أمثلة .. تفضل

http://hackingthexbox.com

http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html

والآن كيف تعمل هذة البرامج ... إذا فهمت البويس ستعرف القصة !

=====================================

كيف يعمل البويس ؟

بعد أن يجهز المعالج المسجلات يقوم بتسليم القيادة أو التحكم للنظام بويس

يبدأ التنفيذ في البويس عند السطر 430 ( في معالجات إنتل ) يقوم البويس بعدد من المهام الأساسية

أول مهمة للبويس هي فحص قطع الجهاز :

لا تعتقد أن طريقة فحص الأجهزة أمر معقد ... بكل بساطة يقوم البويس بإرسال إشارة لمنفذ الجهاز

عن طريق الأمر out وبعد ذلك يقوم بإستقبال أي إشارة من الجهاز عن طريق الأمر IN

إذا وصلت أي إشارة من الجهاز معنى ذلك أنة شغال ... وإذا لم تصل أي إشارة معناة خطأ في الجهاز

وهكذا مع كل أجهزة الكمبيوتر .

في نقطة مهمة في الفحص .. أول مايقوم بة البويس فحص كرت الشاشة + منفذ الشاشة

إذا وجد أي خطأ فية ( بمعنى أن الشاشة لا تعمل ولايمكن رؤية أي ملاحظة يكتبها البويس على الشاشة )

يقوم البويس في هذة الحال بإستخدام طريقة الأصوات أو الصافرة لعرض أي خطأ في عملية الفحص

أمثلة لأهل الصيانة :)

قمت بتشغيل الجهاز .. لم يعمل الجهاز .. لم يصدر البويس أي صوت ( على طول الخطأ في البور سبلاي )

لأنة كما ذكرنا. يقوم البويس بإصدار صوت إذا وجد خطأ. وإذا لم يصدر أي صوت معنى ذلك أن التنفيذ

لم يصل إلى البويس .. لاحظ معنى الأصوات في البويس

صافرة واحدة قصيرة = لا توجد أخطاء في عملية الفحص

صافرتين قصيرة = خطأ في كرت الشاشة أو طريقة توصيل الشاشة

وهكذا مع كل الأخطاء

والنقطة الثانية ... إذا كانت الشاشة شغالة ( يتم عرض الأخطاء بطريقة الأرقام )

أخطاء البويس في كلى الحالتين تجدها هنا :

http://www.pchell.com/hardware/beepcodes.shtml

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

بعد أن يقوم البويس بفحص الأجهزة يقوم بإنشاء جدولين

الأول : جدول مقاطعات البويس

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

تأخذ لها 4 بايت .. لتدل على عنوان بداية تنفيذ المقاطعة , بهذا الشكل

المقاطعة صفر INT 0 عنوانها 0000:0000 (هذا العنوا يحتوي على عنوان التنفيذ)

المقاطعة واحد INT 1 عنوانها 0000:0004 , المقاطعة 2 عنوانها 0000:0008

هذا الجدول الأول ( جدول المقاطعات )

العنوان      ||     المقاطعة

INT 00h    0000:0000h  =مقاطعة لراية الفيض في القسمة
INT 01h    0000:0004h  = مقاطعة المعالج للتنفيذ خطوة ..خطوة
INT 02h    0000:0008h = NMI  مقاطعة الأجهزة الخارجية لمايعرف بدبوس 
INT 03h    0000:000Ch =مقاطعة لكتابة نقطة توقف للبرنامج
INT 04h    0000:0010h =مقاطعة راية الفيض في مسجل الحالة
INT 05h    0000:0014h = طباعة الشاشة
INT 06h    0000:0018h =مقاطعة لإختبار تنفيذ تعليمة غير مصرح لها
INT 07h    0000:001Ch =مقاطعة ضغط وتشفير التعليمات
INT 08h    0000:0020h = خدمات المؤقت
INT 09h    0000:0024h = خدمات الجهاز المشغل للوحة المفاتيح
INT 0Ah    0000:0028h =مقاطعة تستخدم في التبديل بين المهام
INT 0Bh    0000:002Ch  = خدمة المنفذ التسلسلي com2
INT 0Ch    0000:0030h =خدمة المنفذ com2
INT 0Dh    0000:0034h = خدمة المنفذ المتوازي LPT 2 
INT 0Eh    0000:0038h =خدمات القرص المرن
INT 0Fh    0000:003Ch =خدمة المنفذ LPT1
INT 10h    0000:0040h = خدمات شاشة العرض
INT 11h    0000:0044h =مقاطعة تعيد الأجهزة المتصلة بالكمبيوتر
INT 12h    0000:0048H = مقاطعة حجم الذاكرة
INT 13h    0000:004Ch = خدمات القرص الصلب
INT 14h    0000:0050h = خدمات منافذ لإتصالات 
INT 15h    0000:0054h = خدمات النظام
INT 16h    0000:0058h = خدمات لوحة المفاتيح
INT 17h    0000:005Ch = خدمات الطابعة
INT 18h    0000:0060h = خدمات لتحميل ROM BASIC 
INT 19h    0000:0064h = مقاطعة تحفيز قرص الإقلاع
INT 1Ah    0000:0068h = خدمات الوقت الحقيقي للساعة
INT 1Bh   0000:006Ch =تحديد مدة الإستجابة للوحة المفاتيح
INT 1Ch   0000:0070h =مقاطة التوقيت مقدر باللحظة
1Dh   00000074h =مقاطعة جدول وبارمترات  شاشة العرض
1Eh   0000:0078h =مقاطعة جدول وبارمترات القرص المرن
1Fh   0000:007Ch = مقاطعة خصائص الخط والمحارف

تلاحظ أننا توقفنا عند العنوان address=1F ... أين بقية المقاطعات

باقي المقاطعات سنكتبها في وقتها.. لأن نظام الدوس يتطفل ويبدأ في الكتابة عند العنوان الذي توقفنا عندة

المهم : ماالفائدة من هذا الجدول + ما الفائدة من المقاطعات ؟!

أولا : الفائدة من الجدول هي نقل التنفيذ .. والمثال على ذلك في وندوز مكاتب الربط dll

يمكن يكون الشرح غير مفهوم : والحل بالطبيق العملي

من قائمة start ثم run إكتب debug وإضغط أوكي

ما رأيكم بمقاطعة حجم الذاكرة وهي المقاطعة 12 .. عنوانها في الذاكرة 0000:0048

في برنامج الديبغر أكتب الأمر D 0000:0048 وهو عنوان المقاطعة , إحفظ أول 4 بايتات

ولتكن مثلا : AA 09 0E 02 طبق عليها قانون العكس فتساوي n= 020E:09AA

هل تعرف مايمثلة العنوان , هو بداية التنفيذ لشفرة المقاطعة ... جرب إذهب للعنوان

بواسطة أمر فك التجميع u 020E:09AA ولاحظ كيف تنفذ المقاطعة

الفائدة من المقاطعة :

أهم فائدة هي تبسيط الأمور وهو إسلوب متبع إلى الآن في الأنظمة الحديثة مثل وندوز xp

ما رأيكم بتشريح مقاطعة إظهار حجم الذاكرة .. لأنها أسهل مقاطعة و أول مقاطعة ينفذها البويس

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

هل تريد أن تعرف كيف ينفذها .. عن طريق برمجة المنافذ + البرمجة المباشرة للذاكرة

بهذا الكود :

mov al,18h
out 70h,al
in al,71h
mov ah,al
mov al,17h
out 70h,al
in al,71h

بعد تنفيذ هذا الكود سيصبح مسجل ax = حجم الذاكرة

هل عرفت فائدة المقاطعة - فقط إستبدل كل الكود بتعليمة المقاطعة INT 12 وسيحمل المسجل ax بحجم الذاكرة

هذا هو مفهوم المقاطعة , بعد ذلك يبدأ البويس في بناء الجدول الثاني

جدول معلومات البويس :

وهو جدول يخزن بة البويس معلومات عن الأجهزة (الهاردوير) الموجودة في الجهاز

يبدأ نظام البويس في كتابة معلوماتة عند العنوان 0040:0000

وهذة المعلومات هي :

0040:0000h     =عنوان المنفذ com1
0040:0002h   =عنوان المنفذ com2
0040:0004h   =عنوان المنفذ com3
0040:0006h   =عنوان المنفذ com4
0040:0008h   =عنوان المنفذ LPT1
0040:000Ah   =عنوان المنفذ LPT2
0040:000Ch   =عنوان المنفذ LPT3
0040:000Eh   =عنوان المنفذ LPT4
0040:0010h   =مجموعة الأجهزة  وهو عبارة عن 16 بت تمثل الأجهزة المثبتة
0040:0012h   = رايات المقاطعة والتحقق من الأخطاء
0040:0013h    =حجم الذاكرة بالبايت
0040:0015h    = معرف أو كود الخطأ

0040:0017h    = رايات الحالة والتغير في لوحة المفاتيح
0040:001Ah   = مؤشر إلى الحرف التالي في مخزن لوحة المفاتيح
0040:001Ch   = مؤشر إلى الحرف الأخير في مخزن لوحة المفاتيح
0040:001Eh   =محتوى مخزن لوحة المفاتيح

0040:003Eh   =معرف القرص المرن A=0 - B=1 C=2 ..
0040:003Fh  = حالة محرك الأقراص المرن
0040:0042h = مسجل التحكم للقرص الصلب والمرن

0040:0049h = إعدادات نمط شاشة العرض
0040:004Ah =عدد الأعمدة في كل سطر
0040:004Ch =حجم الصفحة في شاشة العرض
0040:0050h = نقطة ظهور المؤشر في شاشة العرض
0040:0063h = يحتوي على عنوان منفذ الإدخال والإخراج لشاشة العرض
0040:066h = لوحة الألوان لشاشة العرض

0040:075h = عدد الأقراص الصلبة في الجهاز
0040:076h =بايت التحكم للقرص الصلب
0040:077h =عنوان منفذ الإدخال والإخراج للقرص الصلب
0040:08Dh =مسجل أخطاء القرص الصلب


0040:0A1h  = معرف كرت الشبكة المحلية
0040:0F0h  = منطقة معلومات الإتصالات بين التطبيقات

وبهذا يكون نظام البويس قد جهز خدماتة وهي المقاطعات وبعد ذلك جهز معلوماتة

بعد ذلك يبحث عن نظام التشغيل لتحميلة إلى الذاكرة وتسليمة مهمة القيادة والتحكم

كيف ... تابــــع الموضوع

1

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#2

تابــع :

تحميل نظام التشغيل إلى الذاكرة وبداية عملة :

يبدأ البويس في البحث عن مشغل النظام وهو ما يعرف بقطاع الإقلاع boot sector

قد يكون في قرص مرن أو قرص صلب أو حتى سيدي , المهم أن البويس يبدأ البحث

في كل الأقراص .. حسب الترتيب الذي حددتة في إعدادات البويس

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

العلامة هي أن يكون آخر بايتين في القطاع = AA 55

كتابة برنامج إقلاع في القطاع الأول شغلة سهلة لأن الموضوع يتطلب فهم أمرين فقط

الأول: إستخدام مقاطعات البويس

برنامج الإقلاع القياسي يستخدم مقاطعتين فقط وهي المقاطعة 13 لتحميل الملفات من القرص

والمقاطعة 19 لتحفيز القرص للإقلاع (وهذة المقاطعة قد لا تستخدم دائما )

والأمر الثاني : معرفة العناوين الذي سينتقل لها التنفيذ + معرفة مخزن القرائة من القرص

سنتابع قصة إقلاع الكمبيوتر وستتضح الأمور .

توقفنا عند البويس وطريقة تحملية للنظام التشغيل , وقلنا أنة سيحمل قطاع واحد فقط

بعد أن يجد قطاع الإقلاع سيقوم بتحميلة إلى العنوان address =7C00

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

لينتقل التنفيذ لها , بعد ذلك مباشرة تقوم بإستخدام المقاطعة 13 لتحميل كل محتويات القرص

أو تحمل برنامج معين , في أمور مهمة عند هذة النقطة ؟ ماذا يعرف البويس عن القرص

هل مرت عليك أنظمة الملفات مثل FAT ,NFS ,ex2..3 وغيرها من أنظمة ملفات وندوز ولينكس

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

ما يعرفة البويس هو تركيب القرص الفيزيائي مثل الرأس و الإسطوانة و القطاع والمسار

سأعطيك مثال بارمترات مقاطعة قرائة محتوى القرص

AH=0x02 // خدمة قرائة القرص وتحميل البرامج إلى الذاكرة

AL=عدد القطاعات

CH=رقم المسار

CL=رقم القطاع

DH=رقم الرأس

DL=رقم القرص

ES:DX=مؤشر إلى المخزن

قد تعتقد أن تحديد ملف معين أمر معقد , ولهذا السبب ظهرت أنظمة الملفات مثل FAT و..و

ولكن إذا قمت أنت بكتابة ملف معين في قطاعات القرص بكل بساطة تستطيع أن تحدد موقعة بالضبط

ملاحظة: في آخر بارمتر وهو ES:DX هذا البارمتر لا تكتب بة شيء لأنك عندما تنفذ المقاطعة int13

سيقوم البويس بكتابة عنوان تحميل البرنامج إلى الموقع ES:DX , وبهذا تقوم بحفظ هذا العنوان

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

قد لا تصدق أن تحميل النظام بكل هذة البساطة ,, مارأيك بمثال

سنقوم بكتابة أمر بسيط في قطاع الإقلاع , وهو مثال لإظهار عدد من الحروف , وأكيد المثال سيكون على قرص مضغوظ

وأول ما تشغل الكمبيوتر , وبعد عملية فحص الأجهزة .. سيظهر برنامجنا بكل ثقة ؟!

سنقوم بكتابة البرنامج داخل قطاع الإقلاع بإستخدام برنامج debug في النظام وندوز

وإذا كنت لا تعرف الديبغر يمكنك مراجعة الرابط :

/index.php?showtopic=44877

الآن قم بإدخال القرص المضغوط( الفلوبي ) لا يهم إذا كان مفرمت أو لا لأن البويس لا يعرف شيء من هذا

ولكن لوكان القرص مفرمت سيوفر علينا كتابة توقيع قطاع الإقلاع وهو AA 55 في آخر بايتين

بعد ذلك من قائمة start ثم run إكتب debug لتشغيل برنامج الديبغر وستلاحظ العلامة -

عند العلامة إكتب الأمر L 100 0 0 1

الحرف L معناة تحميل قطاع من القرص إلى الذاكرة 100 تعني إلى العنوان 100 في نفس المقطع

الصفر الأولى = محرك الأقراص A و الصفر الثانية تعني رقم القطاع وهو0 أي قطاع الإقلاع

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

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

أكتب عند علامة - التعليمة a 100 أي أننا نريد كتابة كود إسمبلي عند العنوان 100

بعد ذلك إكتب البرنامج :

- a 100

-0B3A:0100    mov ah,09
-0B3A:0102    mov al,42
-0B3A:0104    mov bh,0
-0B3A:0106    mov bl,14
-0B3A:0108    mov cx,10
-0B3A:010B    int 10

العناوين يكتبها الديبغر نفسة وقد تتغير .. لا يهم . أهم شيء هي التعليمات

البرنامج الذي كتبناة هو عبارة عن مقاطعة إظهار حرف على الشاشة , الرقم 42 يمثل الحرف B

الرقم 14 يمثل لون الحرف ولون الخلفية الرقم 10 يمثل عدد تكرار الحرف على الشاشة

بعد ذلك سنقوم بإدخال برنامجنا إلى العنوان 100 وتخزينة في الذاكرة , بإستخدام التعليمة e 100

-e 100
0B3A:0100   B4.     09.     B0.     42.     B7.     00.     B3.     14.
0B3A:0108   B9.     10.     00.     CD.     10.

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

وبقي الآن كتابة هذا البرنامج إلى قطاع الإقلاع في القرص , بإستخدام الأمر W

بهذة الطريقة : W 100 0 0 1

--------

ولآن تأكد من أن القرص المضغوط بداخل السواقة

تأكد من أن ترتيب الإقلاع في إعدادات البويس يبدأ من القرص المضغوط

وأعد تشغيل الجهاز ....... ولاحظ( برنامجك على الشاشة )

ألف مبروك أصبحت مبرمج أنظمة معتمد ?!!

========

وبعد كل هذة المقدمة بقية كلمة واحدة وهي

لو كانت برمجة الأنظمة فقط إلى هنا .. لوجدت 100 نظام تشغيل عربي ؟!

بالفعل هذة الطريقة نفسها من أول ماظهر دوس و إلى الآن وندوز 2003 يستخدم نفس الطريقة

ولكن التعقيد يظهر بعد تحميل النظام.. أي بعد أن يسلمك البويس مهمة التحكم في الجهاز

ماذا تفعل وكيف ؟!

سأحاول الإجابة على هذا السؤال بعد تقسيمة إلى قسمين:

1- كيف تعمل الأنظمة تحت بيئة 16 بت ( مثل النظام دوس و النظام يونكس 16 بت )

2- كيف تعمل الأنظمة تحت بيئة 32 بت ( مثل الوندوز و اللينكس )

القسم الأول أنظمة 16 بت .. بسيطة وسنحتاج لموضوع واحد فقط ( لأنها تستخدم المقاطعات وأوامر معروفة )

القسم الثاني أنظمة 32 بت .. هنا العقدة . وأعتقد عندما أبدء بمحاولة لشرح هذا الموضوع

فإن 99% من الذين يحلمون بصناعة نظام تشغيل عربي سيتخلون عن هدفهم وعن حلمهم الكبير

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

أنا لا أريد أن أحبط أحد .. ولكن الموضوع القادم سيجعلك تحكم بنفسك ؟!

وإلى اللقاء في مواضيع أخرى

وبالتوفيق ,,,

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

السلام عليكم

اخى jaas بارك الله فيك على هذا الشرح, انا معك 100% عملية بناء نظام تشغيل ليس بالامر الهين, واتعجب من الاخوه الذين يتحمسون لمثل هذا المشروع دون معرفة الاساسيات والمتطلبات.

بنظام تشغيل مثل الوندوز واللينكس قام به جيش من المبرمجين, وهو ثمرة عشرات الاعوام من العمل الشاق والمستمر, العزيمه وحدها لا تكفى بل تحتاج إلى العلم.

من المستحيل على شخص تلعم للتو كتابه برنامح Hello World ان يحلم بعمل نظام تشغيل, يعنى إذا شطح نطح, وبالعكس انا لا اعتبر كلامك هذا الهدف منه هو إحباط المتحمسين ولكن رحم الله إمرء عرف قدر نفسه, نظام تشغيل يحتاج إلى جيش من العلماء وليس مجموعه من الهواه.

انت الان تتحدث عن القسم التقنى فى الموضوع ولكن هناك قسم نظرى وبنفس القدر من الاهميه, فنظام التشغيل ليس فقط الوصول إلى البيوس ومعرفة كيفيه التحكم فى الذاكره, ولكن هناك قواعد برمجه وقوانين لغه لابد ان تتبع لعمل مشروع ضخم بهذا الشكل.

بالتاكيد هناك الالاف من نظم التشغيل التى برمجها مجموعات من الهواة ولكنها لا تعدو ان تكون للتعليم,

خلاصة القول مشوار الالف ميل يبداء بخطوه, ولا يمكن ان تعمل إبنك الركض قبل ان تعلمه المشي, وللاسف الامه كانت نائمه عندما سبقنا الغرب والان الامه متغطيه باللحاف وبتحلم .

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#4

موضوع رائع أظن يستحق التثبت

#5

تم تثبيت الموضوع لاهميته العلميه ومحتواه القيم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

السلام عليكم انا سعيد ان سجلت في هذا الموقع الرائع والمفيد واشكركم جميعاً على

هذه المعلومات والتي وجدت في توصيل المعلومة بكل ماتعنيه من فائدة علمية فالحمد لله ان تعرفت على موقعكم الرائع والذي اتمنى من كل قلبي ان اكون من المبدعين فيه مثل الأخ jaas ,و الأخ احمد غريب وكل الأخوان الأعزاء بارك الله فيكم جميعاً وافادنا الله منكم .............. آآآآآآآآآآآآآمين .....

#7

جهد رائع و مميز ...

#8

مرحبا ,,,

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

الحمد لله

وأشكر الأخوة الذين شاركو في الموضوع

ومرحبا بالعضو الجديد : قرصان ألعرب

وأتمنى أن تكون من المبدعين في هذا الصرح الشامخ

وإلى اللقاء

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#9

لقد تنفذ في جهازي وهو يعمل بشكل رائع...

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

اقتباس
mov al,18h
out 70h,al
in al,71h
mov ah,al
mov al,17h
out 70h,al
in al,71h

بعد تنفيذ هذا الكود سيصبح مسجل ax = حجم الذاكرة

* - ماذا سيحدث اذا كان حجم الذاكرة اكبر من سعة ax

* - في الأمر L 100 0 0 1 ماهو رقم القرص الصلب و كذلك رقم السيدي روم..هناك حالة اخرى ماذا لو كان لدينا اكثر من قرص صلب فيزيائيا

* - لو كان لدينا فلوبي غير مفرمت فكيف يمكن ان نضع الكود AA 55

* - كيف يعرف البيوس بوجود اكثر من نظام تشغيل

* - حجم البرنامج اعلاه هو 13 بايت وقد تمت الكتابة على المقطع 0 بالأمر W 100 0 0 1 وهذا رائع فعلا و لكن كيف يعرف المعالج بأن برنامجنا يجب ان ينتهي تنفيذه عند البايت الثالث عشر..ما اعنيه هو ان المعالج يمكن ان يستمر في تنفيذ بقية البايتات الخاصة بالقطاع الصفر اي البايت رقم 14 و 15 و ... سوف تعتبر اكواد وهي ليست كذلك ما نعرف

واعتذر مرة اخرى على ازعاجكم بكثرة الأسألة

#10

موضوع رائع

tmz9111

#11

مرحبا أخي السقاف

تفضل وإكتب ماتريد .. فما كتب هذا الموضوع إلى للمناقشة

بالنسبة للأسئلة :

اقتباس
ماذا سيحدث اذا كان حجم الذاكرة اكبر من سعة ax

سؤال جيد ,,, أضف له هذة الأسئلة ؟؟!

ماذا لو حجم الهارد دسك 10 أو 20 أوحتى 60 قيقابايت

مكون من ملايين القطاعات .. كيف ستحدد القطاع في مقاطعة قرائة القرص INT13

دقة عرض الشاشة ؟ كيف وصلت 32 بت

سرعة المودم كيف وصلت 56 إلى 1 ميجا بايت ؟

الجواب على هذة الأسئلة :

لوكانت أنظمة التشغيل مثل وندوز .. تعتمد على البويس أو خدماتة .. لما تطورت الأنظمة

وهنا ظهرت الحاجة إلى تعريف الأجهزة .. ليتم برمجتها بنمط 32 بت

حتى 32 بت لاتفي بالغرض لقرائة آخر قطاع في هارد دسك كبير الحجم ؟

فظهرت البرمجة المباشرة للذاكرة بإستخدام برامج تعاريف الأجهزة

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

تستخدم مثل مسجلات المعالج ؟

نرجع للوراء : ماهو مسجل ax مثل ( عبارة عن ذاكرة تخزن بها المعلومات )

وليس المعالج فقط لة مسجلات .. شاشة العرض لها مسجلات

وأغلب الأجهزة لها مسجلات ! مختلفة من حيث الحجم والعنوان

وهذا ما عقد الموضوع

-

اقتباس
- في الأمر L 100 0 0 1 ماهو رقم القرص الصلب و كذلك رقم السيدي روم..هناك حالة اخرى ماذا لو كان لدينا اكثر من قرص صلب فيزيائيا

رقم القرص هو الصفر الثاني

0=A

1=B

2=C

وهكذا

أما السيدي روم فلا يستطيع برنامج الديبغر التعرف علية .. لأنة برنامج 16 بت

نفس المشكلة في السؤال الأول :) تستطيع الكتابة على السيدي بإستخدام برنامج Nero مثلا أو أي برنامج كتابة على الأقراص

أكثر من قرص صلب ... فقط حدد رقم القرص من 0 إلى 27 = من A إلى Z

اقتباس
كيف يعرف البيوس بوجود اكثر من نظام تشغيل

من خلال مقدمة القرص الصلب .. وفيها تجد كل معلومات القرص وتنسيقة

اقتباس
- حجم البرنامج اعلاه هو 13 بايت وقد تمت الكتابة على المقطع 0 بالأمر W 100 0 0 1 وهذا رائع فعلا و لكن كيف يعرف المعالج بأن برنامجنا يجب ان ينتهي تنفيذه عند البايت الثالث عشر..ما اعنيه هو ان المعالج يمكن ان يستمر في تنفيذ بقية البايتات الخاصة بالقطاع الصفر اي البايت رقم 14 و 15 و ... سوف تعتبر اكواد وهي ليست كذلك ما نعرف

واعتذر مرة اخرى على ازعاجكم بكثرة الأسألة

لازم تحرجنا يعني :)

ومن قال أن المثال الذي كتبتة صحيح ؟ عند تنفيذة يحدث مئة خطأ

ولكن لا يوجد رقيب ... وأردت من المثال تسهيل الموضوع للمبتدئين وأن يثقو بأنفسهم

وإذا أردت تصحيح بعض البرنامج أضف التعليمة ret في آخر البرنامج لكي يعود التنفيذ

إلى المعالج

بالإضافة إلى أن التعليمة W لاتكتب البرنامج الذي تريدة فقط ؟ تكتب 512 بايت !

لنفرض أن برنامجنا يبدأ عند 100 وينتهي 112

التعليمة W تكتب المعلومات المخزنة من العنوان 100 إلى العنوان 300 بالهكس طبعا

بمعنى أنها تكتب 512 بايت لأن حجم القطاع 512 بايت

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#12

thanx for this information

I was intersting while read these information

1+1=10

#13

مشكووور اخ جاز على المعلومات الاكثر من رائعة...

#14

عندي أسألة للاخ jass واحب اشكره علي الموضوع الرائع للمبتدئين

1- انت ذكرت

وللمعلومة : يمكن للهكر أو الكراكر(وهم المختصين في البرمجة العكسية ) الوصول للبرامج المخزنة في ROM !!؟

وتغيير محتوها .. بل وكسر حمايتها ؟ أكيد تريد أمثلة .. تفضل

كيف يمكن للهاكر تغيير محتوي البايوس مع العلم انها ذاكرة للقراءة فقط؟

2- انت قلت

يبدأ التنفيذ في البويس عند السطر 430 ( في معالجات إنتل ) يقوم البويس بعدد من المهام الأساسية

اي سطر 430 انت تقصد؟ هل سطر في برنامج اما مذا انت لم توضح المقصود بالسطر 430

3- انت ذكرت بان البايوس ينشأ جدولين الاول يضع به عناوين المقاطعات وينقل التنفيذ مبشرتا عند طلب عنوان المقاطعة الي المكان الذي به روتين المقاطعة

ولكن لفت انتباهي نقطة وهي بان كل مقاطعة لها ارقام خدمة معينة لغرض معين مثل المقاطعة int 10h لها ارقام خدمة 02 و 06 فهل هذه الارقام هي عناوين مثل

عناوين المقاطعات ام ماذا ؟ هل هي من ضمن روتين المقاطعة المطلوب تنفيذ خدمة معينة ؟

4- فحص حجم الذاكرة هل تقصد بجم الذاكرة رام ام ماذا ؟ لانني جربت المقاطعة في الديبق وجدت الرقم مختلف عن ما هو عندي والذي انا اعرف ان حجم الذاكرة 128 ميجا

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

5- انت ذكرت فقرة

في برنامج الديبغر أكتب الأمر D 0000:0048 وهو عنوان المقاطعة , إحفظ أول 4 بايتات

ولتكن مثلا : AA 09 0E 02 طبق عليها قانون العكس فتساوي n= 020E:09AA

من اين مصدرك في معلومات فكر الشفرات AA 09 0E 02 هل معرفة شفرات البايوس متاحة لكي شخص ام انها سرية مثل معلومة معرفة

كم عدد الاقراص المرنة وغيرها فمن اين احصل علي تلك المعلومات عن فك شفرة كود مثل ذل الكود الذي حدد عنوان روتين مقاطعة؟ كجدول معلومات النظام التابع للبايوس الذي

هو مشفر باكواد معينه تبين معلومات عن الجهاز فكيف اعرف فك تلك الشفارت ؟ كفحص حجم الذاكرة من خلال العنوان 0040:0013h فكيف احدد مكانها وكيف افك شفرات غيرها من العناوين في 0040:...

6- انت ذكرت

يبدأ البويس في البحث عن مشغل النظام وهو ما يعرف بقطاع الإقلاع boot sector

ولكن اذا كان عندي نظامي تشغيل فايهم يحجز مكانه في ال boot sector ؟ وهل يشغلان نفس القطاع ام في قطاع واحد وعلي عنوانين مختلفين؟

7- انت قلت

بعد أن يجد قطاع الإقلاع سيقوم بتحميلة إلى العنوان address =7C00

هل لكل قطاع عنوان معين مثل عناوين الذاكرة؟ وهل يحمل عنوان القطاع الي الذاكرة عند العنوان 7c00 ؟؟؟ اما انه يعطي القطاع العنوان السابق ويحمله الي ال cs ؟؟؟؟

وهل عندما يجد عنوان الاقلاع فانه يبحث عن البايتين الاخيرين كما ذكرت وهما AA 55 ؟

8- انت ذكرت

ولكن لوكان القرص مفرمت سيوفر علينا كتابة توقيع قطاع الإقلاع وهو AA 55 في آخر بايتين

اذا لم يكن القرص مفرمت فكيف نكتب البايتين السابقين ؟

9 - اريد ان افهم هذه النقطة لانني لم استوعبها

ملاحظة: في آخر بارمتر وهو ES:DX هذا البارمتر لا تكتب بة شيء لأنك عندما تنفذ المقاطعة int13

سيقوم البويس بكتابة عنوان تحميل البرنامج إلى الموقع ES:DX , وبهذا تقوم بحفظ هذا العنوان

اي عنوان تحميل البرنامج انت تقصد؟؟؟ هل تقصد بان البرنامج عندما يكون في قطاع معين نحمل عنوانه في ذلك القطاع الي الذاكرة ام ماذا؟ وماذا عن العنوان الذي ذكرته 7c00 هل هو ام عنوان آخر؟

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

10- هل من الممكن عمل برنامج الاقلاع الذي عرضته علي القرص الصلب بدل القرص المرن بنفس الكيفية التي اجريتها ؟

11- لو كان عندي برنامج مخزن علي القرص الصلب او المرن ويعمل تحت الدوس يعني بيئة 16 بيت فكيف اطبق ما سبق بجعله يشتغل في البوت سيكتور كما المثال السابق؟

12- لقد طبقت البرنامج السابق ونجح ولكن عند اعادة تنفيذ ذلك للتجربة مرة أخرى القرص المرن لم يعمل وطلب من النظام عمل فورمات للقرص المرن واخرج رسالة تقول

disk error reading drive A

فما سبب ذلك؟

13- هل تطبيق هذا الامر L 100 0 0 1 بعد عمل البرنامج وتطبيق الامر w 100 0 0 1 ام ماذا؟

14- ما هي فكرة عمل برنامج يعمل تحت نظام تشغيل بان يشتغل اوتوماتيكيا عن تشغيل النظام عني كيف النظام ينقل او يحجز مكان في الذاكرة لبرنامج عندما يشتغل النظام مثل الانتي فايروس عندما يعمل عندما يقلع النظام؟

لو فكرنا بالاسمبلي عمل برنامج يعمل عندما يعمل النظام فما هي فكرة العمل؟

وشكرا

#15

على الرحب والسعة ,,,

اقتباس
كيف يمكن للهاكر تغيير محتوي البايوس مع العلم انها ذاكرة للقراءة فقط؟

كيف تمت كتابة برنامج البويس على ذاكرة للقرائة فقط

الطريقة موضحة في المثال

http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html

وهذا المثال الموضح هو تطبيق على معالجات بنتيوم الحديثة

قبل 9 و8 سنوات كانت بعض محلات الكمبيوتر تقوم مثلا بكتابة إسمك بدل دعاية البويس

وكان هذا الشيء نادر رغم سهولتة في ذلك الزمن ,, لأن المعالجات كانت لا تتحقق من

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

فلم تعد شغلة التغيير بهذة البساطة ,, ولكي تغير في محتوى الذاكرة يلزمك خبرة

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

الشغلة ولكني قرأتها في بعض الأمثلة

اقتباس
اي سطر 430 انت تقصد؟ هل سطر في برنامج اما مذا انت لم توضح المقصود بالسطر 430

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

لكي أوضح أن برنامج البويس لة مقدمة مثل البرامج في أنظمة التشغيل وأبين مدى تشابة الأفكار

اقتباس
ولكن لفت انتباهي نقطة وهي بان كل مقاطعة لها ارقام خدمة معينة لغرض معين مثل المقاطعة int 10h لها ارقام خدمة 02 و 06 فهل هذه الارقام هي عناوين مثل

عناوين المقاطعات ام ماذا ؟ هل هي من ضمن روتين المقاطعة المطلوب تنفيذ خدمة معينة ؟

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

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

البويس الخدمة التي تريد تنفيذها لينتقل إليها التنفيذ

اقتباس
4- فحص حجم الذاكرة هل تقصد بجم الذاكرة رام ام ماذا ؟ لانني جربت المقاطعة في الديبق وجدت الرقم مختلف عن ما هو عندي والذي انا اعرف ان حجم الذاكرة 128 ميجا

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

الذاكرة المقصودة هي الذاكرة المؤقتة كاش .. خاصة بالمعالج

اقتباس
من اين مصدرك في معلومات فكر الشفرات AA 09 0E 02 هل معرفة شفرات البايوس متاحة لكي شخص ام انها سرية مثل معلومة معرفة

كم عدد الاقراص المرنة وغيرها فمن اين احصل علي تلك المعلومات عن فك شفرة كود مثل ذل الكود الذي حدد عنوان روتين مقاطعة؟ كجدول معلومات النظام التابع للبايوس الذي

هو مشفر باكواد معينه تبين معلومات عن الجهاز فكيف اعرف فك تلك الشفارت ؟ كفحص حجم الذاكرة من خلال العنوان 0040:0013h فكيف احدد مكانها وكيف افك شفرات غيرها من العناوين في 0040:...

القسم الأول من السؤال :

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

والأرقام الموضحة حقيقة وهي لتطبيق عملي

بالنسبة لمعلومات وبارمترات جدول معلومات البويس ,, فقد وضحت مثال

تجدة في

/index.php?showtopic=50208

اقتباس
ولكن اذا كان عندي نظامي تشغيل فايهم يحجز مكانه في ال boot sector ؟ وهل يشغلان نفس القطاع ام في قطاع واحد وعلي عنوانين مختلفين؟

تقسيم القرص الصلب يختلف عن القرص المرن

لوقمت بتجربة وتصفحت قطاعات القرص الصلب لوجدت أن أول 8 قطاعات كلها تنتهي

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

من قطاع للإقلاع لأكثر من نظام ولكن البويس يحمل أول قطاع لمعرفة كم نظام يوجد في القرص

اقتباس
بعد أن يجد قطاع الإقلاع سيقوم بتحميلة إلى العنوان address =7C00

هل لكل قطاع عنوان معين مثل عناوين الذاكرة؟ وهل يحمل عنوان القطاع الي الذاكرة عند العنوان 7c00 ؟؟؟ اما انه يعطي القطاع العنوان السابق ويحمله الي ال cs ؟؟؟؟

وهل عندما يجد عنوان الاقلاع فانه يبحث عن البايتين الاخيرين كما ذكرت وهما AA 55 ؟

يقوم البويس بتحميل قطاع الإقلاع إلى العنوان 7c00 ولا يمكن تغيير هذا العنوان

لأن النظام يعتمد على هذا العنوان لنقل التنفيذ لة

وبالطبع فإن البويس يبحث عن توقيع قطاع الإقلاع aa 55

اقتباس
اذا لم يكن القرص مفرمت فكيف نكتب البايتين السابقين ؟

عن طريق برنامج الديبغر .. تنتقل إلى البايت رقم 510 عن طريق الأمر e

وتدخل القيمتين aa 55

اقتباس
: في آخر بارمتر وهو ES:DX هذا البارمتر لا تكتب بة شيء لأنك عندما تنفذ المقاطعة int13

سيقوم البويس بكتابة عنوان تحميل البرنامج إلى الموقع ES:DX , وبهذا تقوم بحفظ هذا العنوان

اي عنوان تحميل البرنامج انت تقصد؟؟؟ هل تقصد بان البرنامج عندما يكون في قطاع معين نحمل عنوانه في ذلك القطاع الي الذاكرة ام ماذا؟ وماذا عن العنوان الذي ذكرته 7c00 هل هو ام عنوان آخر؟

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

هنا يحمل عنوان آخر غير 7c00 وهو عنوان بداية نواة النظام ... وضحت هذة المسألة

في تحميل النظام دوس في القسم الثاني وذكرنا 3 عناوين للتنقل من البويس إلى قطاع الإقلاع ..إلى نظام التشغيل

اقتباس
10- هل من الممكن عمل برنامج الاقلاع الذي عرضته علي القرص الصلب بدل القرص المرن بنفس الكيفية التي اجريتها ؟

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

أن تدخل قرص الإقلاع للنظام ثم تكتب الأمر debug وتعيد القرص كما كان ( يجب أن تحفظ معلومات القرص قبل الكتابة )

اقتباس
11- لو كان عندي برنامج مخزن علي القرص الصلب او المرن ويعمل تحت الدوس يعني بيئة 16 بيت فكيف اطبق ما سبق بجعله يشتغل في البوت سيكتور كما المثال السابق؟

ليس كل برنامج دوس يمكن عملة في قطاع الإقلاع؟ لأن أغلب برامج الدوس

تستخدم مقاطعات الدوس .. ونحن نعرف أن قطاع الإقلاع يحمل قبل كل شيء

أي أنة لا يوجد نظام الدوس ولا جدول لمقاطعات الدوس

والحل : أنك تكتب برنامج وتستخدم بة مقطاعات البويس والبرمجة المباشرة للذاكرة فقط

اقتباس
12- لقد طبقت البرنامج السابق ونجح ولكن عند اعادة تنفيذ ذلك للتجربة مرة أخرى القرص المرن لم يعمل وطلب من النظام عمل فورمات للقرص المرن واخرج رسالة تقول

disk error reading drive A

فما سبب ذلك؟

السبب أن النظام لم يتعرف على القرص .. فنحن نعرف أن النظام يقسم القرص

في بداية قطاع الإقلاع يكتب معلومات عن القرص .. لكي يتعرف على تفاصيلة

وقد قمنا بكتابة برنامجنا في بداية القرص ؟! أي أننا قمنا بمسح هذة المعلومات

وبعمل فورمات للقرص يرجع كما كان

ولو أردت كتابة مثالنا دون إعطاب القرص ... بعد أن تحمل قطاع الإقلاع إلى العنوان 100

أضف لهذا العنوان الرقم 3e وهو حجم المقدمة التي يكتب بها النظام المعلومات

وتبدأ من هذا العنوان بكتابة مثالنا ..

اقتباس
13- هل تطبيق هذا الامر L 100 0 0 1 بعد عمل البرنامج وتطبيق الامر w 100 0 0 1 ام ماذا؟

لم أفهم السؤال ,,

اقتباس
14- ما هي فكرة عمل برنامج يعمل تحت نظام تشغيل بان يشتغل اوتوماتيكيا عن تشغيل النظام عني كيف النظام ينقل او يحجز مكان في الذاكرة لبرنامج عندما يشتغل النظام مثل الانتي فايروس عندما يعمل عندما يقلع النظام؟

لو فكرنا بالاسمبلي عمل برنامج يعمل عندما يعمل النظام فما هي فكرة العمل؟

توجد طرق كثيرة وسهلة في النظام ... مثل الريجستري وملفات ini وغيرها

برنامج الأنتي فايروس يستخدم مكونات النظام وهي طرق متقدمة في الريجستري ولكنها سهلة

وبما أنك ذكرت إستخدام الإسمبلي ?

تستطيع الإستعانة بفكرة الفايروسات

مثلا تكتب كود إسمبلي لتشغيل برنامجك ... تكتب هذا الكود في ملف أساسي

يقوم بتحميلة النظام عند بداية إقلاعة

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

لاتنفع لو كنت تريد إستخادمها في برنامج تجاري .. تروح في ورطة

---

أي توضيح آخر تفضل ... أعتقد أني تسرعت في الإجابة

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#16

السلام عليكم ورحمة الله وبركاته

مشكور والله مشكور

الله يعطيك ألأف عافيه على هذه المعلومات القيمه يأخي jaas

وليس لنا غير الدعاء لكم ولكل من يساهم في إعطاء معلومه قيمة

الله يارب يجعله في ميزان حساناتكم ..اللهم آمين آمين آمين

#18

موضوع شيق جدا و شكرا للمساعدات

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#19

السلام عليكم

أنا ليست لدي خبرة كبيرة في الأسمبلي حيث أكبر ببرنامج كتبته لجمع عددين فقط

ولكن خذوا هذا الكتاب قد ينفعكم

BIOS Level Programming.part1.rar

#22

حاولت فتح الكتاب على winrar و لكنة دائما يعطي رسالة unexpexted End of file

و لا يتم فك الملف

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#23

السلام عليكم

أولاً حمل الملفات الثلاث ثم ضعها في مجلد واحد ثم فك الضغط

إذا المشكلة ما زالت موجودة

حمل أخر نسخة من winrar

#24

قمت يتنزيل أخر أصدار و هذه هى الرسالة

post-79-1106962065_thumb.jpg

تم تعديل هذه المشاركة بواسطة neo في 29 يناير 2005 في 04:27

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#25

السلام عليكم يا neoانتا منين بقولك ممكن تضيفنى على الماسنجر للاهميه

تصميم كافة انواع المواقع البرامج بافضل الاسعار

aaasamy7@hotmail.com

الاسكندريه -مصر

ت:5749981

مواضيع مشابهة