驱动之路_用户模式和内核模式
简介
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。因为有CPU的特权级别作保护。
SSDT,系统服务描述表 相当于window api 和 内核API搭了一个桥梁,.
SSDT表
7A 4DEES(函数地址)
ntdll.dll 内核API
openProcess --> kernel32.dll --> ZwOpenProcess(他在里面调用了 KiFastSystemCall)
ZwOpenProcess代码:
这个7FFE0300就是KiFastSystemCall这个7A就相当于一个服务号,然后调用7FFE0300(KiFastSystemCall),个函数根据eax中的service id在SSDT中查找相应的系统服务,然后调用之。
KiFastSystemCall代码:

SYSENTER 切换到内核模式后,然后根据eax,去查询ssdt表相对应的内核函数,也就是NtOpenProcess
整个流程就是这样.

浙公网安备 33010602011771号