3.9 דיבוג עם GDB תרגול
דבגו מה שלא דיבגתם¶
דבגו את כל הקוד C שכתבתם עד כו, השתמשו בכל הפקודות שלמדנו כדי לתרגל בידיים ולזכור את כל הפקודות.
- נסו להתעמק בקריאה מהזכרון עם x בדרכים שונות, על שימוש בb שונים על כתובות, ועל הבנה של הstack בכל פעם שאתם מריצים פונקציה.
- נסו להבין את הקוד אסמבלי שנוצר מהקוד C שלכם, ונסו ממש בעצמכם לקשר בין כל קוד אסמבלי שנוצר שאתם מריצים לבין הקוד C שכתבתם.
- השתמשו בpwndbg, כדי להקל עליכם.
מצאו ת'באג¶
// bug_simple.c
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
int index = 10;
numbers[index] = 42;
return 0;
}
דבגו עם gdb ותמצאו ת'באג
מצאו ת'באג 2¶
// logic_bug.c
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i <= 5; i++) {
sum = sum + numbers[i];
}
return 0;
}
דבגו עם gdb ותמצאו ת'באג