【 在 hellowub (wub) 的大作中提到: 】
: 试了试,还是不行。我感觉我构造的字符串应该没错阿,就两条指令而已。
: 而且用gdb跟踪时,在原函数执行到ret时,esp所指的地址确实被我覆盖成了栈里指令的
: 地址。不管我构造的指令是否正确,但一执行 ret,就会出错:
: ...................
--
修改:lars FROM 143.89.123.*
FROM 143.89.123.*
我把我构造的字符串改了下,将原返回地址覆盖成原来程序里已有的一个函数地址,而不
是之前的栈里我自己构造的那几条指令的地址。结果就可以正常跳转过去。
所以应该不是 canaries 保护。应该还是禁止执行 stack 里的代码的原因吧。
但是在kernel启动时 加上 noexec=off,也不行。
。。。。
【 在 lars (蓝天白云) 的大作中提到: 】
: 是不是有canaries保护?
: check stack里面在return adress and contrl information和variables之间有没有什
: 么其他东西,可能是用来保护的
--
FROM 124.16.139.*
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-35619-2.html
剩我买块电池么
中国小心了