« 分析学习木马鬼影编写不影响继续执行的栈溢出shellcode,拒绝不返回,拒绝崩溃 »

驱动枚举所有快捷键

在win32k中存在一个单向链表,这个链表中保存着当前子系统下的所有快捷键,保存这个单向链表的头的全局变量为_gphkFirst,这个全局变量在_RegisterHotKey、IsHotKey等函数中有使用。

下面是我在xp下逆向分析出的这个链表的结构:

typedef struct _HOTKEY
{
    PVOID Win32Thread;
    ULONG gptiCurrent;
    UINT fsModifiers;
    UINT vk;
    int hkId;
    struct _HOTKEY *pNext
}HOTKEY,HOTKEY

其中Win32Thread对应_KTHREAD结构中的Win32Thread,可以用导出函数PsGetThreadWin32Thread得到;

gptiCurrent是win32k中表示当前线程状态的一个变量,不大清楚。

gptiCurrent是表示这个快捷键是CTRL、SHIFT还是其它

vk表示组合的另一个键,这个以及其它几个可以查MSDN的RegisterHotKey函数。

 

  • quote 1.scu
  • 楼主那个
    gptiCurrent是win32k中表示当前线程状态的一个变量,不大清楚。

    gptiCurrent是表示这个快捷键是CTRL、SHIFT还是其它

    这个玩意究竟是什么啊
  • 2011-1-20 23:37:46 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 2.0 bate Build Theme by toboku

Copyright langouster. Some Rights Reserved.   苏ICP备06046736号