周报一

实验室让交周报了 写一写吧·

都是前人的总结的总结

#浅谈实模式与保护模式


对于最开始的8086cpu,数据总线16位,而地址总线20位,实模式都是16位寄存器。
疑问就产生了16与20 如何相互对应呢,其实这时候就产生所谓的分段机制,段地址+偏移地址
段地址 有寄存器的16位寄存器左移四位表示,就能更好扩大寻址能力2^20=64kb。
将1mb存储空间,分为多个逻辑段,任意分割大小,最大为64kb。起始地址为16的倍数,2^16


从80286开始多了一个保护模式 [,简单的区别段地址变成了段选择符,这时候要通过段选符+段内偏移

去找到最终的线性地址核物理地址,-------不存在分页管理的话线性地址就是最终的物理地址。


逻辑地址: 应该只能在所规定的4个g内能操作的地址,在实模式下逻辑地址和物理地址是相同的,应用层程序员仅需跟逻辑地址打交道,在系统中会自动进行重定位(?大概)。逻辑地址是段偏移地址。


线性地址:是逻辑地址到物理地址变换之间的中间层, 段地址+偏移地址其实就构成了线性地址。

如果存在分页机制 线性地址在进行一层转换变成物理地址。 如果没有的话。线性地址等于其物理地址。


物理地址:“ 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址”

线性地址能通过分页机制,使用页目录表,页表进行查找 最后确定物理地址。


若需了解分页机制,需要先去了解段描述符、~表, 段选择符。等等,

去了解GDT,GDTR,LDT,LDTR. 自己还无法像他们讲的那么仔细。


TI用来指明寻找GDT(全局描述符)还是LDT(局部描述符,}。RPL表示请求特权级,在王爽老师那本汇编语言中

讲到过。


索引 TI RPL

15 3 2 1 0 2^13=8192个段描述符 同时分LDT GDT 再乘以二16384个段描述符

16384*32(32位偏移地址)=64TB 最大寻址能力


32位偏移地址 + 索引12位 +LDT/GDT

取出段基址 段界限 属性

然后使用偏移量

与段基址相加,判断是否超过段限,这样就可以获得线性地址。




若存在分页机制 在PAE内 4kb是一页。

PAE:PAE,物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Windows Server 2003,Datacenter Edition 的计算机可以支持4GB 以上物理内存。物理地址扩展 (PAE) 允许将最多64GB 的物理内存用作常规的4 KB 页面,并扩展内核能使用的位数以将物理内存地址从32扩展到36。

这个图可以想象为一本书 通过三维模型去理解 10 10 12


类似于指针 高十位 -->页目录项-->页表基址

其他都是


最后通过页基址 + 偏移量 = 物理地址



这周跟着《逆向工程核心原理》将前两大节中的实践程序 跟着做了

VB程序主要从ollydbg中的 这个函数 可知


寄存器断点 

api断点等等....

循环跳出。。


这些还是太浅。。各种捷径。。意义并不大



参考资料:      http://blog.youkuaiyun.com/yeruby/article/details/39718119

http://www.cnblogs.com/liuconggang/archive/2013/01/22/2871972.html

http://blog.youkuaiyun.com/rosetta/article/details/8933200      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值