11
什麼是字節溢出?爲什麼發生字節溢出,它們實現了什麼?
當我從C程序生成的LLVM中間表示中轉儲x86 ASM時,會出現大量溢出,通常是4字節大小。我無法弄清楚它們爲什麼會發生以及它們實現了什麼。
他們似乎「砍」堆棧的棋子落,但在一個不尋常的方式:
## 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
...