patchless amsi学习(中)

DR7

DR7被称为“调试控制寄存器”,允许对每个硬件断点进行精细控制。其中,前8位控制是否启用了特定的硬件断点。偶数位(0、2、4、6)称为L0-L3,在本地启用了断点,这意味着仅在当前任务中检测到断点异常时才会触发。奇数位(1、3、5、7)称为G0-G3,在全局启用了断点,这意味着在任何任务中检测到断点异常时都会触发。如果在本地启用了断点,则在发生硬件任务切换时会删除相应的位,以避免新任务中出现不必要的断点。在全局启用时不会清除这些位。

在cpu中,单位执行往往是“任务”,这相当于操作系统中的线程

第8位和第9位分别称为LE和GE,是沿用的传统功能,在现代处理器上无法执行任何操作。这些位用于指示处理器检测断点发生的确切指令。在现代处理器上,所有断点条件都是精确的。为了与旧硬件兼容,建议始终将这两个位都设置为1。

第13位被称为GD,这一位非常值得关注。如果这一位被启用,则当每一条指令尝试访问调试寄存器时,都会生成调试异常。为了将这种类型的异常与普通的硬件断点异常区分开来,在调试寄存器DR6中设置了BD标志。这一位通常用于阻止程序干扰调试寄存器。关键点在于,异常发生在指令执行之前,并且当进入调试异常处理程序时,该标志会被处理器自动删除。但是,这样的解决方案并不完美,因为它只能使用MOV指令来访问调试寄存器。

第16-31位用于控制每个硬件断点的条件和大小。每个寄存器有4位,分为4个2位字段。前2位用于确定硬件断点的类型。仅能在指令执行、数据写入、I/O读写、数据读写时才能生成调试异常。仅有在启用了控制寄存器CR4的DE字段时,才启用I/O读写功能,否则这种情况是不确定的。大小可以使用后2位来控制,并用于指定特定地址处内存位置的大小。可用的大小有1字节、2字节、4字节和8字节。

这里还需要特别说一下的是读写位的问题:读写可执行:

其中00 执行时触发。01写入时触发,11读写时触发。

长度位:

00 1字节。01 2字节。10 8字节。11 4字节。

调试寄存器的读写

这里肯定是不能使用mov一类指令的,可以使用windows的两个api:SetThreadContext和GetThreadContextAPI.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283687.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java SSM框架实现人事员工考勤签到请假管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现人事员工考勤签到请假管理系统演示 摘要 在高速发展的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,人们对人事管理系统越来越重视&#xff0…

高新技术企业工时管理的挑战与应对策略

随着科技的飞速发展,高新技术企业已成为推动社会进步的重要力量。而在这类企业中,工时管理作为企业管理的重要组成部分,其意义也日益凸显。有效的工时管理不仅关乎企业的项目进度、人力掌控和资源合理配置,还直接影响到企业的研发…

绝地求生:【PC】第27赛季第1轮更新公告

各位玩家大家好!欢迎收看本期更新公告。 正式服维护时间 ※ 下列时间可能会根据维护情况而发生变化。 12月6日上午8:00 – 下午4:30 地图轮换 开发者留言:在基于玩家们的反馈意见进行讨论后,我们决定从第27赛季第1轮更新开始引入新的地图轮…

智能物流解决方案:科聪料箱移动机器人助力高效运输

料箱机器人是一种智能化物流搬运设备,无需借助任何轨道,即可实现多个料箱的智能拣选、存取、搬运。以料箱为存储单元的存储形式,通过信息化系统的统一调度和管理,实现小批量、多批次、高周转率的出入库、拣选等。 ▲料箱机器人现场…

为什么要使用表单?

目录 1.与服务器端的数据交互 2. 表单验证 3. 无需JavaScript支持 4. 语义化 表单元素的局限性 1. 样式限制 2. 客户端验证的局限性 总结: HTML使用表单是为了在Web页面中收集和提交用户输入的数据。表单可以包含多个表单元素,如文本框、下拉列表、单选框和…

nodejs配置express服务器,运行自动打开浏览器

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 设置方法:1,安装nodej…

Endnote在线链接pubmed的时候报错12057:不能连接到吊销服务器,或者未能获得最终响应?

Endnote在线链接pubmed的时候报错12057:不能连接到吊销服务器,或者未能获得最终响应? 问题如下: 解决办法: 在任务栏搜索internet选项并打开 选高级,参照下图配置 完了之后再去EndNote就不会出现此问题了…

YOLOv5改进 | 卷积篇 | SPD-Conv空间深度转换卷积(高效空间编码技术)

一、本文介绍 本文给大家带来的改进内容是SPD-Conv(空间深度转换卷积)技术。SPD-Conv是一种创新的空间编码技术,它通过更有效地处理图像数据来改善深度学习模型的表现。SPD-Conv的基本概念:它是一种将图像空间信息转换为深度信息…

什么是磁钢的工作点和Pc值?如何计算Pc值?

永磁体是在开路状态下工作的,由于开路状态的磁体是在退磁场的作用下,所以工作状态下的永磁体的磁感应强度不在闭路状态的Br点上,而是在比Br低的退磁曲线上的某一点,这一点称为永磁体的工作点,如下图D点。 工作点与退磁…

Python实验项目9 :网络爬虫与自动化

实验 1:爬取网页中的数据。 要求:使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。 # 要求:使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。 import urllib.r…

人工智能在大型复杂机械产品装配状态检测自动化中的应用

尊敬的读者们,本文主要围绕“大型复杂机械产品装配状态检测自动化方案”开展讨论,从这个领域存在的问题和难度,以及基于人工智能、数字图像处理、机器人控制、装配机理等技术的自动化设计与实践方案。文章提出了数字化建模和智能识别模型构建…

【PHP】一个邮箱点击验证的完整示例

目录 1.效果展示 2.发送验证码 3.进行验证 以绑定邮箱为例,注册验证的话修改判断逻辑 1.效果展示 2.发送验证码 /*** 发点击验证* 参数 email*/public function sendClick(){$param $this->request->post();// 邮箱email的validate规则验证,略…