.EXE Windows Executable
.exe

Windows Executable

ملف EXE هو ملف تنفيذي بصيغة Portable Executable (PE) يبدأ بتوقيع MZ (البايتات 4D 5A) ويحتوي شيفرة آلية يُنفّذها المعالج مباشرة. خطر أمني مرتفع — FileDex يعرض مرجعاً تقنياً فقط دون تشغيل أو رفع أي ملف.

بنية الصيغة
Header schema
Records structured data
بيانات وصفية1981
بواسطة FileDex
غير قابل للتحويل

ملفات EXE تحتوي شيفرة آلية مُترجمة ولا يمكن تحويلها بين الصيغ. FileDex يعرض مرجعاً تقنياً عن بنية PE وتحليل الأمان للملفات التنفيذية في Windows.

أسئلة شائعة

ما هو ملف EXE؟

ملف EXE هو ملف تنفيذي بصيغة Portable Executable (PE) في نظام Windows. يحتوي شيفرة آلية مُترجمة (لمعالجات x86 أو x64 أو ARM64) أو شيفرة .NET bytecode يُنفّذها محمّل Windows مباشرة. كل ملف EXE يبدأ ببايتات التعريف 4D 5A (الحرفان MZ — الأحرف الأولى من اسم Mark Zbikowski، أحد مهندسي MS-DOS). الترويسات تحدد المعالج المستهدف ونقطة بداية التنفيذ والمكتبات المطلوبة.

هل فتح ملف EXE آمن؟

تشغيل ملف EXE يمنحه صلاحيات المستخدم الذي شغّله بالكامل. ملفات EXE غير موثوقة قد تُثبّت برمجيات خبيثة (malware) أو تسرق بيانات الاعتماد أو تُشفّر الملفات لطلب فدية. شغّل ملفات EXE من ناشرين موثوقين فقط ذوي توقيع Authenticode صالح. افحص الملفات المجهولة على VirusTotal قبل التشغيل. تحذير SmartScreen في Windows هو خط حماية أولي وليس بديلاً عن الثقة المُتحقق منها.

لماذا يحظر SmartScreen ملف EXE غير ضار؟

SmartScreen يستخدم نظام سمعة مبنياً على حجم التحميلات وتاريخ التوقيع. ملف EXE موقّع حديثاً أو غير موقّع لا يملك بيانات سمعة فيُطلق تحذيراً بغض النظر عن محتواه الفعلي. شهادات توقيع Extended Validation (EV) تتجاوز فحص السمعة. الشهادات العادية تحتاج تراكم تحميلات قبل توقف SmartScreen عن التحذير.

ما الفرق بين ملف EXE بـ 32 بت و 64 بت؟

ملف 32 بت يستخدم صيغة PE32 (رقم التعريف 0x10B في الترويسة الاختيارية) مع حقول عناوين بحجم 4 بايتات. ملف 64 بت يستخدم PE32+ (رقم 0x20B) مع حقول بحجم 8 بايتات تدعم ذاكرة فوق 4 غيغابايت. نظام Windows 64 بت يُشغّل ملفات 32 بت عبر طبقة التوافق WoW64. نظام Windows 32 بت لا يستطيع تشغيل ملفات 64 بت إطلاقاً.

كيف أفحص ملف EXE مشبوه بدون تشغيله؟

ارفع الملف على VirusTotal لفحصه مقابل أكثر من 70 محرك مضاد فيروسات. لتحليل محلي، استخدم أدوات PE مثل PE-bear أو CFF Explorer لقراءة الترويسات والأقسام وجداول الاستيراد دون تنفيذ أي شيفرة. أداة dumpbin من Microsoft تعرض التفاصيل التقنية الكاملة من سطر الأوامر. لا تفتح الملف بالنقر المزدوج أبداً حتى تتأكد من مصدره.

هل يمكن تشغيل ملفات EXE على macOS أو Linux؟

لا يمكن تشغيلها أصلاً. ملفات EXE تستهدف محمّل PE في Windows وواجهة Windows API. على macOS، برنامج Wine أو CrossOver يترجم استدعاءات Windows API إلى ما يعادلها في macOS. على Linux، Wine يوفر نفس طبقة الترجمة. الأجهزة الافتراضية (Parallels و VMware و VirtualBox) تُشغّل بيئة Windows كاملة. Mono يُنفّذ بعض ملفات .NET EXE عبر المنصات.

هل يمكن لـ FileDex تحويل ملفات EXE؟

لا. ملفات EXE تحتوي تعليمات معالج مُترجمة أو شيفرة .NET bytecode لا يمكن تحويلها بشكل مجدٍ إلى صيغة أخرى. لا توجد أداة آلية تحوّل ملفاً تنفيذياً لـ Windows إلى ملف لـ macOS أو Linux. FileDex يقدم توثيق بنية PE ومرجع تحليل أمني فقط. لا تُرفع أو تُنفّذ أو تُعالج أي ملفات EXE.

ما يميز .EXE

اسم في كل ملف
MZ = Mark Zbikowski منذ 1981
البايتات 4D 5A في بداية كل ملف EXE هي الأحرف الأولى من اسم Mark Zbikowski، أحد مهندسي MS-DOS في Microsoft. توقيعه الشخصي يبدأ مليارات الملفات التنفيذية منذ أكثر من أربعة عقود.
أثر تاريخي في كل برنامج
"Cannot be run in DOS mode"
كل ملف EXE حديث يحتوي برنامج DOS صغيراً يطبع هذه الرسالة ثم ينتهي. لا أحد يُشغّل PE تحت DOS منذ عقود، لكن رابط Microsoft يُولّد هذا الجزء افتراضياً. مثبّت Windows 98 استخدم جزء DOS مخصصاً لتشغيل مثبّت DOS حقيقي.
البصمة غير الموثّقة
Rich Header يكشف أدوات البناء
بين جزء DOS وتوقيع PE، يُضمّن رابط Microsoft بنية مشفّرة بـ XOR تسجّل كل إصدار مُترجم ورابط استُخدم في بناء الملف. لم تُوثّق رسمياً قط، لكن باحثي الأمان يستخدمونها لتعقّب مصادر البرمجيات الخبيثة.
أربعة أجيال، ترويسة واحدة
من COM (السبعينيات) إلى PE (1993)
تطوّرت الملفات التنفيذية على x86 عبر COM (مسطح بلا ترويسة) و MZ (DOS، 1981) و NE (Windows 16 بت، 1985) و PE (32/64 بت، 1993). كل جيل أبقى ترويسة MZ في البايت صفر للتوافق مع السابق.

توقيع MZ: اسم مهندس في كل ملف تنفيذي

افتح أي ملف EXE في محرر سداسي عشري وستجد أول بايتين هما 4D 5A — الحرفان M و Z بترميز ASCII. هذان الحرفان هما الأحرف الأولى من اسم Mark Zbikowski، أحد المهندسين الرئيسيين في تطوير نظام MS-DOS في شركة Microsoft. صمّم Zbikowski صيغة الملف التنفيذي الأصلية لنظام DOS حوالي عام 1981، ومنذ ذلك الحين يبدأ كل ملف EXE و DLL و SYS على نظام Windows بهاتين البايتين. لا توجد صيغة ملفات أخرى في تاريخ الحوسبة تحمل توقيعاً شخصياً عبر مليارات الملفات لأكثر من أربعة عقود.

اكتشف التفاصيل التقنية

تطوّر الصيغة: من COM إلى PE

مرّت الملفات التنفيذية على معالجات x86 بأربعة أجيال. ملفات COM (سبعينيات القرن العشرين) كانت صورة ذاكرة مسطحة بدون ترويسة — حجمها الأقصى 65,280 بايت. صيغة MZ EXE (1981) أضافت ترويسة مع جداول إعادة التوزيع للسماح بتحميل البرامج في عناوين ذاكرة متغيرة. صيغة NE (الـ New Executable، 1985) قدّمت الجداول المقطعية والموارد المضمّنة لبيئة Windows 1.0 ذات 16 بت. صيغة PE (الـ Portable Executable، 1993) استبدلت النموذج المقطعي بفضاء عناوين مسطح 32/64 بت مستمد من مواصفة COFF في Unix. كل جيل أبقى على ترويسة MZ في البايت صفر للتوافق مع الإصدارات السابقة.

بنية PE الثنائية

ملف PE هو حاوية ثنائية ذات طبقات متتالية:

ترويسة DOS (64 بايت): الحقل e_magic عند الموضع 0x00 يحمل توقيع MZ (البايتات 4D 5A). الحقل e_lfanew عند الموضع 0x3C هو مؤشر بحجم 4 بايتات يشير إلى موقع توقيع PE في الملف. هذا المؤشر هو الجسر بين بنية DOS القديمة وبنية PE الحديثة.

جزء DOS التشغيلي (حجم متغير): يبدأ عند الموضع 0x40 ويحتوي برنامجاً صغيراً لنمط DOS الحقيقي يطبع عبارة "This program cannot be run in DOS mode" ثم ينتهي. هذه الرسالة أثر تاريخي — لا أحد يُشغّل ملفات PE تحت DOS الحقيقي منذ عقود، لكن رابط Microsoft يُولّدها افتراضياً.

الترويسة الغنية (Rich Header): بين جزء DOS وتوقيع PE، يُدرج رابط Microsoft بنية مشفّرة بعملية XOR تحتوي بصمات بيئة البناء — إصدارات المُترجم والرابط وعدد ملفات الكائنات. هذه البنية غير موثّقة في مواصفة PE الرسمية. استخدمها باحثو الأمان لتعقّب مجموعة Lazarus الكورية الشمالية من خلال تحليل بصمات Rich Header في البرمجيات الخبيثة.

توقيع PE (4 بايتات): البايتات 50 45 00 00 (الحرفان "PE" متبوعان بصفرين) عند الموضع المحدد في e_lfanew. إذا كانت هذه البايتات مفقودة أو تالفة، يرفض محمّل Windows الملف.

ترويسة COFF (20 بايت): تتبع توقيع PE مباشرة. حقل Machine (بايتان) يحدد المعالج المستهدف: 0x14C لمعالج Intel i386، و 0x8664 لمعالج AMD64، و 0xAA64 لمعالج ARM64. حقل NumberOfSections يحدد عدد الأقسام. حقل TimeDateStamp يسجّل وقت بناء الملف.

الترويسة الاختيارية (PE32: 224 بايت، PE32+: 240 بايت): رغم اسمها، هذه الترويسة إلزامية للملفات التنفيذية. حقل Magic يميّز إصدار الصيغة: 0x10B لـ PE32 (32 بت) و 0x20B لـ PE32+ (64 بت). حقل AddressOfEntryPoint يحدد عنوان بداية التنفيذ. حقل Subsystem يحدد نوع التطبيق: واجهة رسومية (القيمة 2) أو سطر أوامر (القيمة 3). أعلام DllCharacteristics تُفعّل الحمايات الأمنية: ASLR (عشوائية العناوين) و DEP (منع تنفيذ البيانات) و CFG (حماية تدفق التحكم).

جدول الأقسام: كل مُدخل بحجم 40 بايت يربط اسم القسم بعنوانه في الذاكرة. القسم .text يحتوي الشيفرة التنفيذية، و .rdata يحتوي جداول الاستيراد، و .rsrc يحتوي الموارد (الأيقونات والمانيفست ومعلومات الإصدار)، و .reloc يحتوي مُدخلات إعادة التوزيع لآلية ASLR.

PE32 مقابل PE32+: الفرق البنيوي

PE32+ ليست صيغة جديدة بل PE32 مع حقول عناوين أوسع. حقل ImageBase يتوسع من 4 إلى 8 بايتات. حقول أحجام المكدس والكومة تتوسع من 4 إلى 8 بايتات لكل منها. حقل BaseOfData الموجود في PE32 يُحذف كلياً في PE32+. نظام Windows ذو 64 بت يُشغّل ملفات PE32 (32 بت) عبر طبقة التوافق WoW64. نظام Windows ذو 32 بت لا يستطيع تشغيل ملفات PE32+ إطلاقاً.

التوقيع الرقمي وسلسلة الثقة

تقنية Authenticode من Microsoft توقّع ملفات PE بحساب خلاصة تشفيرية (hash) للملف — مع استثناء حقل المجموع الاختباري ومُدخل جدول الشهادات — ثم تضمين سلسلة شهادات X.509 في جدول شهادات السمات. نظام SmartScreen يبني على Authenticode بإضافة السمعة: ملف EXE موقّع رقمياً من ناشر جديد يُطلق تحذيراً حتى يتراكم عدد كافٍ من التحميلات.

لماذا ملفات EXE خطيرة بطبيعتها

صيغة EXE ليست خطيرة بسبب ثغرات — بل لأن تنفيذ شيفرة عشوائية على المعالج هو بالضبط ما صُمّمت لفعله. عندما يُحمّل Windows ملف EXE، يخصص له ذاكرة، يحل جداول الاستيراد، ثم ينقل التحكم إلى نقطة الدخول. من تلك اللحظة، الشيفرة تملك صلاحيات المستخدم الذي شغّلها بالكامل.

هذا هو السبب الجذري لكون EXE أكثر أنواع الملفات استخداماً في توزيع البرمجيات الخبيثة. خدمات البريد الإلكتروني تحظر مرفقات .exe. المتصفحات تعرض تحذيرات عند تحميل ملفات EXE. نظام Windows يفرض التحكم بحساب المستخدم (UAC) قبل رفع الصلاحيات. بيئات المؤسسات تنشر AppLocker أو Windows Defender Application Control لتقييد التنفيذ على الملفات المعتمدة فقط.

مقارنة .EXE مع البدائل

مقارنة .EXE مع الصيغ البديلة
المقارنة المعيار الفائز
.EXE vs .MSI
نموذج التثبيت
حزم MSI تستخدم قاعدة بيانات علائقية مع تثبيت/إزالة تراجعي ونشر عبر Group Policy وإصلاح تلقائي. مثبّتات EXE تُنفّذ شيفرة عشوائية بدون آلية إزالة معيارية.
MSI أفضل
.EXE vs .DLL
نموذج التنفيذ
كلاهما يستخدم صيغة PE بترويسات متطابقة. EXE عملية مستقلة يُحمّلها محمّل Windows. DLL مكتبة مشتركة تُحمّل في فضاء عناوين عملية أخرى. الفرق البنيوي هو علم IMAGE_FILE_DLL (0x2000) في حقل Characteristics.
تعادل
.EXE (PE) vs .ELF
المنصة
PE هي صيغة الملفات التنفيذية الأصلية لـ Windows. ELF هي الصيغة الأصلية لـ Linux وFreeBSD وأغلب أنظمة Unix. كلتاهما تحمل شيفرة آلية وأقساماً وبيانات الربط الديناميكي لنظام تشغيل مختلف.
تعادل
.EXE (PE) vs .MACH-O
المنصة
Mach-O هي صيغة الملفات التنفيذية الأصلية لـ macOS و iOS. PE تخدم Windows. Mach-O تدعم الملفات الثنائية العامة (عدة معماريات في ملف واحد) أصلاً — PE تتطلب ملفات منفصلة لكل معمارية.
تعادل

المرجع التقني

نوع MIME
application/vnd.microsoft.portable-executable
Magic Bytes
4D 5A MZ DOS header. PE signature at offset specified by e_lfanew field.
المطوّر
Microsoft
سنة التقديم
1993
معيار مفتوح
لا
000000004D5A MZ

MZ DOS header. PE signature at offset specified by e_lfanew field.

البنية الثنائية

ملف PE التنفيذي حاوية ثنائية متعددة الطبقات. تبدأ بترويسة DOS بحجم 64 بايت (التوقيع MZ عند الموضع 0x00، المؤشر e_lfanew عند الموضع 0x3C). بين جزء DOS وتوقيع PE تقع الترويسة الغنية المشفّرة بـ XOR. ثم توقيع PE (البايتات 50 45 00 00) متبوعاً بترويسة COFF (20 بايت: نوع المعالج، عدد الأقسام، الطابع الزمني). الترويسة الاختيارية (224 بايت لـ PE32 أو 240 بايت لـ PE32+) تحتوي نقطة الدخول وقاعدة الصورة ونوع النظام الفرعي وأعلام الأمان ومؤشرات أدلة البيانات. جدول الأقسام يختم الترويسات بمُدخلات من 40 بايت تربط الأقسام (.text و .rdata و .data و .rsrc و .reloc) بعناوينها الافتراضية ومواقعها في الملف.

1981Mark Zbikowski يصمم صيغة MZ التنفيذية لنظام MS-DOS مؤسساً بايتات التعريف 4D 5A التي تستمر في كل ملف تنفيذي على Windows حتى اليوم1985Microsoft تُقدّم صيغة New Executable (NE) مع Windows 1.0 — صيغة 16 بت تدعم الاستيراد والتصدير والموارد مع الحفاظ على ترويسة MZ1993Windows NT 3.1 يُطلق صيغة Portable Executable (PE) مستبدلاً NE بفضاء عناوين مسطح 32 بت مستمد من مواصفة COFF في Unix2003PE32+ (64 بت) يظهر مع Windows XP Professional x64 Edition بحقل ImageBase بحجم 8 بايتات ودعم معمارية AMD642005Windows Vista يُقدّم دعم ASLR الإلزامي عبر علم DYNAMIC_BASE في حقل DllCharacteristics لعشوائية عناوين تحميل الصور2015Windows 10 يُضيف حماية تدفق التحكم (CFG) كعلم في DllCharacteristics للتحقق من أهداف الاستدعاء غير المباشر أثناء التشغيل2020Windows on ARM يُقدّم نوع المعالج ARM64EC (0xA641) لتمكين التشغيل المتداخل بين شيفرة ARM64 و x64 في ملف PE واحد
قراءة توقيع MZ و PE بأداة xxd أخرى
xxd -l 64 program.exe

يعرض أول 64 بايت من ملف EXE. البايتان الأولان 4D 5A هما توقيع MZ. القيمة عند الموضع 0x3C تشير إلى موقع توقيع PE (البايتات 50 45 00 00) في الملف.

فحص ترويسات PE باستخدام dumpbin أخرى
dumpbin /headers program.exe

أداة dumpbin من Microsoft (أدوات بناء Visual Studio) تقرأ ترويسة DOS وتوقيع PE وترويسة COFF والترويسة الاختيارية وجدول الأقسام. الخرج يتضمن نوع المعالج ونقطة الدخول وقاعدة الصورة ونوع النظام الفرعي.

تعريف نوع PE باستخدام أداة file أخرى
file program.exe

يُبلّغ عن صيغة PE32 أو PE32+ ونوع النظام الفرعي (واجهة رسومية أو سطر أوامر) والمعمارية المستهدفة. متوفر على Linux و macOS و Windows عبر Git Bash.

التحقق من التوقيع الرقمي Authenticode أخرى
signtool verify /pa /v program.exe

أداة signtool من Microsoft (حزمة Windows SDK) تتحقق من سلسلة شهادات Authenticode المضمّنة في ملف PE. العلم /pa يستخدم سياسة التحقق الافتراضية والعلم /v يعرض تفاصيل الشهادة والطابع الزمني.

عالي

نقاط الضعف

  • تنفيذ شيفرة عشوائية — ملف EXE يُنفّذ شيفرة آلية بصلاحيات المستخدم الذي شغّله بالتصميم وليس بثغرة
  • تصعيد الصلاحيات — ملفات EXE يمكنها طلب رفع الصلاحيات عبر مانيفست UAC أو استغلال خدمات النظام للحصول على صلاحيات SYSTEM
  • اختراق سلسلة التوريد — حقن شيفرة خبيثة أثناء البناء أو التوزيع أو التحديث يُنتج ملف EXE صالحاً بنيوياً لا يمكن تمييزه عن الأصلي
  • تحميل DLL الجانبي — التلاعب بجداول الاستيراد أو ترتيب بحث DLL يجعل الملف التنفيذي يُحمّل مكتبات خبيثة عند بدء التشغيل
  • حقن كهوف الشيفرة — الكتابة فوق المساحات غير المستخدمة في أقسام PE بشيفرة خبيثة مع الحفاظ على نقطة الدخول الأصلية

الحماية: FileDex لا يُنفّذ أو يُحمّل أو يرفع أو يُحلّل ملفات EXE. هذه صفحة مرجعية فقط تقدم توثيق بنية PE وسياق التحليل الأمني.

PE-bear أداة
عارض PE مفتوح المصدر مع فحص ترويسات رسومي وخريطة أقسام ومتصفح استيراد/تصدير — يدعم PE32 و PE32+
CFF Explorer أداة
محرر وعارض PE من NTCore مع عرض سداسي عشري وتحرير ترويسات ومتصفح موارد ومُعيد بناء جداول الاستيراد
PEiD أداة
يُعرّف أدوات الحزم والتشفير والمُترجمات في ملفات PE بمطابقة التوقيعات — أداة أساسية في فرز البرمجيات الخبيثة
VirusTotal خدمة
يفحص ملفات PE مقابل أكثر من 70 محرك مضاد فيروسات ويعرض معلومات ترويسات PE وجداول الاستيراد وحالة توقيع Authenticode