من الماضي
21 يونيو 2007كنت اقوم بجولة تفقدية على الملفات داخل الجهاز لنسخ ماهو ضروري منها ، استعداداً للأنتقال القادم
بالصدفه وقعت على مجموعة من البرامج كنت اعمل على تطويرها منذ مايقارب 4 الى 5 سنوات مضت
لاكن البعض منها لم يكتمل بعد والبعض الآخر اكتمل وضل حبيس مجلده
احببت ان انشرها هنا لكي يستفيد منها الآخرون ، ووقع اختياري على برنامجين اعتقد انهما هما الافضل للنشر
Windows Handles :
يقوم هذا البرنامج باستعرض كيفية التعامل مع المقابض ( Handle ) ضمن نظام التشغيل Windows
ماهو مهم هو كيفية التعامل مع SubHandle ، اعتقد انه جيدر بالاطلاع لكل بحاث في هذا المجال ، البرنامج مرفق مع السورس كود
FileManager For Server :
هذا البرنامج قمت بتطويره اثناء دراستي في المرحلة الثانوية ، من اجل تقديم نوع من المساعدة لمدرس الحاسوب لادارة الملفات داخل المعمل عبر الشبكة
ولاكن للأسف لم يكتمل هذا العمل على الرغم اني قطعت جزء كبير منه
يمكنك الاطلاع على البرنامج فهو مرفق مع السورس كود ، اتمنى ان يتم استخدامه بصورة سليمة
Paldo عشق من أول نظرة
15 يونيو 2007كعادتي احب ان افكر بالمسقبل كثيراً ، فهذه المرة كنت افكر بالانتقال القادم لنظام التشغيل
فبعد اصدار Microsoft لـ Windows Vista اصبح هناك مفرق للطرق
فجميع اعمالي متوافقه او مبنية على انظمة Windows السابقة ، ولاكن المستقبل سيحتم علي الانتقال الى ماهو جديد لامحالة
خلال الفترة السابقة كنت قد حصلت على توزيعات Linux المختلفة كـ Suse ، Ubuntu , Mandriva ..
ولاكن لم يكن هناك آلفه كما هو الحال مع XP
ولاكن !!
اليوم استطعت الحصول على احدى توزيعات Linux الجديدة والتي تدعى Paldo
بعد تجربة امتدت لـ 5 دقائق فقط حصلت هناك الفه غير مسبوقة سواء لي انا او لجهازي المحمول
فكانت متناغمه تناغم تام مع Hardware ، وكذلك ايضاً فهي نسخة موجهه للمبرمجين حيث تحتوي بشكل اساسي على اغلب بيئات التطوير لـ Linux
حتى اني أصبحت اشك بأن هذه التوزيعة صنعت لي انا خصيصاً ولجهازي انا بالتحديد ![]()
سنتحدث عنها بمزيد من التفاصيل في تدوينات قادمه
( والله يديم المحبه )
خارطة PE
14 يونيو 2007بعد جولة تفقدية لمستنداتي ، وجدت بالصدفة كتاب او مرجع ( pdf ) على شكل رسم بياني
يبين تركيبه PE بشكل دقيق ، موضحاً اقسامها وفروعها بالتفصيل
فهي بالفعل خارطة لاغنى عنها لكل من يريد ان يكتشف هذا العالم الرائع
يمكن الحصول عليها من هنا
Export Table
6 يونيو 2007سنستعرض هنا كيفية الوصول الى اسماء الدوال التي تقدمها الملفات المكتبية
يوجد عنوان الجدول عند الازاحة 178 من بداية الملف ( RVA )

عند الذهاب الى عنوان الجدول سنجد التالي

هذي هي تركيبة الجدول من بداية عنوانه
struct _IMAGE_EXPORT_DIRECTORY {
0x00 DWORD Characteristics;
0x04 DWORD TimeDateStamp;
0x08 WORD MajorVersion;
0x0a WORD MinorVersion;
0x0c DWORD Name;
0x10 DWORD Base;
0x14 DWORD NumberOfFunctions;
0x18 DWORD NumberOfNames;
0x1c DWORD AddressOfFunctions;
0x20 DWORD AddressOfNames;
0x24 DWORD AddressOfNameOrdinals;
};
مايهمنا هو شيئين NumberOfNames و AddressOfNames
في الصورة السابقة قمت بتلوين مكان وجود الحقل NumberOfNames باللون الاصفر
وكذلك AddressOfNames باللون الاخضر
من الصورة السابقة
NumberOfNames = 10 وهي عدد الدوال
AddressOfNames = 040068 وهي بداية عنوان جدول الاسماء
لننتقل الى AddressOfNames

ما هو مظلل باللون الرصاصي يشير الى بداية الجزء ويمثل عنوان اسم اول دالة ( حجم العنونة DWord )
للنتقل الى هذا العنوان

كما تشاهد في الصورة اسم الدالة التي يشير اليها العنوان السابق ، وهكذا يتم الوصول الى بقية الدوال
ونتوقف عن قراءة الدوال عند الوصول الى العدد المسجل في NumberOfNames والتي يمثل العدد الكلي للدوال
هذا كل مافي الأمر،
وقد قمت بعمل برنامج بـ C++ Builder يقوم بإستخراج اسماء الدوال من جدول Export Table تلقائياً
يمكنك الاطلاع عليه فهو مرفق مع السورس كود


