האם יש אפשרות

HaRmosh

New member
האם יש אפשרות

לכתוב לתוך ה-Data Segment של קובץ EXE ? נניח שבכתיבת תוכנית ב-C, הצהרתי על מערך בגודל מסויים. האם המקום למערך נשמר ב-Data-segment של קובץ ה-exe וניתן לכתוב למקום זה מידע כלשהו ?
 

voguemaster

New member
רק אם המערך הוא גלובלי או סטטי

ואז הוא נמצא או ב-DATA SECTION או בב-BSS. בעיקרון יש שלושה איזורים עיקריים של DATA: 1. המקום בו שמורים משתנים גלובליים. 2. המקום בו שמורים משתנים סטטים עבור object מסוים. 3. המקום בו שמורים קבועים נוספים (כמו string literals).
 

HaRmosh

New member
הבנתי, ../images/Emo51.gif. עוד שאלה -

ראיתי המון תוכניות קצרות שיודעות לקרוא מבנה של header של exe-file, אך לא ראיתי בהן שום התייחסות ל--data-segment. איך ניתן לכתוב לקובץ exe - האם מספיק לדעת את מיקום המערך (שדיברתי עליו בהודעה הקודמת) בתוך ה-data-segment, או שיש איזשהו checksum שצריך לעדכן וכו' ?
 

voguemaster

New member
תלוי בקובץ ובעוד כמה דברים

זה מאוד מאוד תלוי בקובץ ומאיזה סוג הוא. בוא רק נגיד שאם תיאורטית כמובן היה לך את ה-MAP של הקובץ וידעת בדיוק איפה כל דבר אז יכלת לעשות את זה. מצד שני יש שיטות reverse engineering טובות שיספקו לך את התשובה בצורה קלה הרבה יותר, בד"כ.
 
למעלה