钩子编程(HOOK) 留后门与钩子卸载
来源:互联网 发布:辽宁农产品价格数据 编辑:程序博客网 时间:2024/06/05 20:32
作者 : 卿笃军
问题由来:一般编写钩子程序,我们希望程序一方面能屏蔽键盘鼠标消息,但又希望程序能留有一个“后门”,例如,按下F2退出程序。
下面示例,钩子后门设计与钩子卸载:
第一步:打开VC6.0创建一个基于对话框的MFC应用程序。
第二步:在BOOL CHookDlg::OnInitDialog()函数上面编写如下代码,注意不是OnInitDialog()里面:
HWND g_hWnd = NULL; //窗口句柄HHOOK g_hKeyboard = NULL; //钩子句柄//回调函数LRESULT CALLBACK KeyboardProc(int ncode, WPARAM wParam, LPARAM lParam){if (VK_F2 == wParam) {::SendMessage(g_hWnd,WM_CLOSE,0,0); //发送关闭主窗口消息UnhookWindowsHookEx(g_hKeyboard); //卸载钩子}return 1;}第三步:在OnInitDialog()函数里面编写如下代码,安装钩子:
g_hWnd = m_hWnd; //获得当前窗口句柄g_hKeyboard = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());//安装钩子
第四步:编译->链接->运行。
这里主要是要发送关闭主窗口消息,但是钩子程序又不是类里面的函数,而SendMessage()函数的第一个参数是需要一个窗口句柄,这里我们定义一个全局的窗口句柄,然后用主窗口的句柄m_hWnd将其初始化。
1 0
- 钩子编程(HOOK) 留后门与钩子卸载
- 钩子(hook)编程
- HOOK 钩子编程
- HOOK编程 ----全局钩子
- 钩子(hook)编程
- 钩子(hook)编程
- 钩子(hook)编程
- 钩子编程(HOOK) 安装进程内鼠标钩子
- 钩子编程(HOOK) 安装进程内键盘钩子
- 钩子编程(HOOK) 安装系统全局钩子
- 钩子技术介绍(HOOK 编程)
- 钩子(hook)
- 钩子运行机制(HOOK)
- 什么是钩子(Hook)
- HOOK钩子 (转载)
- 钩子(HOOK)
- 创建钩子(Hook)
- Hook(钩子)函数
- Scala Hello 实例
- 8 Best Open-Source Ecommerce Platforms to Open Your Own Store
- Flex中配置FusionCharts
- Dalvik虚拟机
- [LeetCode] Unique Binary Search Trees
- 钩子编程(HOOK) 留后门与钩子卸载
- 在Windows8系统下exe格式会计课件下载播放帮助图解
- PJOI PKU Campus 2011 B:A Problem about Tree LCA 求任意点x为根的y的父节点
- JAVA
- 今天还是干了些事的
- iOS UIWebView 修改user-agent
- 转转转,三进制转十进制(ACM)C编程
- ubuntu1204 qt5.3运行qml程序时出错
- UVaOJ 445 Marvelous Mazes