Sự cố tràn byte là gì?Tại sao xảy ra tràn byte và chúng đạt được điều gì?
Khi tôi đổ ASM x86 từ một đại diện trung gian LLVM được tạo ra từ một chương trình C, có nhiều sự cố tràn, thường có kích thước 4 byte. Tôi không thể hiểu tại sao chúng xảy ra và những gì chúng đạt được.
Họ dường như "cắt" phần của ngăn xếp ra, nhưng theo một cách khác thường:
## this fragment comes from a C program right before a malloc() call to a struct.
## there are other spills in different circumstances in this same program, so it
## is not related exclusively to malloc()
...
sub ESP, 84
mov EAX, 60
mov DWORD PTR [ESP + 80], 0
mov DWORD PTR [ESP], 60
mov DWORD PTR [ESP + 60], EAX # 4-byte Spill
call malloc
mov ECX, 60
...