לפורמט Windows Portable Executable יש ניואנסים קטנים משלו, אז הנה מדריך קצר כיצד הם עובדים.
קובץ הפעלה נייד של Windows (PE) הוא פורמט הקובץ המקורי של Windows עבור קובצי הפעלה וסוגי קבצים בינאריים אחרים. פורמט הקובץ PE נועד להיות בלתי תלוי בפלטפורמה, כך שניתן להשתמש בו בכל מחשב של Windows מפעיל את אותה גרסת מערכת הפעלה וארכיטקטורת מעבד שעבורן היה הקובץ מלוקט.
אז בואו ננתח את פורמט הקובץ של Windows PE, ונלמד על המבנה והמרכיבים שלו.
מהו קובץ הפעלה נייד של Windows?
לפני בחינת פורמט Windows Portable Executable, חשוב לנקות את היסודות. בואו ניקח צעד אחורה ונלמד על הרעיון הבסיסי של Windows PE—COFF.
כאשר אתה קומפילציה של קוד המקור לתוכנית, המהדר יוצר קובץ אובייקט (.obj). קובץ אובייקט זה מכיל הוראות עבור המחשב בפורמט בינארי.
COFF או Common Object File Format הוא קבוצה סטנדרטית של מוסכמות לייצוג הוראות בינאריות. COFF מסייע בשמירה על תאימות בין פלטפורמות מכיוון שכל פורמטי הקבצים של COFF פועלים לפי אותה מערכת כללים ומוסכמות לארגון קוד ונתונים. למרות ש-COFF פותח במקור לשימוש במערכות *NIX, הוא נמצא כעת בכל הפלטפורמות.
פורמט הקובץ Windows Portable Executable (PE) הוא שינוי של COFF ופותח לשימוש בלעדי על מערכות Windows 32 סיביות ו-64 סיביות. בניגוד ל-COFF, המספק פורמט סטנדרטי לקובצי אובייקט, Windows PE מספק פורמט סטנדרטי עבור קובצי הפעלה וקבצי ספרייה.
הוא מכיל סעיפים וכותרות המספקים מידע על קובץ ההפעלה המדובר ומסייע למטעין המערכת לנהל נתונים הקשורים לקובץ ההפעלה. הכותרות בקובץ PE עוזרות למטעין המערכת למפות את הקובץ לזיכרון, לפתור תלות כמו ייצוא/ייבוא API, לנהל משאבים ולהכין את הקובץ לביצוע.
ללינוקס יש גם איטרציה משלה של COFF; זה נקרא Executable Link File או בקיצור, ELF binary. אתה יכול לבדוק אם קובץ הוא ELF או לא על ידי הפעלת הקובץ פקודת קובץ ב-Linux עם שם הקובץ כארגומנט הראשון.
המבנה של קובץ הפעלה נייד של Windows
פורמט הקובץ Portable Executable מורכב ממספר רכיבים, שלכל אחד מהם מטרה מסוימת. רכיבים אלה כוללים:
- כותרות קטעים, המתארות את הפריסה והמאפיינים של כל קטע בקובץ הקטעים עצמם, המכילים קוד בר הפעלה, נתונים ומשאבים.
- כותרת PE, המספקת מידע על המבנה והדרישות הכוללות של הקובץ.
- כותרת ה-DOS, הכוללת תוכנה קטנה שפועלת כאשר הקובץ מופעל על מערכת DOS.
- ולבסוף, כותרות סעיפי PE, המתארות את המיקום והתכונות של כל חלק בתוך הקובץ.
בסך הכל, רכיבים אלה פועלים יחד כדי ליצור פורמט מובנה המאפשר למערכת ההפעלה לטעון, לבצע ולנהל כראוי את קוד ההפעלה הכלול בקובץ. בואו נלמד בדיוק מה כל רכיב עושה.
כותרת DOS
החלק הראשון של קובץ PE נקרא כותרת DOS. כמות קטנה של קוד הפעלה מאוחסנת בכותרת ה-DOS שניתן להפעיל גם על מכונת DOS.
קוד זה נקרא גם stub MS-DOS ומשמש להוצאת הודעת שגיאה במערכות שאינן תומכות בקובץ PE.
כותרת PE
הכותרת Portable Executable מספקת מידע על קובץ ההפעלה, כמו גודל הקובץ, היכן ממוקמים החלקים השונים ואיזה משאבים קובץ ההפעלה צריך. לכותרת PE יש גם מידע על סוג קובץ ההפעלה, בין אם זה א קובץ DLL של Windows או קובץ .EXE.
כותרות סעיפים
קטעים מיושמים כדי לארגן את הרכיבים הרבים של קובץ הפעלה כמו קוד, נתונים ומשאבים כמו מחרוזות טקסט, תמונות וכו'. כותרות הסעיפים כוללות מידע לגבי הגודל והמיקום של כל קטע, כמו גם כל הדגלים המשויכים.
הדגלים המשויכים לכל כותרת מקטע יכולים להצביע על תכונות שונות של המקטע, כגון אם הוא בר הפעלה, בר כתיבה או קריא. דגלים אלו עוזרים למערכת ההפעלה לטעון ולנהל כראוי את התוכן של כל סעיף במהלך הפעלת התוכנית.
מקטעים
הקטעים עצמם כוללים את הקוד, הנתונים והמשאבים האמיתיים של קובץ ההפעלה. כל מקטע מיושר לגבול זיכרון מסוים ויש לו סט תכונות משלו המשפיעות על האופן שבו מערכת ההפעלה מטפלת בו.
עכשיו אתה יודע הכל על פורמט הקובץ הנייד של Windows
ה-Windows Portable Executable הוא פורמט קבצים חזק ורב-תכליתי המשמש לייצור מגוון רחב של יישומי Windows ורכיבי מערכת. על ידי הבנת המבנה של פורמט הקובץ PE, מפתחים יכולים לבנות אפליקציות יעילות המנצלות את המאפיינים הייחודיים של Windows.
מלבד השגת הבנה מעמיקה של הפלטפורמה שהאפליקציה שלך תפעל עליה, על ידי מעקב אחר כמה טובות סטנדרטיות שיטות קידוד, תוכל למקסם את איכות האפליקציה ללא קשר לפלטפורמה שהיא מופעלת עַל.