windows系统下Hook
文章示例来至《Windows核心编程》第22章实例Desktop Item Position Saver工具
DIPS示例程序下载
原理说明
windows下使用Hook实现对远程进程注入DLL技术,通过共用操作系统下同一份DLL,实现对目标进程的特定消息传输,甚至达到控制的技术。
首先需要了解的实现DLL注入实现Hook进程的方式
HHOOK hHook = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, hInstDll, 0);
由于windows下对DLL是通过映射到虚拟内存地址,及不同的进程,对同一份DLL的加载,对于操作系统而言,只加载同一份,通过引用计数来记录加载了几次。并且通过DLL中定义的GetMsgProc函数实现对WH_GETMESSAGE钩子类型的转发。
代码说明
代码本身是通过窗口消息实现的收发实现的注入
LibDips动态库
动态库对外实现的导出接口
#if !defined(DIPSLIBAPI)
#define DIPSLIBAPI __declspec(dllimport)
#endif
DIPSLIBAPI BOOL WINAPI