我正在学习如何编写堆栈缓冲区溢出,我一直在学习如何利用易受攻击的C程序的基本教程,用户输入一个字符串并将其存储在10个字符的缓冲区中。
本教程解释说,当您在缓冲区上输入足够的字符时,您将写入EIP寄存器。例如,输入“AAAAAAAAAAAAAAAAAAAAAAAAA”会使EIP的值为0x41414141。但是,当我试图按照教程并输入相同数量的“A”时,我的EIP值为0x41414140。我很困惑最后的0来自哪里以及为什么它取代应该存在的1。
如果有人遇到过这个问题,请解释我如何解决它。感谢。