buffer overflow
שלום,אני קורא מאמר לגבי buffer overflow כדי ללמוד את הנושא. במאמר מתואר קטע הקוד הבא:
דוגמה זו מורצת על מערכת לינוקס. לאחר הידור הוא בודק את ערכי האוגרים ע"י (gdb) info all-registers ומקבל כי האוגר ebp מחזיק את הערך 0x41414141 שזה הערך ההקסאדצימלי של הערך האסקי של 'A'. ושאלתי היא,מדוע בכלל האוגרים מחזיקים את תוכן ה-buffer? מדוע תוכן ה-buffer לא ממופה לזיכרון הפיסי בלבד,או שהוא כן אך כך גם האוגרים.
שלום,אני קורא מאמר לגבי buffer overflow כדי ללמוד את הנושא. במאמר מתואר קטע הקוד הבא:
char buffer[4028]; void main() { int i; for(i=0;i<2024;i++) buffer='A'; {
דוגמה זו מורצת על מערכת לינוקס. לאחר הידור הוא בודק את ערכי האוגרים ע"י (gdb) info all-registers ומקבל כי האוגר ebp מחזיק את הערך 0x41414141 שזה הערך ההקסאדצימלי של הערך האסקי של 'A'. ושאלתי היא,מדוע בכלל האוגרים מחזיקים את תוכן ה-buffer? מדוע תוכן ה-buffer לא ממופה לזיכרון הפיסי בלבד,או שהוא כן אך כך גם האוגרים.