2013-03-23 36 views
2

問題-內存訪問權限,需要從堆棧執行代碼。如何驗證系統權限?

在Linux系統上是否有命令查看是否允許從堆棧執行?

背景 -

否則,需要一個緩衝區溢出,注射代碼進棧家庭作業,並覆蓋將指令指針設置爲注入的代碼的返回地址。使用GDB執行時,一切看起來都不錯,但在嘗試執行堆棧中的第一行時會出現段錯誤。指令指針變爲正確的位置,並且該指令是用於測試目的的NOP。我想知道系統是否阻止從堆棧執行。

謝謝。

+0

你嘗試execstack? => http://stackoverflow.com/questions/6482759/execute-code-in-processs-stack-on-recent-linux – Antti 2013-03-23 05:58:36

+0

不,我沒有。但這就是答案。對於其他任何人來說,絆倒這一點。 「ps -u user」找到PID,然後選擇「pmap -x PID」,然後選中「stack」。如果缺少x(execute),請鍵入「execstack -s filename」感謝您的幫助 – jeff 2013-03-23 06:20:54

+0

在常規執行下仍然存在segfaults,即./filename,但現在在GDB下正常工作,這對於作業來說應該足夠好。 – jeff 2013-03-23 06:48:11

回答

0

你試過了execstack嗎? => stackoverflow.com/questions/6482759/... - Antti昨天

對於任何其他絆倒這一點。 「ps -u user」找到PID,然後選擇「pmap -x PID」,然後選中「stack」。如果x(執行)丟失,鍵入「execstack -s文件名」

定期執行下即./filename仍然出現segfaults,但現在正常GDB