- 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)