24小时热门版块排行榜    

Znn3bq.jpeg
查看: 684  |  回复: 6
当前主题已经存档。

magic7004

金虫 (职业作家)

[交流] 【原创】关于Low Level Keyboard Hook,万恶的SDK啊~~

今天要做点事情,需要屏蔽Win键,于是想到用WH_KEYBOARD_LL,随便看了下VS6.0自带的MSDN里LowLevelKeyboardProc的描述:
The LowLevelKeyboardProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function every time a new keyboard input event is about to be posted into a thread input queue. The keyboard input can come from the local keyboard driver or from calls to thekeybd_event function. If the input comes from a call to keybd_event, the input was "injected".

于是写了类似下面的代码:
void f()
{
    HHOOK hHook = NULL;
    HANDLE hThread = NULL;
  __try
  {
       hHOOK = SetWindowHookExhInstance,WH_KEYBOARD_LL,LowLevelKeyboardProc,0);
      if(NULL == hHook) __leave;
      hThread=(HANDLE) _beginthread(.......);  
      if ((HANDLE)1 == hThread) __leave;
      WaitForSingleObject(hThread);
  }
  __finally
{
      if (NULL != hThread) CloseHandle(hThread);
      if (NULL != hHook) UnhookWindowsHookEx(hHook);
  }
}

结果发现,安装的HOOK不起作用,研究了很久也不明白怎么回事,正在郁闷中,突然看到Win2K3的SDK Documentation里对LowLevelKeyboardProc的描述是:
The LowLevelKeyboardProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function every time a new keyboard input event is about to be posted into a thread input queue. The keyboard input can come from the local keyboard driver or from calls to the keybd_event function. If the input comes from a call to keybd_event, the input was "injected". However, the WH_KEYBOARD_LL hook is not injected into another process. Instead, the context switches back to the process that installed the hook and it is called in its original context. Then the context switches back to the application that generated the event.   

天啊,平白无故的多出来一段,真是万恶的SDK啊~~!
回复此楼
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木叶清风

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangen994(金币+2,VIP+0):辛苦了,加油 9-10 20:35
单独屏蔽一个键都还好,屏蔽ctr+alt+del比较难
www.cvdelver.com
2楼2009-09-10 18:54:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★
wangen994(金币+2,VIP+0):欢迎常来程序软件版 9-10 20:35
Ctr+Alt+Del是Winlogon的热键,WinlogoN是SYSTEM的进程,它不在当前用户的会话中,机制不一样的啦。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
3楼2009-09-10 19:48:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木叶清风

木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by magic7004 at 2009-9-10 19:48:
Ctr+Alt+Del是Winlogon的热键,WinlogoN是SYSTEM的进程,它不在当前用户的会话中,机制不一样的啦。

呵呵,是呀,我大二的时候帮老师做项目为了屏蔽这个组合键弄了好久才屏蔽掉
www.cvdelver.com
4楼2009-09-10 21:36:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

引用回帖:
Originally posted by 木叶清风 at 2009-9-10 21:36:

呵呵,是呀,我大二的时候帮老师做项目为了屏蔽这个组合键弄了好久才屏蔽掉

传说HOOK WINLOGON中的MSGINA.DLL中的某个API就解决问题了。
用CreateRemoteThread注入。
准备明天玩玩看。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
5楼2009-09-11 00:04:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木叶清风

木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
对,这是最容易的。不过我们当时确实找到一份代码直接把这个组合键屏蔽了,没有hook msgina.dll中的api,可惜的是我把那份代码丢了,不然可以一起再研究研究
www.cvdelver.com
6楼2009-09-11 08:24:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

引用回帖:
Originally posted by 木叶清风 at 2009-9-11 08:24:
对,这是最容易的。不过我们当时确实找到一份代码直接把这个组合键屏蔽了,没有hook msgina.dll中的api,可惜的是我把那份代码丢了,不然可以一起再研究研究

哈哈,自己写的代码解决这个问题了。

方法就是注入Winlogon.exe,抓到它的窗口SAS Window,然后拦截这个窗口的WM_HOTKEY消息就OK了。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
7楼2009-09-11 14:18:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 magic7004 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今年审到国自然15份,谈谈感受 +15 国自然国社科中 2026-05-17 15/750 2026-05-18 14:17 by 能丫
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +6 1234567wang 2026-05-17 7/350 2026-05-18 13:12 by 443933501
[硕博家园] 考博自荐 +5 科研狗111 2026-05-13 6/300 2026-05-18 11:22 by 糊糊涂涂好
[硕博家园] 我在等一个没有答案的答案 +3 Love_MH 2026-05-17 3/150 2026-05-18 02:22 by 竹林孤影
[文学芳草园] 半夜喝咖啡 +3 myrtle 2026-05-15 5/250 2026-05-18 01:03 by 小沈2018
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 ky2p12rrjj 2026-05-15 4/200 2026-05-17 19:47 by Equinoxhua
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +6 l7k6xnh0yc 2026-05-14 7/350 2026-05-17 19:42 by Equinoxhua
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 xx7gd5zq4e 2026-05-15 6/300 2026-05-17 19:36 by Equinoxhua
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 5/250 2026-05-17 18:39 by Equinoxhua
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 4/200 2026-05-17 08:11 by 11n4dfd8yn
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 7hlccowb3h 2026-05-15 4/200 2026-05-17 07:46 by 11n4dfd8yn
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 8/400 2026-05-17 07:26 by 11n4dfd8yn
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 4/200 2026-05-17 00:35 by ue3ir18jc3
[考博] 现在不知道怎么办,感觉很痛苦 +5 qweww 2026-05-11 6/300 2026-05-16 19:57 by Equinoxhua
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +9 一切都是空工 2026-05-12 20/1000 2026-05-16 19:52 by Equinoxhua
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 x0mp7owy2b 2026-05-15 4/200 2026-05-16 17:45 by j6b2pdz07o
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[有机交流] 如何实现卤原子转化 +3 BT20230424 2026-05-15 5/250 2026-05-16 16:20 by czyzsu
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 6/300 2026-05-16 11:29 by h3oerqvkv9
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
信息提示
请填处理意见