Java教程

段寄存器属性的探测

本文主要是介绍段寄存器属性的探测,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在之前段寄存器随笔中说了一下段寄存器是用来保护内存中的数据不被随意访问(当然还有页),那如何限制你的呢

首先要了解段寄存器的结构

  段寄存器的结构长度是96位,可以显示的只是16位的selecter(段选择子),剩余部分不可见,(但是可以探测到的)

在段寄存器中有个attribute属性,它会限制你能不能写,这是第一关

 

 

2.探测可见部分:段选择子

  在这里可以看到很多个段寄存器,比如cs,在cs后的就是段选择子,在后面32bit代表是个大段(后面会讲),在后面的0是base,FFFFFFFF是limit,

找段寄存器其他位 就是需要同感段选择子找的,

 

 

3.段寄存器成员介绍

 

 

 

GS:32系统中没用使用,

FS:跟线程相关的

3.1段寄存器中的选择子是可以改变的,来探测属性

 

 如图改变后不可写了,但是由此可以知道它是有权限限制的,attribute是存在的

 

 探测base 注意:这里的是使用的寄存器是gs,gs如果是单步调试的话会进R0,进R0gs就清0了

 

 探测limit 

这篇关于段寄存器属性的探测的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!