我正在努力在我的Raspberry Pi上生成缓冲区溢出(禁用ASLR)。
我有一个程序,其中包含main function
,vulnerable function
和不应调用的函数evil function
。
我的main函数在某个时刻调用易受攻击的函数,但是邪恶的函数显然永远不会被调用。我需要确保它使用缓冲区溢出。
所以到目前为止我得到的是main函数中易受攻击函数的返回地址,我想用邪恶函数的起始地址覆盖它。我认为这是正确的做法。
但是我无法弄清楚如何以这种方式检查gdb中的内存,以便找到存储返回地址的堆栈地址。有一个可用的例子,它在程序运行时通过gdb输入一串字符,然后它们查找堆栈指针周围的内存,并以某种方式存储返回地址。这对我来说似乎很奇怪,因为他们怎么能知道他们的输入只存储了几个地址,远离那些非常想要的返回地址。
我的问题是,如果我可以搜索'使用gdb返回地址的堆栈。