địa chỉ của entry chứa address của hàm printf trong GOT của challenge là : 0x080497cc
Vốn liếng trả lại cho thầy hết rồi àh, gì mà vừa mới học đây lại quên hết rồi? printf được gọi ngay sau cái hàm nào đó bị format string? Nhớ là overwrite là overwrite địa chỉ của function nào được gọi ngay sau cái hàm bị format string.
Giờ muốn biết tại sao overwrite rồi mà vẫn kô execute được thì cứ đặt breakpoint ngay sau cái hàm bị format string, rồi xem thử cái GOT entry đã bị overwrite chưa, rồi đặt tiếp breakpoint tại cái GOT entry này, chạy tiếp chương trình, xem chương trình có bị break ở đó hay không. Nếu GOT entry đã bị overwrite, mà chương trình kô bị break, thì có nghĩa là overwrite lộn hàm rồi.
|