Import Table

27 مايو 2007

Import Table هو جدول الملفات المستورده المستخدمه دولها ضمن البرنامج ( sub routine )

سنستعرض هنا كيفية الوصول الى هذا الجدول ومعرفة اسماء الملفات المستخدمه ودوالها ضمن بنية PE
( يفضل وجود معرفة مسبقة عن هذه البنية او مراجعة PECOFF في احدى التدوينات السابقة )

تبدأ بنية ملفات PE بـالرأس DOS Header وهي من بقايا البنية MZ ، فالـ PE اتت كتطوير للبنية MZ

1.gif

مايهمنا هنا ماهو موجود في العنوان 3c وهو بداية الجزء PE بالرأس NT Header مسجل كقيمة RVA اي مقدار الازاحة من بداية الملف
كما هو موضح في الصورة السابقة فالقيمة الموجودة في العنوان 3c هي 100 ( جميع القيم بـ Hex ) لننتقل الى هذا العنوان

2.gif
هنا يبدا الراس الحقيقي للـ PE والذي يميزه المعرف PE في اول 4 بايت من هذا الجزء
عند العنوان 180 نجد عنوان الجدول ( Import Table ) مسجل كقيمة RVA
ننتقل الى هذا العنوان

5.gif

في هذه الصورة قسمت هذه المنطقة الى عدة الوان
مايهمنا هو كل من اللونين الرمادي والاصفر ، وبقية الالوان تمثل حجم كل حزء
القيمة الموجودة في اللون الرمادي بالجزء الاول تشير الى العنوان الذي يحوي اسم الملف المستورد القيمة مسجله كـ RVA
والقيمة الاخرى الموجودة في اللون الرمادي في الجزء التالي ( باللون الازرق ) تشير الى الملف التالي وهكذا
للايضاح لو انتقلنا الى العنوان المسجل في المربع الرمادي الاول وهو 05B714 سنجد التالي :

3.gif
كما تلاحظ اسم الملف هو kernel.dll

اما بالنسبة للون الاصفر فهو يمثل بداية الجدول للدوال المستخدمة لهذا الملف
فلو انتقلنا الى العنوان المسجل في المربع الاصفر الاول وهو 5B12C
4.gif

كما تلاحظ فهو عبارة عن جدول يحتوي جميع الدوال المستورده من الملف وكل خانة عبارة عن DWord تشير الى العنوان الموجود فيه اسم الدالة
وينفصل جدول الدوال لكل ملف عن الآخر بالصفر ( 0 )

وهكذا نحصل على Import Table
هذه الطريقة يدوية ، استخدمتها لتبيين الامر
نفس العمل يتم برمجياً ، ولاكن هناك البنيات التركيبية للـ PE معرفة ضمن مكتبة windows
مما يسهل الوصول الى البيانات

قمت بعمل برنامج يقوم باستخراج البيانات برمجياً
يمكنك الاطلاع عليه ( فهو مرفق مع السورس كود )

prog.gif

النسخة الاولى لـ Delphi

itdelphi.zip
النسخة الثانية لـ C++ Builder

itc.zip

مصنف في: Delphi, C & C++, عام | | لا تعليقات »

BatchX

26 مايو 2007

في مادة OS طلب منا تقديم اي من البرامج التي تقوم بتحويل ملفات Batch File على نظام التشغيل Windows الى ملفات ذاتيه التنفيذ .exe

بعد بحث بسيط وجدت مايقارب 85% من هذه البرامج تجاريه ، وماعداها كانت برامج قديمة لاتقدم الدعم الكامل للأوامر
كان ذلك محفزاً لأن اقوم ببناء برنامج جديد ، من اجل دعم المصادر المفتوحه
بالفعل نجحت في صنع برنامج جديد ومميز ، واسميته BatchX

BatchX Program
مازال البرنامج في نسخته التجريبية ، وساقدمه كـ OpenSource تحت رخصة GPL عندما انتهى من تجربته ، وكتابة الوثائق.

يمكنكم الآن الحصول على البرنامج من هذا الرابط :

انقر هنا للتحميل

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

مصنف في: Delphi, عام | | تعليق واحد »

وثيقة PECOFF

6 مايو 2007

تقدم شركة Microsoft وثيقة تفصيلية عن مايمسى بـ PECOFF وهي كلمة مركبة من جزئين هما PE و COFF

PE هي Portable Executable
COFF هي Common Object File Format

والمقصود بها هي بنية الملفات التنفيذية لنظام التشغيل ويندوز . تم بناء هذه التركيبة في بداية اصدارت ويندوز NT ،حيث كانت تعتمد سابقاً على MZ وهي البنية التركيية لـ DOS 2.0 ، تعتبر PE امتداد وتطوير للـ MZ

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

يمكنك الحصول عليها من هنا :
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx

بعد اتمام الإتفاقية :)

لعلي في تدوينات قادمه اقدم تطبيقات عملية حول هذا المجال
كـ Export Table ، Import Table , Injection , Packer

مصنف في: عام | | لا تعليقات »