ring0和ring3的区别在哪里?
ring0和ring3的区别是什么?从软件上怎么来区别?
也就是经常听到我这个代码是r0的
而你这个是r3的
到底从哪里区分的?
难道就是exe和sys? {:3_64:}RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令”错误信息。因为有CPU的特权级别作保护。 简单的说,就是Ring3代码不能执行特权指令,而Ring0代码可以。
你试试在VC里写下这段代码,看看编译后运行有什么反应:
int main()
{
unsigned long scr3;
__asm
{
mov eax,cr3
mov scr3,eax
}
return 0;
} 记得在哪里看到过,说CPU有Ring0到Ring3一共四种权限等级,而WINDOWS只用到了Ring0与Ring3两种.... Ring3能杀掉普通的进程保护,Ring0能杀掉变态的进程保护。。。 Ring 3的程式是CALL NTDLL.DLL來和KERNEL溝通,還需要透過KERNEL做轉譯,Ring 0通常是CALL NTOKKRNL.EXE,直接對核心做溝通
页:
[1]