【发布时间】:2015-04-19 15:01:20
【问题描述】:
在缓冲区溢出攻击中,可以从 BSS 部分运行代码(假设用户禁用了某些安全保护)。在那里运行的代码与在文本部分运行的代码有何不同?在运行 BSS 部分的代码时将内容压入堆栈是否有意义?如果没有,如何从那里调用函数?
我使用的是 linux x86。
【问题讨论】:
-
“可以从 BSS 部分运行代码”- 是吗?如果默认情况下它是一个可执行段,我会感到惊讶。在什么操作系统/环境中?
-
如果你能让它运行起来,那么它与代码部分没有什么不同。你也可以使用堆栈。
-
请更具体一点,您在哪个操作系统上提出问题。
-
没有明确的操作系统执行限制,您可以从任何地方(堆栈、堆、bss、数据)运行代码。如果您想了解有关限制执行的信息,可以阅读有关 NX bit 的内容。
-
好吧,当您处于保护模式时,描述符上设置的位也存在问题,@j123b567。但是,有时请参阅下面的答案以了解解决方法。