Hook
Dreamer12138
这个作者很懒,什么都没留下…
展开
-
IAT Hook
IAT Hook 本质就是将PE的导入表中的IAT中指定函数的地址进行替换,从而实现Hook。 我的IAT Hook 是配合CreateRemoteThread进行注入Hook的。关于CreateRemoteThread请参照:CreateRemoteThread // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" #include <tlhelp32.h> #include <imagehlp.h> #pragma comm原创 2020-05-16 19:22:29 · 698 阅读 · 0 评论 -
SSDT inlineHook
上一篇我们介绍了最简单的SSDT,这篇来写一下inlineHook。 所谓的inlineHook就是在内存中修改所需要挂钩函数的前几个字节,让其跳转到我们的fake函数,执行完毕后再跳回去执行原函数,这样的话我们就没有修改SST表里面的内容,而是对函数本身修改。 流程摘自:看雪aniquest 1. 获取服务函数地址: (1)通过全局变量KeServiceDescriptorTable获得SSDT表的起始地址; (2)映射ntdll.dll到ring0空间,获得要Hook的函数的服务索引号; (原创 2020-05-16 09:39:55 · 377 阅读 · 1 评论 -
SSDTHook
准备学习一下Hook技术,从最简单的SSDT Hook开始。 关于SSDT是什么参考:SSDT知识 SSDT Hook的实现思路就是 将SST表中储存的函数地址换成我们的fake函数的地址,并保存原函数地址 执行我们的fake函数后再调用原函数 从而实现在调用指定函数前进行自定义的处理。 首先我们要找到要挂钩的函数的地址,并保存起来 UNICODE_STRING v1; RtlInitUnicodeString(&v1, L"ZwOpenProcess"); __ZwOpen原创 2020-05-16 09:04:05 · 326 阅读 · 0 评论