内核层InlineHook技术实现与应用.pdfVIP

  • 2
  • 0
  • 约1.02万字
  • 约 22页
  • 2026-04-22 发布于北京
  • 举报

在上一章《驱动开发:内核LDE64引擎计算汇编长度》中,LyShark教大家如何通过LDE64引擎实现计算反汇

编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函数挂钩其实与应用层一致,都

是使用持执行流并跳转到我们自己的函数上来做处理,唯一的不同之处在于内核Hook只针对内核API函

数,但由于其身处最底层所以一旦被挂钩其整个应用层都将受到影响,这直接决定了在内核层挂钩的效果是

应用层无法比拟的,对于安全从业者来说学会使用内核挂钩也是非常重要的。

挂钩的原理可以总结为,通过MmGetSystemRoutineAddress得到原函数地址,然后保存该函数的前15个

字节的指令,将自己的MyPsLookupProcessByProce函数地址写入到原始函数上,此时如果有

API被调用则会默认转向到我们自己的函数上执行,恢复原理则是将提前保存好的前15个原始字节写回以恢

复原函数的调用。

原理很简单,基本上InlineHook类的代码都是一个样子,如下是一段完整的挂钩

PsLookupProcessByProce的驱动程序,当程序被加载时则默认会保护lyshark.exe进程,使

其无法被用户使用任务管理器结束掉。

在上一章《驱动开发:内核LDE64引擎计算汇编长度》中,

文档评论(0)

1亿VIP精品文档

相关文档