该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

来看看汇编代码和注释:

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内核函数的基本方法(附代码,经测试不蓝屏)相关推荐

  1. C语言:static作用(修饰函数、局部变量、全局变量)

    C语言:static作用(修饰函数.局部变量.全局变量) 一. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.  全局变 ...

  2. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线

    R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线.对指定范围的数据拟合曲线 目录

  3. python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发

    strncmp函数用法详解_后端开发 strncmp函数为字符串比较函数,其函数语法为"int strncmp ( const char * str1, const char * str2, ...

  4. js接收php 回调,JS callback回调函数的使用(附代码)

    这次给大家带来JS callback回调函数的使用(附代码),JS callback回调函数使用的注意事项有哪些,下面就是实战案例,一起来看一下. 在使用开源项目的时候经常会使用到回调函数,如果把回调 ...

  5. 详解Python中get函数的用法(附代码)

    描述: Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法: get()方法语法: dict.get(key, default=None) 参数: key – 字典 ...

  6. python中的get函数什么意思_详解python中get函数的用法(附代码)

    描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法:dict.get(key, default=None) 参数 key – 字典中要查找 ...

  7. python get函数用法_详解python中get函数的用法(附代码)

    描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法:dict.get(key, default=None) 参数 key – 字典中要查找 ...

  8. peek在c语言中的作用,C++ peek函数用法详解

    peek 成员函数与 get 类似,但有一个重要的区别,当 get 函数被调用时,它将返回输入流中可用的下一个字符,并从流中移除该字符:但是,peek 函数返回下一个可用字符的副本,而不从流中移除它. ...

  9. 孙玄辜教授:基于Linux内核的时间轮算法设计实现【附代码】

    文章目录 1.时间轮算法基本思想 2.定时器的添加 3.定时器到期处理 孙玄:毕业于浙江大学,现任转转公司首席架构师,技术委员会主席,大中后台技术负责人(交易平台.基础服务.智能客服.基础架构.智能运 ...

最新文章

  1. pecl.php.net,WARNING: channel pecl.php.net has updated its protocols, use pecl channel-update pec...
  2. java实现闹钟功能_AlarmManager类的应用(实现闹钟功能)
  3. 结构和类中字段的初始化以及用new来操作他们的构造函数
  4. python【进阶】4.文本和字节序列
  5. 【软件开发】制作个人移动式Git服务器
  6. is在python中是什么意思_Python 中 is 与 == 有啥区别?
  7. 百度小程序全套源码下载、免费分享,一键生成百度小程序
  8. dubbo+rabbitmq+hystrix实现服务的高可用
  9. 使用Jenkins容器构建时,关于maven项目settings.xml的位置
  10. freerdp linux下连接windows远程终端工具
  11. 【转载】面向对象建模与数据库建模两种分析设计方法的比较
  12. CSS3渐变——线性渐变
  13. 吴恩达机器学习【第六天】神经网络模型
  14. 刚刚,爱奇艺发布重磅开源项目!
  15. [置顶] 原来JAVA对象转JSON格式的字符串如此简单,返回来暂时不会做,留下纪念下
  16. 第一章 前缀和与差分
  17. 【脑图制作】万彩脑图大师教程 | 修改主题样式
  18. 计算机组成原理课程设计 从1加到10,带进位左移三位,计算机组成原理课程设计--乘除法运算.docx...
  19. 论Flutter开发如何改善套娃地狱问题
  20. word点击退出时未保存怎么办?

热门文章

  1. Docker1.12.1之swarm集群搭建与使用
  2. 认识OSSIM中的UUID
  3. (转)iOS7界面设计规范(10) - UI基础 - 文字排版与配色
  4. 分区视图(转自小春BOOK)
  5. .NET新手系列(六)
  6. Apache Kudu 1.9.0 发布,支持位置感知
  7. 参加51CTO培训,PMP考试通过啦
  8. 计算机网络(NETWORK 部分二) 第1-2天
  9. 阿里巴巴陈武:通过亿级用户App的实践验证,锤炼高质量APM体系
  10. Oracle10g OEM乱码解决