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

إليكم كود لإضافة Sections & Imports لملفات Exe

بدأه in4matics في 5 فبراير 2008 · 7 رد · 3,660 مشاهدة · في المواضيع و الدروس القيّمة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الملف الذي سأقدمه لكم هو عبارة عن صف 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 أيضاً قمت بنقل الجدول الجديد إلى مقطع جديد..

*تصفحوا الكود فهناك توابع لم أذكرها في الموضوع * :)

أتمنى أن تستفيدوا من هذا الكود كل الفائدة

تحياتي..

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

ملاحظة:

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

m_PEFile.rar

تم تعديل هذه المشاركة بواسطة in4matics في 5 فبراير 2008 في 05:49

[وسط]--------------------------------------------------------

Impossible Is Nothing

2 B || ! 2 B

[/وسط] 

#2

السلام عليكم ,

مرحب بك in4matics , والف شكر على السورس :thumb_up:

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

شكراً لك أخي GamingMasteR

و المعذرة على كتابة الموضوع في القسم الخطأ :D

[وسط]--------------------------------------------------------

Impossible Is Nothing

2 B || ! 2 B

[/وسط] 

#4

شكرا و إن شاء الله أتعلم منه حاجات جديدة.

rasool4k.gif

[وسط]mimetex.cgi?MSN:root@root-shell.net.

[/وسط]

#5

على الرحب و السعة أخي croconile :)

[وسط]--------------------------------------------------------

Impossible Is Nothing

2 B || ! 2 B

[/وسط] 

#6

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

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#7

ما نوع البيانات التي تريد تغييرها عادل؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

مشكور

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