![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统与硬件层
文章平均质量分 85
tomorrowsprogress
这个作者很懒,什么都没留下…
展开
-
如何建立内核级钩子控制操作系统实现程序隐身
我们知道,应用程序总是离不开系统内核所提供的服务,比如它要使用内存的时候,只要跟操作系统申请就行了,而不用自己操心哪里有空闲的内存空间等问题,实际上,这些问题是由操作系统的内核来代劳的。站在黑客的角度讲,如果能够控制内核,实际上就是控制了内核之上的各种应用程序。本文将向您介绍如何建立内核级钩子来控制操作系统向上提供的各种低级功能。有了内核级钩子,我们不但能够控制、监视其他程序并过滤有关数据,还能转载 2009-11-19 15:24:00 · 552 阅读 · 0 评论 -
特权级在保护模式下的应用
<br />在保护模式下提供4级特权级PL(Privilege Level),呈现环形保护(ring-protection)结构。最内的环具有PL=0的最高特权级,依内向外逐层PL值增加,特权级降低。最外的环PL=3,特权级最低。<br />特权级有以下几种形式表述:DPL(Descriptor Privilege Level):描述符的特权级,CPL(Current Privilege Level):当前任务的特权级,RPL(Requestor Privilege Level):请求特权级(选择符的特权级转载 2010-08-02 14:52:00 · 521 阅读 · 0 评论 -
特权级在保护模式下的应用
<br />在保护模式下提供4级特权级PL(Privilege Level),呈现环形保护(ring-protection)结构。最内的环具有PL=0的最高特权级,依内向外逐层PL值增加,特权级降低。最外的环PL=3,特权级最低。<br />特权级有以下几种形式表述:DPL(Descriptor Privilege Level):描述符的特权级,CPL(Current Privilege Level):当前任务的特权级,RPL(Requestor Privilege Level):请求特权级(选择符的特权级转载 2010-08-02 14:51:00 · 1196 阅读 · 1 评论 -
特权级在保护模式下的应用
<br />在保护模式下提供4级特权级PL(Privilege Level),呈现环形保护(ring-protection)结构。最内的环具有PL=0的最高特权级,依内向外逐层PL值增加,特权级降低。最外的环PL=3,特权级最低。<br />特权级有以下几种形式表述:DPL(Descriptor Privilege Level):描述符的特权级,CPL(Current Privilege Level):当前任务的特权级,RPL(Requestor Privilege Level):请求特权级(选择符的特权级转载 2010-08-02 14:50:00 · 1551 阅读 · 0 评论 -
指令使用规则
<br />http://www.ymzz.net/jycg/Print.asp?ArticleID=416原创 2010-07-01 10:20:00 · 568 阅读 · 0 评论 -
什么是实模式、保护模式和虚拟8086方式
1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。 第原创 2010-04-30 10:11:00 · 518 阅读 · 0 评论 -
“进程后2G的空间是在什么时候映射的??? ”。
“进程后2G的空间是在什么时候映射的??? ”。应该是在Windows启动的时候,就创建好了一张所有进程共享的系统的页表,每当进程调用系统API陷入内核模式后,访问高端2GB地址时,会去查找系统的那张共享页表,得到实际物理内存地址。 如果用户程序自己去访问高端2GB地址,因其特权级是Ring3,而高2GB地址需要Ring0特权,因此会报错,访问违例。转载 2010-04-01 16:57:00 · 462 阅读 · 0 评论 -
Detection of the hidden processes
找到线程链表地址之后我们就可以非常简单地枚举出那些进程了,代码如下:Code:void ProcessListHead(PLIST_ENTRY ListHead){ PLIST_ENTRY Item; if (ListHead) { Item = ListHead->Flink; while (Item != ListHead) { Co转载 2010-01-05 09:31:00 · 565 阅读 · 0 评论 -
sysenter系统调用
在执行INT指令时,实际完成了以下几条操作: 1.由于INT指令发生了不同优先级之间的控制转移,所以首先从TSS(任务状态段)中获取高优先级的核心堆栈信息(SS和ESP);2.把低优先级堆栈信息(SS和ESP)保留到高优先级堆栈(即核心栈)中; 3.把EFLAGS,外层CS,EIP推入高优先级堆栈(核心栈)中。 4.通过IDT加载CS,EIP(控制转移至中断处理函数)5.然后就进入了中断0x80原创 2009-11-20 16:43:00 · 574 阅读 · 0 评论 -
kgdb内核调试freebsd8.3
编译内核并用KGDB调试1. 配置vmware调试机与目标机的串口[虚拟机上添加串口]"power off"关闭虚拟机右击虚拟机-->选择"settings..."-->hardware-->Add...-->Serial Port-->output to named pipe-->两虚拟机都使用名称"\\.\pipe\com_1",对调试机使用"This en原创 2012-11-22 17:02:34 · 1570 阅读 · 0 评论