Some notes about stack! Mainly register based!

ESP in stack

ESP是指得栈顶指针。
由于寄存器的长度32bit,所以对寄存器压栈出栈的内存esp改变量都是4byte,即4个地址单位。

Transfer from user mode to kernel mode

CS:IP cs是代码段寄存器,保存了代码段的基址,IP是指令指针,保存了当前指令的offset

系统调用

系统在通过系统调用,有用户态切换到内核态时,需要把参数和系统调用号传递到内核态,通过寄存器实现。
具体的,通过eax传输调用号,通过其他通用寄存器传输参数,根据寄存器的限制,最多系统调用只能传递5个参数。
当需要更多的参数,或者更大的数据传输时,通过传递一个pointer to a user-mode address which contains the other parameters到寄存器
参考LKD第三版,73页,74页。

Leave a Reply

Your email address will not be published. Required fields are marked *