六.Windows内核保护机制--中断门

一.中断门,和调用门差不多,细节方面有些差异:

 1.符号表的问题,调用门中所使用的是GDT表,而中断门中使用的是IDT表.

 2.中断门,不能直接传参数.

 3.TEPY标志不一样,调用门是1100 ,32位中断门是1110 ,16位中断门是0110.

 4.调用方式不太一样,调用门使用的是CALL调用,中断门直接使用 int [ index](index使用10进制就行了),对IDT表进行搜索.

 5.前面说过了,调用门在使用的时候,会更改 CS SS EIP ESP四个寄存.中断门除了这4个,还增加了一个 EFLAGS寄存器

 注:当中断门,执行完毕要返回的时候,记得把5个寄存器弹干净,否则的话,就会嘿嘿嘿(刚才改了一下iret弹出,果然蓝了...图都没截,不过提权是已经成功了的.)

二.中断门的使用:

r idtl  //查看idt表长度

r idtr  //查询idt表

找一块空白的地方,添加自己的段描述符.

规则和调用门差不多,就不写了.

eq 8003f500 0040ee00`00081038  //直接在我找的地址修改,位置是idt表的32位

void mf()

{

  _asm

  {

    int 3

    iretd  

  }

}

void main()

{

  _asm

  {

    int 32

  }

}

原文地址:https://www.cnblogs.com/jszyx/p/12422408.html

时间: 2024-11-06 11:37:28

六.Windows内核保护机制--中断门的相关文章

九.Windows内核保护机制--TSS

一.什么是TSS: TSS全称Task State Segment,中文名任务状态段,储存在内存中,大小104个字节,结构如下: 二.TSS原本的作用: TSS在任务(进程)切换时起着重要的作用,通过它保存CPU中各寄存器的值,实现任务的挂起和恢复. 比如说,当CPU执行A进程的时间片用完,要切换到B进程时,CPU会先把当前寄存器里的值保存到A进程的TSS里(任务寄存器TR指向当前进程的TSS),比如CS,EIP,ESP,标志寄存器等等,然后挂起A进程.执行B进程.这样,在CPU下次执行A进程的

二.x86内核保护机制--段保护

一.段的作用: 在x86-16体系中,为了解决16位寄存器对20位地址线的寻址问题,引入了分段式内存管理.而段的沿用,一方面是为了保持向下的拓展性,另一方面,也增加了可寻址的范围,增加了CPU的性能. 随着CPU性能的大幅度提升,生产商的研发重点,也开始着重于计算机的稳定性,和数据的安全性,因此,在会影响到计算机稳定性和重要数据的地方,就要给用户加上限制,限制用户的行为主要是,数据的读,写和执行,在限制用户的同时,又不能影响操作系统对数据和代码的使用,因此,引入了层(R0,R1,R2,R3)的概

【安全健行】(6):Windows漏洞保护机制

2015/5/21 11:07:55 之前我们一直在Linux平台上分析漏洞,那是因为对于绝大多数Hacker获得一个Linux平台更加容易,而且主流的服务器系统基本也都是Linux/Unix的:另外一个好处就是Linux提供了用户自定义的强大功能,我们可以根据需要编译汇编程序代码,关闭相应的安全保护机制,便于我们的研究学习. 然而现实中有影响力的漏洞大多是基于Windows系统,因此这节我们来介绍下Winodws系统上是安全保护机制,至于Windows上的漏洞分析,我们会在之后的恶意代码分析章

Linux内核抢占机制 - 简介

本文首发于 http://oliveryang.net,转载时请包含原文或者作者网站链接. 本文主要围绕 Linux 内核调度器 Preemption 的相关实现进行讨论.其中涉及的一般操作系统和 x86 处理器和硬件概念,可能也适用于其它操作系统. 1. 背景知识 要深入理解 Preemption 必须对操作系统的 Context Switch 做一个全面的梳理.最终可以了解 Preemption 和 Context Switch 概念上的区别与联系. 1.1 Context Switch C

内核保护模式之分段机制

CPU的三种模式 1982年,intel推出了80286处理器,第一次提出了保护模式,在保护模式下,段寄存器中存储的不再是段基址,而是段选择子. 真正的段基址存储在描述符高速缓存中,80286处理器访问内存,不需要段寄存器左移加上偏移. 在x86体系的CPU下,支持三种模式 实模式:兼容16位CPU的模式,当前的PC系统处于实模式(16位模式)运行状态,在这种状态下软件可访问的物理内存空间不能超过1MB,且无法发挥Intel 80386以上级别的32位CPU的4GB内存管理能力.实模式将整个物理

Windows内核读书笔记——Windows异常分发处理机制

IDT是处理异常,实现操作系统与CPU的交互的关口. 系统在初始化阶段会去填写这个结构. IDT的每一个表项都成为门描述符,因为IDT的功能就像大门一样,从一个空间跳到另一个空间去执行. IDT中包含三种门描述符 任务门描述符:用于任务切换 中断门描述符:用于描述中断处理例程 陷阱们描述符:用于描述异常处理例程 CPU如何使用IDT cpu首先根据IDTR找到IDT,再利用向量号码找到门描述符.再去判断门描述符的类型,如果是任务描述符,CPU会执行硬件方式的任务切换,切换到描述符所定义的线程.

【转】深入Windows内核——C++中的消息机制

上节讲了消息的相关概念,本文将进一步聊聊C++中的消息机制. 从简单例子探析核心原理 在讲之前,我们先看一个简单例子:创建一个窗口和两个按钮,用来控制窗口的背景颜色.其效果 图1.效果图  Win32Test.h 1 #pragma once 2 3 #include <windows.h> 4 #include <atltypes.h> 5 #include <tchar.h> 6 7 //资源ID 8 #define ID_BUTTON_DRAW 1000 9 #d

Linux内核同步机制

http://blog.csdn.net/bullbat/article/details/7376424 Linux内核同步控制方法有很多,信号量.锁.原子量.RCU等等,不同的实现方法应用于不同的环境来提高操作系统效率.首先,看看我们最熟悉的两种机制——信号量.锁. 一.信号量 首先还是看看内核中是怎么实现的,内核中用struct semaphore数据结构表示信号量(<linux/semphone.h>中): [cpp] view plaincopyprint? struct semaph

【转载】LINUX 和 WINDOWS 内核的区别

LINUX 和 WINDOWS 内核的区别 [声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html] 关于LINUX和WINDOWS的口水站已经很多了.本文企图从技术角度来比较下2个主流操作系统的异同.偏重于内核部分. 一.动机: 我最早是 WINDOWS 阵营的.在WINDOWS下写过2年多的驱动程序.后来由于学习需要,转投LINUX,一晃也快2年了.期间经历了很多曲折,也学到了很多