[保护模式]陷阱门_一口一个橘子的博客-程序员秘密_陷阱门

技术标签: c语言  反汇编  操作系统  # 保护模式  

陷阱门描述符

在这里插入图片描述
陷阱门描述符和中断门描述符并没有太大的差别
唯一的差别就是type的位置:

  • 中断门:D110 (其中D == 1,因为用的是32位的操作系统)
  • 陷阱门:D111

陷阱门和中断门的不同

这个小实验将验证陷阱门和中断门唯一的不同EFLAG 的 IF 位不同
先构造好函数

#include <windows.h>

#define WORD unsigned short
#define DWORD unsigned int
WORD curEFLAG = 0;
WORD interruptEFLAG = 0;
WORD trapEFLAG = 0;

//中断门跳这里
void __declspec(naked) inter(){
    
	_asm{
    
		push eax
		pushf
		mov ax, [esp]
		mov interruptEFLAG, ax //将eflag的值存入interruptEFLAG
		popf
		pop eax
		iretd;
	}
}
void __declspec(naked) trap(){
    
	_asm{
    
		push eax
		pushf
		mov ax, [esp]
		mov trapEFLAG, ax //将eflag的值存入trapEFLAG
		popf
		pop eax
		iretd;
	}
}

int main(){
    

	printf("inter function addrs: %x\n", inter);
	printf("trap function addrs: %x\n", trap);
	_asm{
    
		push eax
		pushf
		mov ax, [esp]
		mov curEFLAG, ax //将eflag的值存入curEFLAG
		popf
		pop eax
	}
	
	__asm{
    
		int 0x00 //暂时不能确定,先填0
		int 0x00
	}
	
	
	printf("cur: %x\ninter: %x\ntrap: %x",
	 (DWORD)curEFLAG, (DWORD)interruptEFLAG, (DWORD)trapEFLAG);
	return 0;
}

运行程序


在这里插入图片描述
红框内先填0,右边的地址等会构造门的时候要用到
这里可以看到有三段几乎一样的代码,我也想写成函数的,参数传递的调整十分麻烦,折腾了几个小时还是一直蓝屏,索性直接复制粘贴了(是我太菜了,我不配写出函数)

在这里插入图片描述

	eq 8003f510 0040ee00`00081005 //中断门
	eq 8003f518 0040ef00`00081014 //陷阱门

在这里插入图片描述
修改这两个值成为我们写的门的索引位置
然后运行就可以啦


在这里插入图片描述

在这里插入图片描述
intel 三卷 Vol. 3A 2-10

这个IF位其实就是可屏蔽硬件中断标志位,设置为1则响应中断,设置为0则不响应中断。

比如键盘鼠标等中断就是可屏蔽硬件中断,如果是电源键,那就是不可屏蔽中断
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_50332504/article/details/123378272

智能推荐

HTML5拖拽_weixin_A3197596063的博客-程序员秘密_html5拖拽控件

拖拽1.draggable属性:设置可以拖拽的控件值包括  1.true:可以拖拽   2.false:不可以拖拽   3.auto:浏览器判断2.拖放事件   ondragstart:开始拖动时触发(被拖动对象)  ondrag:每当拖动元素被拖动时就会触发(被拖动对象)  ondragend:拖动时,鼠标松开会触发(被拖动对象)  ondragenter:被拖动元素进入本元素的范围内时触发(目标对象)  ondragover:当拖动元素拖动到本元素的范围内拖动时触发(当前目标对

小程序开发--wx.getSetting 授权检测_weixin_30438813的博客-程序员秘密

wx.getSetting在 未拒绝 和 未同意 状态下 ,success: (res) =&gt; { } 的res.authSetting{}值是空的! 在getUserInfo()后,点击拒绝后 wx.getSetting的fail:(res)=&gt;{}触发,res.authSetting['scope.userInfo'] 的值是false ,表示scope.userInfo这个...

web前端‘初级’、‘中级’、‘高级’工程师水平应该掌握的技术_v_jinfu的博客-程序员秘密_中级web前端工程师水平要求

web前端初级工程师数据类型的种类与作业,常用框架的使用,会编写函数,掌握样式表的使用,常用组件库的使用;web前端中级工程师理解闭包,作用域,掌握递归,防抖、节流等算法的实现;能够使用mvvm框架进行组件化封装及使用,事件的使用及原理,独立完成功能模块开发;web前端高级工程师掌握mvvm框架实现原理,类型检查,代码规范化的标准,了解webpack,gulp等自动化部署的开发;编写高效的算法函数,编写高复用性组件;...

Perforce的各种命令_iteye_13237的博客-程序员秘密

在以前的公司代码控制用的是CVS,到这家公司用的是Perforce,中国恐怕没有几家公司用这个玩意,老美的爱好,又或者是Expedia那帮MS出身的爱好。今天对于Perforce的命令行稍做了些研究,主要用到了以下这些常用的命令:[color=blue]p4 userp4 clientp4 add, p4 edit, p4 openp4 submitp4 revert...

福音!GitHub开源中文版《Go入门指南》学习教程_普通网友的博客-程序员秘密

一个语言欢迎肯定有它独特的原因。比如Python作为胶水语言,上手快、使用简单、三方库资源丰富,机器学习的一些模型算法包,深度学习Tensorflow、Pytorch都是用Python来...

随便推点

JAVA实现Excel模板填充_zhangvalue的博客-程序员秘密_java填充excel模板

需要将统计数据填充到指定的Excel模板中 public void writeExcelFile(LocalDate start, LocalDate end, String filename) { File file = new File("files/report_Demo.xlsx"); XSSFWorkbook workbook = null; ...

Cannot set priority of datanode proces_夜、`狠冷〕的博客-程序员秘密

hadoop03: ERROR: Cannot set priority of datanode process 2518错误解决修改hdfs-site.xml配置文件我的配置是&lt;configuration&gt;&lt;property&gt; &lt;name&gt;dfs.replication&lt;/name&gt; &lt;value&gt;4&lt;/va...

git 获取更新远程分支列表并检出指定分支_小T猴的博客-程序员秘密_git 获取远程分支更新

一、git 查看本地已有分支情况:localhost:$ git branch -a develop* dv2 master test remotes/origin/HEAD -&amp;gt; origin/master remotes/origin/develop remotes/origin/dv2 remotes/origin/master remotes/ori...

unity二次打包[email protected]小秦同学的博客-程序员秘密

在我第二次进行打包的时候,没有打包成功,报出来了错误,说路径访问被拒绝,没有权限,然后删除名为exe的文件就完成了,能够完成打包了。

在AIX上安装VNC_fengyifei11228的博客-程序员秘密

      VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相象。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windo

我的DBHelper类_weixin_33716154的博客-程序员秘密

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient;namespace DAL{ public class DBHelper ...

推荐文章

热门文章

相关标签