Re: 系统调用为什么要把其参数从用户栈copy到内核栈呢?

Windows内核调试

系统调用为什么要把其参数从用户栈copy到内核栈呢?


Thomson 2008-08-15, 23:04 下午
在validate后一直使用用户栈上的参数的话,有什么问题吗?

Re: 系统调用为什么要把其参数从用户栈copy到内核栈呢?


格蠹老雷 2008-08-16, 13:07 下午

栈的使用是与CPU密切相关的,参数是通过栈有关的寄存器来索引的,栈指针寄存器只能指向一个栈,如果参数不复制,那么栈指针就要指向用户态的栈,于是函数返回地址等也就会被压倒这个栈中,如果栈溢出,那么便会发现意外的转移.......

 

Re: 系统调用为什么要把其参数从用户栈copy到内核栈呢?


王宇 2008-08-18, 09:59 上午
嗯! ^_^

其实思考一下 Intel 设计 TSS SS0/ESP0 ~ SS2/ESP2 的原因也就能明白了。

Powered by Community Server Powered by CnForums.Net