内核kernel 操作系统负责整个系统运行的调度管理,包括管理各个硬件(如:cpu, 内存,磁盘,网卡等)以及在系统的上运行的各个应用程序。当计算机从关机状态启动,启动的第一个程序是操作系统内核,内核启动,将会注册GDT表(内存的分段信息),表中会记录操作系统单独拥有的一段内存空间,这部分空间只有操 ...
分类:
系统相关 时间:
2020-07-18 15:45:19
阅读次数:
75
Q:通常情况下选择子中的RPL与对应描述符中的DPL相同,那么是否可以取缔RPL?RPL是保证内核数据安全的关键要素之一;在内核代码中有决定性作用,绝对不能取缔A.获取操作系统的内核该实验主要通过调用门调用将内核数据进行打印具体的实现代码如下%include"inc.asm"org0x9000jmpENTRY_SEGMENT[section.gdt];GDTdefinition;段基址,段界限,段
分类:
其他好文 时间:
2020-05-07 12:01:36
阅读次数:
73
代码间跳转的执行流程 以下面代码为例,看CPU在跳转过程做了什么操作。 jmp 0x20,0x004183d7 (一)段选择子拆分 0x20的二进制形式 0000_0000_0010_0000; RPL=00; TI=0; INDEX=4; (二)查表得到段描述符 TI=0,所以查GDT表; IND ...
分类:
其他好文 时间:
2020-04-23 23:30:24
阅读次数:
119
任务切换的方法 第一个方法就是借助中断来进行任务切换,这是现代抢占式多任务的基础。在实模式下,内存最低端1KB是中断向量表,保存着256个中断处理过程的段地址和偏移地址。在保护模式下,处理器不再使用中断向量表,而是使用中断描述符表。中段描述符表和GDT,LDT是一样的,用于保存描述符,唯一不同的地方 ...
分类:
其他好文 时间:
2020-03-30 20:07:58
阅读次数:
97
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 常用汇编指令集合 1. gdtr 1.gdtr 读取gdt表地址 其需要六个字节,但是前两个字节并没有用处。 汇编代码: CHAR Sgdtr[6] = { NULL ...
分类:
其他好文 时间:
2020-03-25 18:51:44
阅读次数:
132
一.中断门,和调用门差不多,细节方面有些差异: 1.符号表的问题,调用门中所使用的是GDT表,而中断门中使用的是IDT表. 2.中断门,不能直接传参数. 3.TEPY标志不一样,调用门是1100 ,32位中断门是1110 ,16位中断门是0110. 4.调用方式不太一样,调用门使用的是CALL调用, ...
Linux采用请求分页存储管理方法。 系统为每个进程提供4GB的虚拟内存空间。各虚拟内存空间各自独立。 一 硬件基础 还是逻辑地址,线性地址,物理地址,分段机制和分页机制依次转换。 其中涉及到GDT,LDT,段寄存器,段描述符, 逻辑地址到线性地址的转换 linux的分段模型 Linux使用如下段描 ...
分类:
系统相关 时间:
2019-12-10 00:27:51
阅读次数:
211
中断描述符表(IDT) 中断描述符表(IDT)用于告诉处理器调用哪个中断服务程序(ISR)来处理异常或汇编中的"int"指令。每当设备完成请求并需要服务事, 中断请求也会调用IDT条目。异常和ISR将在下一节进行详细的说明。 每一项IDT都与GDT相似, 两者都有一个基地址, 一个访问标志, 而且都 ...
分类:
其他好文 时间:
2019-11-04 15:48:44
阅读次数:
111
虚拟机和模拟器区别:-- windbg双机调试给虚拟机下断点是跟虚拟机子系统进行交互,可能windbg调试器会修改到内核环境:比如寄存器、gdt表等会被改变(有时候你调试发现windbg中gdt 的某项数据 和 pchunter 中gdt的某个数据不一致;其实,大概率pchunter才是正确的 );... ...
分类:
其他好文 时间:
2019-10-22 12:53:10
阅读次数:
88
结构体、文字显示与GDT/IDT初始化 该章节以一个成果运行后的显示图开篇,如图1所示,该章节主要做的就是字符显示在界面上,至于如何做到字符显示呐?其实可以每个像素点间的组合,例如字符”A“可以看成16*16的像素点,每个点可以为0或者1,为1代表此像素点可以显示白色,为0则显示的为界面的颜色,通过 ...
分类:
其他好文 时间:
2019-10-03 14:23:40
阅读次数:
92