Windows驱动学习(八)-- 通过InlineHook实现变速齿轮

本文介绍了如何在Windows驱动中通过Inline Hook技术改变系统时钟速度。首先,讲解了Inline Hook的基本原理,即修改目标函数开头的字节码使其跳转到Hook API。接着详细阐述了驱动的编写过程,包括获取函数地址、保存和恢复原函数字节码、编写hook函数等步骤。最后,测试驱动成功实现了系统时钟加速的效果。
摘要由CSDN通过智能技术生成

教程参考自:https://www.bilibili.com/video/av26193169/?p=9
代码地址:https://github.com/G4rb3n/Windows-Driver/tree/master/MT-InlineHook

1. 概述

之前的章节我们介绍了FSD Hook技术,这章我们来讲解一下更底层一点的Inline Hook技术。

2. 原理介绍

Inline Hook直接修改内存中任意函数的代码,将其劫持至Hook API。它的目标是系统函数,如下,第一张图是Hook之前的状态,procexp.exe进程调用ZwQuerySystemInformation()函数时,ZwQuerySystemInformation()的代码是正常的代码。第二张图是Hook后的状态,注意红框中的代码,ZwQuerySystemInformation()函数开头5个字节已被修改,变成了jmp 0x10001120,也就是我们恶意代码的地址,之后便可以开始我们的自定义操作。0x1000116A我们先进行unhook操作(脱钩),目的是将ZwQuerySystemInformation()的代码恢复。大家可能有疑惑,为什么刚修改完又要恢复回来,原因很简单,Hook的目的是当调用某个函数时,我们能劫持进程的执行流。现在我们已经劫持了进程的执行流,便可以恢复ZwQuerySystemInformatio

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值