当前位置: 首页 > news >正文

驱动插入中断门示例代码

驱动插入中断描述符示例代码

最近做实验,每次在应用层代码写测试代码的时候都要手动挂一个中断描述符,很不方便所以就想着写个驱动挂一个中断门比较省事
驱动测试效果如下:
在这里插入图片描述
在这里插入图片描述
下面的代码是个架子,用的时候找个驱动历程传递你要插入的中断门描述符或者是函数地址进来然后在根据这个架子插入idt就可以了
样例代码如下:

#include <ntddk.h>
#define NTSTRSAFE_LIB
#include <ntstrsafe.h>
#include <intrin.h>VOID Unload(PDRIVER_OBJECT pDriver) {KdPrint(("unload"));}typedef struct _IDTR {UINT16 limit;UINT16 base_low;UINT16 base_hight;
}IDTR, *PIDTR;
#define MAKE_WORD(a,b) ((a) + (b << 16))
#define MAKE_BASE(a) (DWORD32)(((a >> 32) & 0x00000000ffff0000) + ((a & 0x000000000000ffff)))
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath) {NTSTATUS status = STATUS_SUCCESS;pDriver->DriverUnload = Unload;KdPrint(("begin\r\n"));// 获取idt表IDTR idtr = { 0 };__sidt(&idtr);KdPrint(("idt base=0x%x, limit=0x%x\r\n", MAKE_WORD(idtr.base_low, idtr.base_hight), idtr.limit));// 构造中断描述符UINT64 new_idte = 0x1234567812345678;// 寻找未使用的位置插入描述符PDWORD64 idteArr = (PDWORD64)MAKE_WORD(idtr.base_low, idtr.base_hight);for (size_t i = 0; i < (idtr.limit >> 3); i++){//这边可以根据类型或者是看里面村的是不是0x0然后直接插入//我这里懒得写了,我的环境上8003f500的位置刚好能用if (MAKE_BASE(idteArr[i]) == 0x0) {idteArr[i] = new_idte;KdPrint(("中断号:0x%x", i));break;}}return status;
}

相关文章:

驱动插入中断门示例代码

驱动插入中断描述符示例代码 最近做实验&#xff0c;每次在应用层代码写测试代码的时候都要手动挂一个中断描述符&#xff0c;很不方便所以就想着写个驱动挂一个中断门比较省事 驱动测试效果如下&#xff1a; 下面的代码是个架子&#xff0c;用的时候找个驱动历程传递你要插…...

1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning

2022CIKM 1 intro 1.1 背景 轨迹相似度计算是轨迹分析任务&#xff08;相似子轨迹搜索、轨迹预测和轨迹聚类&#xff09;最基础的组件之一现有的关于轨迹相似度计算的研究主要可以分为两大类&#xff1a; 传统方法 DTW、EDR、EDwP等二次计算复杂度O(n^2)缺乏稳健性 会受到非…...

如何做一个基于 Python 的搜索引擎?

怎么做一个基于 python 的搜索引擎&#xff1f; 1、确定搜索引擎范围和目标用户 在决定做一个基于Python的搜索引擎之前&#xff0c;首先需要确定搜索引擎的范围和目标用户。搜索引擎的范围可以包括新闻、商品、音乐等&#xff0c;不同的领域需要不同的数据来源和处理方式。同…...

Python报错:KeyError: ‘820‘

Python报错&#xff1a;KeyError: ‘820’ 问题描述 原因 操作的表格列名是数字 NIRdata[820] Rdata[630]以上是出错行&#xff0c;dataframe的这种索引方式不支持用数字。 解决方案 先修改列名为字符 然后将出错行改为对应列名 NIRdata[nir] Rdata[r]...

【kubernetes】kubernetes中的Deployment使用

1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位&#xff0c;Pod通常通过Service进行暴露&#xff0c;因此&#xff0c;通常需要管理一组Pod&#xff0c;RC和RS主要就实现了一组Pod的管理工作&#xff0c;其中&#xff0c;RC和RS的区别在于&#xff0c;RS提供更…...

百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历

本文介绍2024届秋招中&#xff0c;百度的机器学习/数据挖掘/自然语言处理工程师岗位一面的面试基本情况、提问问题、代码题目等。 8月初参与了百度提前批的机器学习/数据挖掘/自然语言处理工程师岗位面试&#xff0c;所在部门是搜索方向的。一面结束之后就知道凉了&#xff0c;…...

RabbitMQ原理(二):SpringAMQP编程

文章目录 3.SpringAMQP3.1.导入Demo工程3.2.快速入门3.1.1.消息发送3.1.2.消息接收3.1.3.测试3.3.WorkQueues模型3.3.1.消息发送3.3.2.消息接收3.3.3.测试3.3.4.能者多劳3.3.5.总结3.4.交换机类型3.5.Fanout交换机3.5.1.声明队列和交换机3.5.2.消息发送3.5.3.消息接收3.5.4.总结…...

什么是SQL注入(SQL Injection)?如何预防它

什么是 SQL 注入&#xff08;SQL Injection&#xff09;&#xff1f;如何预防它&#xff1f; SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络安全漏洞&#xff0c;攻击者通过在应用程序的输入中插入恶意SQL代码来执行未经授权的数据库操作。SQL注入攻击可能导…...

metrology

创建模型&#xff1a;create_metrology_model 设置图像大小&#xff1a;set_metrology_model_image_size 添加测量模型&#xff1a;add_metrology_object_rectangle2_measure 设置对象参数&#xff1a;set_metrology_object_param 设置模型参数&#xff1a;set_metrology_model…...

UE学习记录06----根据Actor大小自适应相机位置

背景&#xff1a; staticMesh 会根据业务需要随时变化&#xff0c;然后通过staticMesh的大小自适应相机位置&#xff0c;捕捉画面用来预览该模型&#xff0c;使模型在画布中不会太大导致显示不全&#xff0c;也不会太小 参考&#xff1a; UE实现相机聚焦物体功能_右弦GISer的…...

Go-Python-Java-C-LeetCode高分解法-第八周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接&#xff1a;LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏&#xff0c;每日一题&#xff0c;和博主一起进步 LeetCode专栏 本文部分内容来自网上搜集与个人实践。如果任何信息存在错误,欢迎…...

数据结构--并查集

一、并查集的概念 并查集是一种树型的数据结构&#xff0c;用于处理一些不相交集合&#xff08;disjoint sets&#xff09;的合并及查询问题。常常在使用中以森林来表示。 最裸并查集&#xff1a; 合并元素a和元素b 所在的集合。查询元素a和元素b 是否属于同一组。是否在一个…...

Leetcode 224. 基本计算器

文章目录 题目代码&#xff08;10.1 首刷看解析&#xff09; 题目 Leetcode 224. 基本计算器 代码&#xff08;10.1 首刷看解析&#xff09; class Solution { public:int calculate(string s) {stack<int> sk; // 存储正负号sk.push(1);int sign 1;int res 0;int i…...

Linux基础命令汇总

用户管理 su 切换用户&#xff1a;su 用户名 logname 显示当前用户的登录用户名&#xff1a;logname useradd 创建用户&#xff1a;useradd 用户名创建用户时指定用户的主组&#xff1a;useradd -g 组名 用户名 usermod 添加附属组&#xff1a;usermod -G 组…...

JAVA 获得特定格式时间

0 背景 我们有时要获取时间&#xff0c;年月日时分秒周几&#xff0c;有时要以特定的格式出现。这时就要借助 SimpleDateFormat 或者 DateTimeFormatter。有时要某个月份有多少天需要借助 Calendar。所以有必要了解一些知识。 1 SimpleDateFormat simpledateFormat 线程不安全…...

问题: 视频颜色问题,偏绿

参考 什么是杜比视界&#xff1f; - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07&#xff1a;HDR、杜比视界究竟是个啥&#xff1f;为什么这个视频还不是HDR视频&#xff1f; - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…...

智能文字识别技术——AI赋能古彝文保护

前言 人工智能在古彝文古籍保护方面具有巨大的潜力和意义。通过数字化、自动化和智能化的手段&#xff0c;可以更好地保护和传承古彝文的文化遗产&#xff0c;促进彝族文化的传承和发展。 文章目录 前言一、古彝文是什么&#xff1f;1.1古彝文的背景1.2古彝文古籍保护背景 二、…...

Linux压缩和解压命令大全:tar、gzip和zip完整教程

文章目录 linux中的压缩和解压命令简介什么是压缩和解压为什么要使用压缩和解压命令压缩命令tar命令创建.tar文件压缩目录压缩多个文件或目录 gzip命令压缩文件压缩后删除原文件压缩整个目录 zip命令创建.zip文件压缩文件或目录设置压缩级别 解压命令tar命令解压.tar文件解压到…...

Vue3 reactive和ref详解

reactive Vue3.0中的reactive reactive 是 Vue3 中提供的实现响应式数据的方法。在 Vue2 中响应式数据是通过 defineProperty 来实现的&#xff0c;在 Vue3 中响应式数据是通过 ES6 的 Proxy来实现的。reactive 参数必须是对象 (json / arr)如果给 reactive 传递了其它对象 默…...

jvs-rules(规则引擎)和jvs智能bi(自助式数据分析)9.22更新内容

规则引擎更新功能 新增: 1.新增节点匹配筛选 用于做多个条件的数据筛选&#xff0c;以便将符合条件的数据传递给下一个节点进行处理&#xff0c;通常用于实现复杂的查询逻辑。 2.复合变量节点新增判断条件选项说明 用户可以根据自己的需求&#xff0c;为复合变量节点添加不…...

2026论文必藏降AIGC软件大曝光:一键压到安全线谁最稳

2026年的学术战场已经彻底变了天&#xff0c;论文不再是简单的知识输出&#xff0c;而是一场与AI检测系统的极限博弈。过去大家还在为查重率发愁&#xff0c;现在却集体陷入了更深层的焦虑——如何在不牺牲论文质量的前提下&#xff0c;把AIGC率压到最低&#xff1f;随着AI检测…...

软件测试的隐藏晋升通道:从QA到QE再到QP

在软件测试领域&#xff0c;大多数人熟悉的职业路径是纵向的&#xff1a;初级、高级、测试架构师或测试经理。然而&#xff0c;在喧闹的晋升阶梯背后&#xff0c;还隐藏着一条认知门槛更高、价值密度更大的水平进化通道——从QA到QE&#xff0c;最终抵达QP。这不是岗位名称的更…...

2026实测:租用RTX 4090 CUDA适配与PyTorch精准安装教程

RTX 4090搭载Ada Lovelace架构、4nm制程工艺&#xff0c;配备16384个CUDA核心、24GB GDDR6X显存、1TB/s显存带宽&#xff0c;FP32算力82.6 TFLOPS&#xff0c;是7B-13B大模型训练、图像识别、深度学习推理的核心主流算力。个人开发者、中小团队自建RTX 4090硬件&#xff0c;存在…...

全志 V821 韦东山 Avaota-F1-B (3) I2C CST816T触摸屏适配

功能还在调试一、硬件连接/**********CST816T********** 1.引脚连接 PD18 -> i2c_clk PD18 -> i2c_sda PD22 -> tp_rst PD23 -> tp_int二、设备树修改tina-v821-v1.3/device/config/chips/v821/configs/avaota_f1/linux-5.4-ansc/board.dtstwi1_pins_default: twi1…...

Godot纸牌游戏框架:分层架构与卡牌状态管理

1. 这不是又一个“通用游戏框架”&#xff0c;而是一套专为纸牌游戏设计的骨骼系统你有没有试过在Godot里从零搭一张卡牌游戏&#xff1f;我试过三次——第一次用Node2D硬堆&#xff0c;拖了二十多个场景&#xff0c;连抽卡动画都得手写Tween&#xff1b;第二次改用Resource做卡…...

低空飞行器降噪气动智能反向设计系统已融合人工智能AI软件平台

低空飞行器降噪气动智能反向设计大模型系统已融合人工智能AI软件平台一、系统概述本系统专为低空飞行器在城市低空飞行、近地通航及密集空域作业等场景量身打造。针对当前行业内气动噪声突出、降噪设计迭代缓慢、正向构型试错成本高昂、流噪耦合计算复杂以及合规降噪难度大等核…...

如何在3分钟内为Unity游戏配置实时AI翻译:XUnity.AutoTranslator终极指南

如何在3分钟内为Unity游戏配置实时AI翻译&#xff1a;XUnity.AutoTranslator终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因为外语游戏的语言障碍而错过精彩剧情&#xff1f;XUnity.A…...

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南

如何在10分钟内搭建个人游戏串流服务器&#xff1a;Sunshine跨平台游戏流媒体完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否梦想过在任何设备上畅玩PC游戏&#x…...

工业级字符识别实战:C#结合YOLO+Tesseract实现药品批号与电子元件丝印精准校验

在工业自动化生产线上&#xff0c;字符识别一直是质量管控的核心环节。从药品包装的批号、有效期到电子元件的丝印型号、批次号&#xff0c;每一个字符的错误都可能导致严重的产品质量问题甚至安全事故。 传统的OCR方案在面对工业场景时往往力不从心&#xff1a;字符倾斜、背景…...

3分钟免费搞定Windows桌面分区:NoFences让你的工作效率翻倍

3分钟免费搞定Windows桌面分区&#xff1a;NoFences让你的工作效率翻倍 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否厌倦了在杂乱无章的Windows桌面上浪费时间寻找文…...