1.简介
消息钩子注入. 对有窗口的进程. 容易被检测
SetWindowsHookExW的参数1如果空,则卸载钩子
2.代码
HHOOK hook = 0; DWORD msgInject(WCHAR* dllpath,WCHAR* className, WCHAR* windowName) { if (!dllpath) { if (hook) { UnhookWindowsHookEx(hook); } return 0; } HMODULE hd = LoadLibraryW(dllpath); LPVOID func = (LPVOID)GetProcAddress(hd, "hook"); if (!func) { FreeLibrary(hd); return 0; } HWND wind = FindWindowW(className, windowName); if (wind == INVALID_HANDLE_VALUE || wind == 0) { FreeLibrary(hd); return 0; } DWORD tid = GetWindowThreadProcessId(wind, 0); if (!tid) { FreeLibrary(hd); return 0; } hook = SetWindowsHookExW(WH_GETMESSAGE, (HOOKPROC)func,hd,tid); if (!hook) { FreeLibrary(hd); return 0; } return 1; }
未完待续...
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步