【发布时间】:2017-02-24 23:17:47
【问题描述】:
我正在处理我的 Raspberry Pi(禁用 ASLR)上的缓冲区溢出问题。
我有一个程序,它有一个main function、一个vulnerable function 和一个不应调用的函数evil function。
我的 main 函数有时会调用易受攻击的函数,但 evil 函数显然永远不会被调用。我需要确保它确实如此,使用缓冲区溢出。
所以到目前为止我得到的是主函数中易受攻击的函数的返回地址,我想用邪恶函数的起始地址覆盖它。我认为这是正确的做法。
但是,我无法弄清楚如何检查 gdb 中的内存,以便找到返回地址存储在哪个堆栈地址。有一个可用的示例,它在程序运行时通过 gdb 输入一串字符,然后它们在堆栈指针周围查找内存,并以某种方式存储返回地址。这对我来说似乎很奇怪,因为他们怎么知道他们的输入被存储在离迫切需要的返回地址只有几个地址的地方。
我的问题是我是否可以使用 gdb“搜索”堆栈以查找我的返回地址。
【问题讨论】:
标签: c gdb buffer-overflow exploit