WinDbg无符号调试DriverEntry中断

无符号文件的驱动中断DriverEntry方法

当我们调试有符号的windows驱动时,通常可以使用bu module!DriverEntry, 在模块的DriverEntry位置打上断点。
那么对于无符号驱动,应该如何找到DriverEntry函数的位置呢?
驱动加载调用栈

从正常的DriverEntry的调用栈栈中可以看到驱动加载的调用路径基本上如下所示。

nt!IopLoadDriver->nt!PnpCallDriverEntry->module!DriverEntry

虽然每个系统的实现可能存在差异,但是基本上都会调用到IopLoadDriver函数。
因此,我们可以使用uf nt!IopLoadDriver命令查找 nt!IopLoadDriver的下层调用。

函数调用
上图中可以看到在pe文件后,又通过nt!PnpCallDriverEntry进入了下层函数。
然后在反汇编窗口中可以发现,这里通过CFG的派遣调用方式执行了RAX指向的函数。

驱动加载点
因此,我们在上图红色位置打下断点,等待内核执行到这里,查看RAX的地址。即驱动的DriverEntry入口点。

_guard_dispatch_icall
描述:_guard_dispatch_icall是CFG机制的派遣函数。

在内核中,许多函数都需要进行间接调用,出于安全性考虑,避免目标地址被控制,因此不会直接CALL目标地址,而是先通过_guard_dispatch_icall检查地址合法性,并由其进行调用,如果地址合法,它的作用相当于「CALL RAX」。

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

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

相关文章

OceanBase社区版手动部署单副本集群及OBProxy

OceanBase社区版手动部署单副本集群及OBProxy 文章目录 OceanBase社区版手动部署单副本集群及OBProxy一、环境准备二、部署observer三、集群初始化四、部署obproxy五、创建租户、数据库、表六、避坑指导七、参考链接 一、环境准备 oceanbase社区版部署单副本集群,要…

Java项目:40 springboot月度员工绩效考核管理系统009

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统的功能分为管理员和员工两个角色 管理员的功能有: (1)个人中心管理功能,添加管理员账号…

多线程相关面试题(2024大厂高频面试题系列)

1、聊一下并行和并发有什么区别? 并发是同一时间应对多件事情的能力,多个线程轮流使用一个或多个CPU 并行是同一时间动手做多件事情的能力,4核CPU同时执行4个线程 2、说一下线程和进程的区别? 进程是正在运行程序的实例&#xff…

Java 重写和重载

重写 重写一定是在父子类之间,不可能在一个类中。 要求: 1、方法名一致 2、方法名称一致,参数类型列表一致,返回结果类型一致 3、子类方法的范围限定词需要大于等于父类的范围 4、子类方法不能比父类方法抛出更多的异常 重载…

XSS靶场-初级关卡

一、环境 XSS靶场 二、闯关 1、第一关 先看源码 使用DOM型&#xff0c;获取h2标签&#xff0c;使用innerHTML将内容插入到h2中 我们直接插入<script>标签试一下 明显插入到h2标签中了&#xff0c;为什么不显示呢&#xff1f;看一下官方文档 尽管插入进去了&#xff0…

【学习资源】对比说明三个通过作者查找文献数据库(一)

最近博主在阅读相关文献的时候&#xff0c;想针对一些作者的科研文献做一个详细的了解&#xff0c;于是涉及到“如何已知作者与其所在单位&#xff0c;查找其研究成果”的问题&#xff0c;博主尝试了在Google Scholar、Web of Science、CRS核心论文库这三个地方通过作者查找文献…

程序异常结束退出 无输出 无显式报错日志 爆栈

需求 开一个很大的数组&#xff08;300万&#xff09; ❗ 错误示例 #include <stdio.h>int main() {int size 3000000;int a[size];a[size-1] 999;printf("%d",a[size-1]);return 0; }&#x1f60b; 解决方案 局部变量存储在栈空间 &#xff08;较小&…

HarmonyOS(二)Ability应用模型概述

目录 1 Ability概念 2 Ability形态 3 Stage优势 4 Stage模型结构 5 总结 注&#xff1a;本章内容提前声明。 基于HarmonyOS开发者3.1/4.0版本配套的开发者文档&#xff0c;对应API能力级别为API 9 Release。 详情可参考官网API入门第一章应用模型文档中心 1 Ability概念…

绳牵引并联机器人动态避障方法

绳牵引并联机器人在受限空间中如何躲避动态障碍物&#xff0c;是个有挑战的课题。 来自哈尔滨工业大学&#xff08;深圳&#xff09;的熊昊老师团队&#xff0c;开展了一项有趣的研究&#xff0c;论文《Dynamic Obstacle Avoidance for Cable-Driven Parallel Robots With Mob…

golang中go build 后读取配置文件

golang打包后读取配置文件 在用go写代码的时候&#xff0c;为了好用经常使用go build 打包&#xff0c;如果我们用到了配置文件&#xff0c;就总是导致不能找到文件所在位置了出现bug&#xff0c;所以以下代码就解决了这个问题。 核心代码&#xff1a; file, err : exec.Look…

Vue中的v-for中为什么不推荐使用index作为key值

在Vue中&#xff0c;我们经常会用到v-for指令来遍历数组或对象并渲染列表。而在使用v-for指令时&#xff0c;通常会需要给每个遍历的元素指定一个唯一的key值&#xff0c;以帮助Vue更高效地更新DOM。 在很多情况下&#xff0c;我们可能会倾向于使用index作为key值&#xff0c;…

RK android13 伪装第三方应用为Persistent apps

目录frameworks/base diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 7bde11cfb3ac..781940308421 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/conten…

易我分区大师18.2正式上线,赶紧来体验一下

近日&#xff0c;易我科技发布了易我分区大师18.2&#xff0c;该版本在功能和性能上进行了全面的升级和优化&#xff0c;为用户提供更加便捷的磁盘管理体验。 ▲ 易我分区大师18.2版本的首页 易我分区大师是一款功能强大的磁盘分区管理软件&#xff0c;它可以帮助用户轻松地管…

Promisification、微任务

前提摘要 Promise 对象的构造器&#xff08;constructor&#xff09;语法如下&#xff1a; let promise new Promise(function(resolve, reject) { // executor }); 传递给 new Promise的函数被称为 executor&#xff0c;当 new Promise 被创建&#xff0c;executor 会自动…

vite+vue3使用UEditorPlus ,后端PHP

vitevue3使用UEditorPlus 百度富文本编辑器是目前所有编辑器中功能最丰富的&#xff0c;但长时间不进行维护了。 之前写了一篇使用UEditor的教程&#xff0c;最近发现一个UEditorPlus&#xff0c;总结一下如何使用 什么是UEditorPlus 基于 UEditor 二次开发的富文本编辑器&…

猫冻干价格差距大的原因是什么?价格合理、性价比高的生骨肉冻干分享

科学养猫知识的普及&#xff0c;铲屎官们逐渐意识到了生骨肉冻干喂养的益处。然而&#xff0c;价格因素仍是部分铲屎官的阻碍。实际上&#xff0c;像我这样的资深铲屎官&#xff0c;早已认识到生骨肉冻干的价值。虽然价格略高于烘焙粮和膨化粮&#xff0c;但其对猫咪的益处是实…

MapStruct 教程

MapStruct 教程 一、MapStruct 简介 MapStruct 是一个基于约定的代码生成器&#xff0c;用于在 Java bean 类型之间进行转换。它极大地简化了对象之间的映射过程&#xff0c;减少了手动编写映射代码的工作量。MapStruct 通过注解处理器在编译时生成映射代码&#xff0c;因此运…

图片优化总结

1 调整大小 仅该接口&#xff1a;decodeResource 大小根据车机分辨率和图片对应的文件夹来决定的&#xff08;drawbledrawblemdpi1&#xff09; scale (float) targetDensity / density; Bitmap内存占用 ≈ 像素数据总大小 图片宽 x 图片高 x(设备分辨率/资源目录分辨率) x 每…

四个有用的Android开发技巧

一. 通过堆栈快速定位系统版本 这个地方主要分享大家两个个技巧&#xff0c;通过问题堆栈简快速定位当前系统版本&#xff1a; 1. 快速区分当前系统版本是Android10以下&#xff0c;还是Android10及以上&#xff1b; 首先Android10及以上引入了一个新的服务Service&#xff…

Go语言聊天室demo

Go语言聊天室demo 话不多说直接上代码 话不多说直接上代码 Tcp服务端 package mainimport ("container/list""encoding/json""fmt"uuid "github.com/satori/go.uuid""net""strings" )type GlobalConnInfo struc…