Có ai trong số các bạn phải đối mặt với vấn đề sau đây khi bạn cố gắng ghi đè lên con trỏ $esp
?Smashing Stack trên Ubuntu 11.10
Tất nhiên, thử kích thước bộ đệm hợp lệ luôn hoạt động! Tuy nhiên, khi bạn cố gắng tăng kích thước bộ đệm để ghi đè lên $esp
và bạn quản lý thành công để chạm vào byte đầu tiên, byte thứ hai hoặc byte thứ ba của $esp
nó hoạt động hoàn hảo. Nhưng, ngay sau khi bạn cố gắng ghi đè lên toàn bộ 4 byte của $esp
nó hoàn toàn thay đổi nội dung của nó cũng như địa chỉ. Nó không hiển thị thêm 41
s nữa khi tôi sử dụng "A" để lấp đầy bộ đệm. Tôi đã đính kèm một ảnh chụp màn hình có thể nó sẽ giải thích chi tiết hơn. Cảm ơn tất cả.
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}