לדלג לתוכן

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 ותמצאו ת'באג