
内核
文章平均质量分 79
大貂蝉腰
业余编程爱好者 c/c 汇编 win32 windows驱动
展开
-
5调用门,x86
尽管在Windows 32位系统中,常见的是中断门和陷阱门用于处理中断和异常,但调用门仍然是x86架构的一部分,可以被操作系统或者系统开发人员用于实现特定的功能。当程序调用调用门时,处理器会检查当前特权级别(CPL)和调用门描述符中的特权级别,只有在CPL小于或等于DPL时,调用才会成功。当程序调用调用门时,CPU会检查调用者的当前特权级别(CPL)和调用门描述符中的DPL,只有在CPL小于或等于DPL时,调用才会成功。调用门描述符中的特权级别字段(DPL)指定了调用门可以被访问的特权级别。原创 2024-04-14 22:37:02 · 677 阅读 · 1 评论 -
4段权限等级
普通数据段 使用段描述符寻址时,先比较段选择子的RPL(请求特权级别)与段描述符的DPL(段特权级别)如果RPL小于等于DPL,再比较 CPL(当前特权级别) 与DPL(段特权级别),如果CPL也小于等于DPL那么就可以通过段描述符寻址。当程序在低特权级别(例如用户态)下尝试访问一个高特权级别(例如内核态)的段时,它可以通过设置选择子的RPL来请求权限。通常,内核态运行的代码(例如操作系统内核)具有最高特权级别(CPL为0),而用户态程序具有较低特权级别(CPL为3)。CPL是当前正在执行代码的特权级别。原创 2024-04-14 22:05:10 · 477 阅读 · 1 评论 -
3段寄存器段选择子,GDT表,段描述符x86
在x86架构的计算机中,段寄存器是一种用于存储段选择子(Segment Selector)的寄存器。段寄存器包括:CS(Code Segment): 存储当前执行的代码所在的段的选择子。DS(Data Segment): 存储数据段的选择子,用于指示程序访问数据的位置。ES(Extra Segment): 附加数据段寄存器,提供额外的数据段选择子,有时用于字符串和数据传输操作。SS(Stack Segment): 存储堆栈段的选择子,用于指示程序的堆栈段。原创 2024-04-14 11:51:26 · 2019 阅读 · 1 评论 -
2初识内核WOW64进程
32位系统内核时32位的,64位系统内核时64位的,32位有32位的指令集,64位有64位的指令集,CUP是怎么区分自己执行的是哪个指令集32位操作系统下进入内核的指令是sysenter,64位系统下64位进程进入内核的指令时syscall,那么64位系统下32位进程该执行什么指令呢?观察64位系统下的32位进程ntdll.zwclose ,发现它call了一个地址跟进去看一下F7跟进可以发现现在处于wow64upc模块中这里需要使用特殊版本的调试器Yzdbg ,F7跟进。原创 2024-04-13 12:12:59 · 574 阅读 · 2 评论 -
1初识内核
在 Windows 系统中,Ring 3(用户态)的程序通常通过系统调用(System Call)的方式与内核态(Ring 0)进行交互,而 ntdll.dll 是一个非常重要的动态链接库,它包含了大量的系统调用函数的实现。通过调用 ntdll.dll 中的函数,用户空间的程序可以请求操作系统内核提供的服务和功能,从而间接地与内核态进行通信。因此,虽然用户空间的程序不能直接进入内核态,但通过 ntdll.dll 提供的接口,它们可以间接地向内核态发出请求,从而实现与内核态的通信和交互。原创 2024-04-11 18:07:03 · 713 阅读 · 4 评论