- 16
- 0
- 约1.33万字
- 约 15页
- 2016-01-01 发布于安徽
- 举报
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!
前置知识:汇编 驱动 windbg 函数参数调用
关键词:堆栈平衡 inline hook
详谈内核三步走Inline Hook实现
(一)Inline hook原理
Inline hook通俗的说就是对函数执行流程进行修改,达到控制函数过滤操作的目的。理论上我们可以在函数任何地方把原来指令替换成我们的跳转指令,也确实有些人在inline
的时候做的很深,来躲避inline 的检测,前提是必须对函数的流程和指令非常熟悉,且这种深层次的inlline 不具有通用性,稳定性也是问题。本文讨论的是具有通用性的两类inline的实现。
Inline hook原理:解析函数开头的几条指令,把他们Copy到数组保存起来,然后用一个调用我们的函数的几条指令来替换,如果要执行原函数,则在我们函数处理完毕,再执行我们保存起来的开头几条指令,然后调回我们取指令之后的地址执行。用下图来解释:
原函数:
开头指令A 指令B Inline 后:
JMP MyFunction 指令B
MyFunction:
处理函数 JMP ResumeFunction
ResumeFunction:
开头指令A JMP 回去
原创力文档

文档评论(0)