السلام عليكم
الملف الذي سأقدمه لكم هو عبارة عن صف Class كتبته بلغة C++ بعناية للتعامل مع الملفات التنفيذية بشكل أسهل برمجياً، حيث يقوم الصف بقراءة الملف التنفيذي إلى الذاكرة ليصبح بإمكانك إضافة section مثلاً أو إضافة توابع من مكاتب غير موجودة ضمن الـ Import Table للملف التنفيذي بكل سهولة.
مثال على الاستخدام:
لفتح ملف تنفيذي عرف غرض من الصف PEFile كما يلي:
PEFile pe("1.exe");يمكن إضافة section جديدة باستخدام التابع addSection كما يلي:
pe.addSection(".at4re", 0x1000, false);كما يمكن إضافة import للتابعين MessageBox & ShowWindow مثلاً باستخدام التابع addImport كما يلي:
char* functions[] = { "MessageBoxA", "ShowWindow" };
pe.addImport("user32.dll", functions, 2);و أخيراً احفظ الملف المعدل كما يلي:
pe.saveToFile("1+.exe");في البداية كان هناك مشاكل مع بعض الملفات التنفيذية و خصوصاً التي تحوي Bound Import Table (مثال التطبيقات التي تأتي مع ويندوز كالآلة الحاسبة و المفكرة...) و لذا اضطررت لنقل هذا الجدول لمقطع جديد، و كانت هناك مشكلة إضافة import إلى جدول الـ import table أيضاً قمت بنقل الجدول الجديد إلى مقطع جديد..
*تصفحوا الكود فهناك توابع لم أذكرها في الموضوع * :)
أتمنى أن تستفيدوا من هذا الكود كل الفائدة
تحياتي..
------------------
ملاحظة:
هذا الكود جزء من برنامج تشفير صممته قبل أشهر، و لكم كامل الحرية في استخدامه و توزيعه
