
HOOK技术
Fzuim
不忘初心,方得始终!
展开
-
SetWinEventHook应用于进程注入
SetWinEventHook函数原型:HWINEVENTHOOK SetWinEventHook( DWORD eventMin, DWORD eventMax, HMODULE hmodWinEventProc, WINEVENTPROC pfnWinEventProc, DWORD idProcess, DWOR...原创 2019-12-31 11:01:06 · 2195 阅读 · 0 评论 -
C++钩子技术,拦截带有某些关键字的窗体
这次想写一篇,自己曾经做过的一个Hook程序,温故而知新。作为一个C++程序员,肯定对钩子(Hook)技术有所了解:消息钩子,API钩子。基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理windo...原创 2016-12-16 13:49:05 · 5594 阅读 · 10 评论 -
【Inline Hook基础篇】框架搭建
Windows程序员对于HOOK技术应该都很熟悉,HOOK俗称:钩子。即将自己想实现的功能,挂钩到系统的函数上,达到调用系统的函数时能自动执行我们实现的功能。对于HOOK,也分为:消息钩子,API钩子,内核钩子。消息钩子和API钩子都是在应用层(Ring3)上实现,内核钩子则是在内核层(Ring0)上实现的。此次开篇,逐重讨论下Inline Hook的实现方式,Inline Hook也是AP...原创 2018-07-31 10:27:52 · 1575 阅读 · 2 评论 -
【Inline Hook基础篇】挂钩系统API
对于怎么挂钩系统API的实现,网上对此的解释有很多也很详细。这边暂不进行长篇大论,就简单的说明下原理:修改系统API的前几个字节,并写入 JMP 0x15a123 汇编指令,实现调用系统API自动跳转到我们的API的过程。对于API HOOK的实现,现成的有MHOOK、DETOUR等类似的框架实现。既然我们要清晰的认识具体怎么实现,那么我们就自己编写实现方式,不采用第三方库。其实也很简单,没啥...原创 2018-07-31 13:40:03 · 1557 阅读 · 0 评论 -
【Inline Hook应用篇】限制剪切板(针对文件类型)
限制剪切板,主要是限制不允许粘贴。我们对这两个系统API进行挂钩:GetClipboardData和OleGetClipboard//!<限制剪切板InitHook("user32.dll", "GetClipboardData", (DWORD)hook_GetClipboardData);InitHook("ole32.dll", "OleGetClipboard",...原创 2018-07-31 13:50:18 · 1121 阅读 · 2 评论 -
【Inline Hook应用篇】限制打开文件选择对话框
我们要实现限制程序不允许发送文件,可以通过限制“文件选择对话框”实现。对于文件选择对话框的限制,基础点的就是Hook:GetOpenFileName、SHBrowseForFolder,对这两个API的Hook,可以限制市面上80%的文件发送,但对于QQ之类的在XP系统以上就不能成功限制了。具体是因为QQ在选择文件发送的对话框,采用COM接口来实现,所以要限制QQ发送文件,还需要额外Hook C...原创 2018-07-31 19:06:31 · 1398 阅读 · 1 评论 -
【DLL注入】C++远程DLL注入
这是个很古老的DLL注入技术,采用的是创建远程线程的方式。将LdadLibraryA的函数地址当做线程的回调地址,线程参数采用待注入DLL的绝对路径值。这个参数我们得采用VirtualAllocEx和WriteProcessMemory的方式在目标进程进行内存空间的申请和写入。废话不多说,贴上自己写的代码:DLL注入函数: bool Dll_Inject(DWORD& v_d...原创 2017-06-28 16:53:54 · 1823 阅读 · 0 评论