一致代码段和非一致代码段
在看一致代码段和非一致代码段的时候,感觉不理解,所以自己动手做了下实验
非一致代码段
在我用3环的非一致代码段的时候,并且用jmp far 0x48:0x401930它是可以跳过去的,如图:
运行前
运行后
可以发现cs从1b变成了4b,就是说rpl为3,在看看段描述符dpl也是3
接下来我们把dpl变成0试试
运行前
运行后
od直接报错了,也就是说我们直接用3环程序去访问0环的非一致代码段,是不被允许的,如果需要访问需要用调用门(想用0环程序去访问3环的程序,可是自己注册驱动有点麻烦,在网上找一个好点的驱动注册机,也没找到,希望有大佬能推荐一个)
一致代码段
首先我们来看3环的一致代码段
运行前
运行后
可以看到cs从1b变成了4b
再来看看0环的一致代码段
运行前
运行后
可以发现这里的cs也变了
总结
由此我们可以看出在cpl为3的情况下,一致代码段是0环程序和3环程序都可以执行的,而非一致代码段是只有3环可以跳的(0环可不可以跳 我还不知道 还得亲自做实验才行,得通过写驱动来完成,所以我得先去找一个快速注册驱动的程序,不然手动注册感觉麻烦)
再放上我在网上找到一些资料