第二天总结学习内容:寄存器(eflags,IDTR,GDTR,CR0),bootsect应用的相关知识及其流程,gdt实验:实践boot相关功能,移动位置,加载扇区,建立gdt以及idt,进入实模式,跳转到gas编译的head第一条语句总结:1,理论bootsect到setup a,被加载...
分类:
其他好文 时间:
2015-08-01 00:49:12
阅读次数:
221
在之前的一篇文章中介绍了替换IDT向量表中的地址来达到Hook的目的IDT hook KiTrap03但是这样很容易就可以被检测了。接下来要学习就是通过patch GDT来达到Hook IDT的目的。首先,我们要了解一下,当触发INT 3号中断之后,CPU是如何找到接下来要执行的指令的地址。CPU ...
分类:
其他好文 时间:
2015-07-31 21:35:02
阅读次数:
167
段描述符是GDT和LDT表中的一个数据结构项,用于向处理器提供有关一个段的位置和大小信息以及访问控制的状态信息。每个段描述符的长度是8字节,含有3个主要字段:段基地址、段限长和段属性。段描述符通常由编译器、链接器、加载器或者操作系统来创建,但绝不是应用程序。图4-13给出了所有类型段描述符的一般.....
分类:
其他好文 时间:
2015-07-23 21:18:32
阅读次数:
128
1、逻辑地址怎么转换为线性地址的:逻辑地址 = 段选择符(16bit)+偏移量(32bit)段选择符又三部分组成:index(索引序号)、T1(表指示器)、RPL(request privilege level 请求者特权级)索引序号:指向GDT(global descriptor table 全局...
分类:
系统相关 时间:
2015-07-10 22:10:18
阅读次数:
186
内存管理(1)基本概念:1.逻辑地址:即代码中的偏移地址+段选择子2.线性地址:通过段选择子从GDT中获取的段基地址+代码中的偏移地址3.物理地址:通过分页机制转换而来的实际地址4.页面无效错误:当程序访问的页面对应的物理页面不存在时,CPU产生此异常5.写时复制:多个进程在共享代码段,数据段时,整...
分类:
系统相关 时间:
2015-07-07 21:11:13
阅读次数:
150
http://www.weather.com.cn/life/2015/06/gdt/2343852.shtml(图片来源:百度图片)夏日天气炎热,人们总习惯把所有的食物都贮存在冰箱里,其实冰箱只是食品的保鲜箱,而不是保险箱,有一些食物是不宜放进冰箱里的,让我们一起来了解下吧。(图片来源:百度图片)...
分类:
其他好文 时间:
2015-06-29 13:20:27
阅读次数:
149
Linux 0.12 内核管理存储器其分段,用分段的机制把进程间的虚拟地址分隔开。每一个进程都有一张段表LDT。整个系统有一张GDT表。且整个系统仅仅有一个总页表。其地址翻译过程为:程序中给出的32位地址(实际上被看做段内偏移地址),再依据代码段寄存器CS中的16位段选择子,可在GDT或LDT中查找...
分类:
系统相关 时间:
2015-06-28 08:39:56
阅读次数:
223
基于JOS 80x86 的堆栈切换简要分析
这个问题一直困扰很久,发现还是有点粗心,源头--堆栈初始化没怎么搞明白.
这里首先强调,一定一定要搞清楚分段和分页保护的机制.
现有分段,后有分页,分页可有可无,看寄存器cr0是否开启PE位(page enable. 在JOS系统的boot.S里就已经开启了)
文章从三个方面对栈进行分析
0. GDT 全局段寻址描述表...
分类:
其他好文 时间:
2015-04-25 16:43:59
阅读次数:
207
linux的第一个进程——进程0。
Linux 0.11 是一个支持多进程的现代操作系统,所以我们需要进程管理信息数据结构:task_struct、task[64]、GDT等的支撑。...
分类:
系统相关 时间:
2015-04-18 22:03:42
阅读次数:
129
1.概览2.逻辑地址到线性地址逻辑地址到线性地址的映射在IA-32体系结构中又被称为段式映射。如上图所示,段式映射我们首先需要获取逻辑地址和段选择符,段选择符用于获取GDT中段的基地址,将逻辑地址作为偏移和段基地址相加获得线性地址。如图为详细的逻辑地址到线性地址的映射过程:根据指令的性质来确定使用哪...
分类:
系统相关 时间:
2015-02-05 21:38:45
阅读次数:
300