求助,如何可以动态设置需要hook的数据

发布网友 发布时间:2024-09-29 02:37

我来回答

1个回答

热心网友 时间:2024-10-01 05:13

先给不懂钩子的人简单介绍一下原理:所谓hook,既钩子。hook会在应用程序接到消息之前,拦截应用程序的信息,比如鼠标键盘钩子会拦截一个应用程序的鼠标键盘信息。要做盗号木马?用WH_KEYBOARD类型的hook 1.我们要跨进程使用钩子,要把hook函数写在DLL文件中,这是微软明确规定的。也有其他方法,这里不多叙述 2.在DLL文件中 设置钩子. 这里需要调用线程ID,threadId,我们会在下面调用DLL的调用端中写入 hhookGetMsg=::SetWindowsHookEx(WH_GETMESSAGE,GetMessageHookProc,::GetMoleHandle(TEXT("dll.dll")),threadId); //参数1:钩子类型 //参数2:钩子处理函数 //参数3:钩子所在的模块 //参数4:钩子要拦截的线程ID,如果要设置全局钩子,这里给0。把这个SetWindowsHookEx()函数写在一个导出函数中,允许调用dll文件的程序调用 _declspec(dllexport) void SetHook(DWORD threadId) { hhookGetMsg=::SetWindowsHookEx(WH_GETMESSAGE,GetMessageHookProc,::GetMoleHandle(TEXT("dll.dll")),threadId); } SetHook()就是本dll的导出函数 3.在钩子处理函数中写入功能,当钩子截取到WM_NULL消息的时候,注入DLL文件。由于WM_NULL消息,是个没用的消息,应用...
S

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com