ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day13 – 钩子和服务

2021-08-08 21:03:28  阅读:202  来源: 互联网

标签:安装 服务 钩子 挂钩 WH 线程 day13 过程


远程线程注入dll卸载

FreeLibraryAndExitThread

将已加载的动态链接库(DLL)的引用计数减一,然后调用 ExitThread终止调用线程。该函数不返回。

void FreeLibraryAndExitThread(
  HMODULE hLibModule,
  DWORD   dwExitCode
);

参数

hLibModule

DLL模块的句柄,其引用计数函数递减。在 调用LoadLibraryGetModuleHandleEx函数返回该句柄。

不要使用GetModuleHandleEx函数(带有GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT标志)或GetModuleHandle函数返回的句柄来调用此函数,因为它们不维护模块的引用计数。

dwExitCode

调用线程的退出代码。

一般加上一个sleep

windows HOOk(钩子)又称(偷窥)

局部钩子-只能查看自己的窗口信息

全局钩子-可以看系统范围里的所有的消息

将应用程序定义的挂钩过程安装到挂钩链中。您将安装一个挂钩过程来监视系统中的某些类型的事件。这些事件与特定线程或与调用线程在同一桌面上的所有线程相关联。

SetWindowsHookEx

HHOOK SetWindowsHookExA(
  int       idHook,
  HOOKPROC  lpfn,
  HINSTANCE hmod,
  DWORD     dwThreadId
);

参数

idHook

类型:int

要安装的挂钩过程的类型。此参数可以是以下值之一。

参数

价值 意义
WH_CALLWNDPROC4 在系统将消息发送到目标窗口过程之前,安装用于监视消息的挂钩过程。有关更多信息,请参见CallWndProc挂接过程。
WH_CALLWNDPROCRET12 安装挂钩过程,以监视目标窗口过程处理完的消息。有关更多信息,请参见CallWndRetProc挂接过程。
WH_CBT5 安装一个挂钩程序,该程序接收对CBT应用程序有用的通知。有关更多信息,请参见CBTProc挂钩过程。
WH_DEBUG9 安装一个钩子程序,对调试其他钩子程序很有用。有关更多信息,请参见DebugProc挂钩过程。
WH_FOREGROUNDIDLE11 安装一个挂钩程序,当应用程序的前台线程即将变为空闲时,该挂钩程序将被调用。该挂钩对于在空闲时间执行低优先级任务很有用。有关更多信息,请参见ForegroundIdleProc挂钩过程。
WH_GETMESSAGE3 安装挂钩过程,以监视发布到消息队列的消息。有关更多信息,请参见GetMsgProc挂钩过程。
WH_JOURNALPLAYBACK1个 安装一个挂接过程,该挂接过程将发布以前由WH_JOURNALRECORD挂接过程记录的消息。有关更多信息,请参见JournalPlaybackProc挂钩过程。
WH_JOURNALRECORD0 安装一个挂接过程,该过程记录发布到系统消息队列中的输入消息。该钩子对于记录宏很有用。有关更多信息,请参见JournalRecordProc挂钩过程。
WH_KEYBOARD2个 安装挂钩过程,以监视击键消息。有关更多信息,请参见KeyboardProc挂接过程。
WH_KEYBOARD_LL13 安装钩子过程,以监视低级键盘输入事件。有关更多信息,请参见LowLevelKeyboardProc挂钩过程。
WH_MOUSE7 安装监视鼠标消息的挂钩过程。有关更多信息,请参见MouseProc挂钩过程。
WH_MOUSE_LL14 安装钩子过程,以监视低级别的鼠标输入事件。有关更多信息,请参见LowLevelMouseProc挂钩过程。
WH_MSGFILTER-1 安装挂钩过程,以监视由于对话框,消息框,菜单或滚动条中的输入事件而生成的消息。有关更多信息,请参见MessageProc挂钩过程。
WH_SHELL10 安装一个挂钩程序,该程序接收对外壳应用程序有用的通知。有关更多信息,请参见ShellProc挂钩过程。
WH_SYSMSGFILTER6 安装挂钩过程,以监视由于对话框,消息框,菜单或滚动条中的输入事件而生成的消息。挂钩过程会在与调用线程相同的桌面中监视所有应用程序的这些消息。有关更多信息,请参见SysMsgProc挂接过程。
lpfn

类型:HOOKPROC

指向钩子过程的指针。如果dwThreadId参数为零或指定由其他进程创建的线程的标识符,则lpfn参数必须指向DLL中的挂钩过程。否则,lpfn可以指向与当前进程关联的代码中的挂钩过程。

hmod

类型:HINSTANCE

DLL的句柄,其中包含由lpfn参数指向的挂钩过程。所述HMOD参数必须设置为NULL,如果dwThreadId参数指定由当前进程,并且如果钩子程序是与当前过程相关联的所述代码中创建的线程。

dwThreadId

类型:DWORD

挂钩过程将与之关联的线程的标识符。对于桌面应用程序,如果此参数为零,则挂钩过程与与调用线程在同一桌面上运行的所有现有线程相关联。对于Windows应用商店应用程序,请参阅“备注”部分。

返回值

类型:HHOOK

如果函数成功,则返回值是挂钩过程的句柄。

如果函数失败,则返回值为NULL。要获取扩展的错误信息,请调用GetLastError

删除通过SetWindowsHookEx函数安装在挂钩链中的挂钩过程。

BOOL UnhookWindowsHookEx(
  HHOOK hhk
);

参数

hhk

类型:HHOOK

钩子的手柄将被卸下。此参数是通过上一次调用SetWindowsHookEx获得的挂钩句柄。

返回值

类型:布尔

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError

标签:安装,服务,钩子,挂钩,WH,线程,day13,过程
来源: https://www.cnblogs.com/zaixialongaotian/p/15116178.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有