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
...