钩取流程
- 反汇编/调试器理清程序结构和工作原理
- 开发钩子代码, 修改/改进程序功能
- 操作可执行文件和进程内存, 设置钩子
机制
对于Windows OS, 用户程序需要使用资源时, 需向内核申请使用API. 具体则是通过DLL文件一层层向下调用, 最后通过SYSENTER进入内核模式.
示意图(notepad.exe打开一个文件的过程)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d11455749671f3226e3674c7c3f4098d.png)
API钩取
完全技术图表(摘自ReverseCore29章)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/15406bcf33c44161ad64ed933bf38102.png)
位置分类
- IAT 修改IAT地址为钩取函数地址
- EAT 修改EAT地址为钩取函数地址
- Code 从内存查找API, 直接修改代码
技术分类