内存访问权限,需要从堆栈执行代码。如何验证系统权限?
Posted
技术标签:
【中文标题】内存访问权限,需要从堆栈执行代码。如何验证系统权限?【英文标题】:Memory Access Permission, Need to execute code from stack. How to verify system permissions? 【发布时间】:2013-03-23 05:46:14 【问题描述】:问题-
Linux 系统上是否有命令查看是否允许从堆栈执行?
背景-
执行需要缓冲区溢出的作业分配,将代码注入堆栈,并覆盖将指令指针设置为注入代码的返回地址。使用 GDB 单步执行时,一切看起来都很好,但是在尝试执行堆栈中的第一行时会出现段错误。指令指针更改到正确的位置,并且该指令是用于测试目的的 NOP。我想知道系统是否阻止从堆栈执行。
谢谢。
【问题讨论】:
你试过 execstack 吗? => ***.com/questions/6482759/… 不,我没有。但这就是答案。对于任何其他偶然发现这一点的人。 “ps -u user”查找 PID,然后“pmap -x PID”并检查显示“stack”的行。如果 x(execute) 丢失,请键入“execstack -s 文件名” 感谢您的帮助 在常规执行下仍然会出现段错误,即 ./filename,但现在在 GDB 下可以正常工作,这对于家庭作业来说应该足够了。 【参考方案1】:你试过 execstack 吗? => ***.com/questions/6482759/… – 安蒂昨天
对于任何偶然发现这一点的人。 “ps -u user”查找 PID,然后“pmap -x PID”并检查显示“stack”的行。如果缺少 x(execute),请键入“execstack -s 文件名”
在常规执行(即 ./filename)下仍然会出现段错误,但现在在 GDB 下可以正常工作
【讨论】:
以上是关于内存访问权限,需要从堆栈执行代码。如何验证系统权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何验证用户是不是具有网络访问权限并在没有网络访问权限时显示弹出警报
堆栈冲突漏洞,Linux及其他UNIX操作系统的root访问权拱手让人!