c语言hook内核作用,hook内核函数的基本方法(附代码,经测试不蓝屏)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
来看看汇编代码和注释:
IoCallDriver:
nt!IoCallDriver:
804f04f2 8bff mov edi,edi
804f04f4 55 push ebp
804f04f5 8bec mov ebp,esp
804f04f7 8b550c mov edx,dword ptr [ebp+0Ch]//irp,edx
804f04fa 8b4d08 mov ecx,dword ptr [ebp+8]//deviceobject,ecx
804f04fd ff1500d25480 call dword ptr [nt!pIofCallDriver (8054d200)]
804f0503 5d pop ebp
804f0504 c20800 ret 8
IopfCallDriver:
nt!IopfCallDriver:
804ef0e8 fe4a23 dec byte ptr [edx+23h]//CurrentLocation--
804ef0eb 8a4223 mov al,byte ptr [edx+23h]
804ef0ee 84c0 test al,al//CurrentLocation是否为0
804ef0f0 7f0e jg nt!IopfCallDriver+0x18 (804ef100)
804ef0f2 6a00 push 0
804ef0f4 6a00 push 0
804ef0f6 6a00 push 0
804ef0f8 52 push edx
804ef0f9 6a35 push 35h
804ef0fb e89aab0000 call nt!KeBugCheckEx (804f9c9a)//报错
804ef100 8b4260 mov eax,dword ptr [edx+60h]//Tail.Overlay.CurrentStackLocation
804ef103 83e824 sub eax,24h//IO_STACK_LOCATION为0x24字节
804ef106 56 push esi//--Tail.Overlay.CurrentStackLocation
804ef107 894260 mov dword ptr [edx+60h],eax//irpStack(PIO_STACK_LOCATION)
804ef10a 894814 mov dword ptr [eax+14h],ecx//irpStack->DeviceObject=deviceobject
804ef10d 0fb600 movzx eax,byte ptr [eax]//irpStack->MajorFunction
804ef110 8b7108 mov esi,dword ptr [ecx+8]//deviceobject->DriverObject
804ef113 52 push edx
804ef114 51 push ecx
804ef115 ff548638 call dword ptr [esi+eax*4+38h]//deviceobject->DriverObject->MajorFuntion[eax]
804ef119 5e pop esi
804ef11a c3 ret//返回到调用函数
c语言hook内核作用,hook内核函数的基本方法(附代码,经测试不蓝屏)相关推荐
- C语言:static作用(修饰函数、局部变量、全局变量)
C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量. 全局变 ...
- R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线
R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线.对指定范围的数据拟合曲线 目录
- python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发
strncmp函数用法详解_后端开发 strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, ...
- js接收php 回调,JS callback回调函数的使用(附代码)
这次给大家带来JS callback回调函数的使用(附代码),JS callback回调函数使用的注意事项有哪些,下面就是实战案例,一起来看一下. 在使用开源项目的时候经常会使用到回调函数,如果把回调 ...
- 详解Python中get函数的用法(附代码)
描述: Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法: get()方法语法: dict.get(key, default=None) 参数: key – 字典 ...
- python中的get函数什么意思_详解python中get函数的用法(附代码)
描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法:dict.get(key, default=None) 参数 key – 字典中要查找 ...
- python get函数用法_详解python中get函数的用法(附代码)
描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法:dict.get(key, default=None) 参数 key – 字典中要查找 ...
- peek在c语言中的作用,C++ peek函数用法详解
peek 成员函数与 get 类似,但有一个重要的区别,当 get 函数被调用时,它将返回输入流中可用的下一个字符,并从流中移除该字符:但是,peek 函数返回下一个可用字符的副本,而不从流中移除它. ...
- 孙玄辜教授:基于Linux内核的时间轮算法设计实现【附代码】
文章目录 1.时间轮算法基本思想 2.定时器的添加 3.定时器到期处理 孙玄:毕业于浙江大学,现任转转公司首席架构师,技术委员会主席,大中后台技术负责人(交易平台.基础服务.智能客服.基础架构.智能运 ...
最新文章
- pecl.php.net,WARNING: channel pecl.php.net has updated its protocols, use pecl channel-update pec...
- java实现闹钟功能_AlarmManager类的应用(实现闹钟功能)
- 结构和类中字段的初始化以及用new来操作他们的构造函数
- python【进阶】4.文本和字节序列
- 【软件开发】制作个人移动式Git服务器
- is在python中是什么意思_Python 中 is 与 == 有啥区别?
- 百度小程序全套源码下载、免费分享,一键生成百度小程序
- dubbo+rabbitmq+hystrix实现服务的高可用
- 使用Jenkins容器构建时,关于maven项目settings.xml的位置
- freerdp linux下连接windows远程终端工具
- 【转载】面向对象建模与数据库建模两种分析设计方法的比较
- CSS3渐变——线性渐变
- 吴恩达机器学习【第六天】神经网络模型
- 刚刚,爱奇艺发布重磅开源项目!
- [置顶] 原来JAVA对象转JSON格式的字符串如此简单,返回来暂时不会做,留下纪念下
- 第一章 前缀和与差分
- 【脑图制作】万彩脑图大师教程 | 修改主题样式
- 计算机组成原理课程设计 从1加到10,带进位左移三位,计算机组成原理课程设计--乘除法运算.docx...
- 论Flutter开发如何改善套娃地狱问题
- word点击退出时未保存怎么办?