شرح ماذا يحدث في الخفاء لبرنامج مبرمج بدلفي
#1
برمجت برنامج بدلفي و أسأل ماذا يحدث من لحظة الضغط على البرنامج الى الانتهاء
ماذا يحدث في رام و ماذا يفعل النظام و ماذا يحدث في المعالج...؟
و اذا امكن ان يشرح من خلال الاولي لافهم كيف تحدث الامور و جزاكم الله خيرا
البرنامج و سورس كود
كود :
http://www.gulfup.com/?tQX9xa
الرد
#2
عند تشغيل البرنامج (دبل كليك ) يقوم لودر الوينداوز بحجز مساحة في الذاكرة ثم يقوم بتحميل البرنامج الى الذاكرة ..
عندما يكتمل التحميل يقوم المعالج بنداء أول تعليمة في البرنامج , قد تتساءل كيف سيتم التعرف على أول تعليمة :
ببساطة سيتم تخزين عنوان أول تعليمة في البرنامج نفسه عند Entry Point (نقطة البداية) .
برنامجك يتكون من دالة واحدة فقط MessageBox : عندما يتم اضهار المسج بوكس يتم انتظار أمر الخروج من الدالة قبل
تنفيذ السطر الثاني من الكود الذي يأتي بعد الدالة MessageBox ..
السطر التالي من الكود سطر مخفي ان صح التعبير فقط الكومايلر مسؤول عن انشائه و يتمثل في مناداة الدالة ExitProcess المسؤولة عن الخروج من البرنامج .
Open Your Source .. Open Your Mind
الرد
#3
جيد جيد ما شاء الله لديك خبرة كبيرة
مثلا اذا جاء مهندس عكسي و ليس لديه كود سورس كيف سيعرف ان هذا هو الكود الذي قام المبرمج بكتابته؟
عن طريق الاولي فقط؟
و بالمناسبة كيف اتعلم معرفة الاخطاء عن طريق المنقح؟
الرد
#4
Ninja C0d3r كتب :كيف سيعرف ان هذا هو الكود الذي قام المبرمج بكتابته؟
و كيف اتعلم معرفة الاخطاء عن طريق المنقح؟
المهندس العكسي قادر على قراءة و فهم الكود بدون اللجوء الى السورس .. لأن الكود (كود دلفي) في الأخير سيحول الى كود أسمبلي ..
بمعرفة لغة الأسمبلي يمكن التعديل على أي جزء من البرنامج ..
يلجأ المهندس العكسي لكسر برامج دلفي الى Olly & DeDe و أدوات أخرى ..

معرفة الأخطاء بالمنقح يعتمد على تتبع سير البرنامج خطوة خطوة الى غاية الوصول الى مكان الخطأ .
ان كنت تستخدم Olly فعليك أن تتقن لغة الأسمبلي + فهم جيد لدوال الوينداوز حتى تتمكن من ايجاد الأخطاء و ترقيعها ..
Open Your Source .. Open Your Mind
الرد
#5
لغة الاسمبلي وجدتها معقدة خصوصا في المسجلات
مثلا يقول لك المسجل به 16 بت
و ممر العنوان به 20 بت؟
عقدتني :eek:
الرد
#6
Ninja C0d3r كتب :لغة الاسمبلي وجدتها معقدة خصوصا في المسجلات
عقدتني :eek:

بالفعل لغة الاسمبلي معقدة قليلا .. لكن ستعتاد عليها مع الوقت ..
أنصحك بدروس Iczelion's Tutorials .

كود :
http://win32assembly.programminghorizon.com/tutorials.html
Open Your Source .. Open Your Mind
الرد
#7
مع اني لا افقه شئا في اللغة الانجليزية و لكن الدروس اراه سهلة و غير معقدة :d
جزاك الله خيرا سأحاول مع هذه الدروس Smile
الرد
#8
Ninja C0d3r كتب :سأحاول مع هذه الدروس Smile
بـالـتوفيـق .. Smile
Open Your Source .. Open Your Mind
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم