我正试图用汇编语言来解决缓冲区/缓冲区溢出问题。我知道如果创建了一个缓冲区并且放入的数据大于缓冲区,它就会溢出。
举个例子:
sub esp, 28
- 一直到ebp的大缓冲区
sub esp, 32
- 从ebp-32到ebp-28的小缓冲区
如果在ebp-32
中输入的字节数超过4个,则会溢出到ebp-28
。我理解:mov [ebp-32], ebx
会将一个dword放入ebp-32
,但如果我想要ebp-28
溢出到ebp
,我需要32 * 32 = 1024 bit / 128byte string。
如何实现这个/指令在汇编中会是什么样子?如果需要某种形式的循环,是否可以没有循环??
最后,根据我的示例,计算机的内存看起来就像ebp
到ebp-32
,由程序指定它想要在ebp-32
使用32位,或者例如ebp-16
。