כתיבת קוד — שיעור 28
Stack ופונקציות
כל 1 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T3 · בינוני350 נק'~20 דק'analysis
חישוב Offset לכתובת החזרה
בפונקציה vuln() יש char buf[40], והבינארי קומפל ב-gcc -O0 -fno-stack-protector -no-pie. ה-disassembly מראה שהבאפר נטען ב-`lea -0x30(%rbp),%rax`. חשב כמה בתים צריך לכתוב מתחילת buf כדי להגיע *בדיוק* לכתובת החזרה (saved RIP). רמז: buf ב-rbp-0x30; אחרי saved rbp (8 בתים) באה כתובת החזרה. הגש מספר עשרוני.
דוגמאות
buf ב-rbp-0x30, saved rbp = 8 בתים → offset = 0x30 + 8
הפתרון נשמר מקומית אוטומטית.