所以我一直在阅读有关缓冲区溢出和 Aleph One 关于堆栈粉碎的文章。我想我什么都懂,除了他的漏洞利用代码中的这一点:
ptr = buff;
addr_ptr = (long *) ptr;
for (i = 0; i < bsize; i+=4)
*(addr_ptr++) = addr;
buff 和 ptr 是字符数组。addr 持有一个堆栈指针,该指针指向堆栈开始处内存中的一个位置。bsize 是 buff 的大小。它在做什么?为什么他说 i+=4?他设置 addr_ptr 等于什么,为什么?当我尝试将其打印出来时,我只会得到 NULL。
这是文章的链接:http: //insecure.org/stf/smashstack.html
谢谢。