在内核里查看所有的快捷键

链 接:  http://bbs.pediy.com/showthread.php?t=111585

xuetr0.33版本增加了进程的快捷键的查看,

于是乎查了下资料,找到了实现的方法,不敢独享和大家分享一下~~~

其实Windows的所有的快捷键保存在win32k里面的一个单向连表里面,

链表里面的结构体如下:

代码:
typedef struct _HOT_KEY_ITEM
{
  LIST_ENTRY ListEntry;
  struct _ETHREAD *Thread;
  HWND hWnd;
  int id;
  UINT fsModifiers;
  UINT vk;
} HOT_KEY_ITEM, *PHOT_KEY_ITEM;
从_KTHREAD结构可以得到进程,fsModifiers和vk加起来就是组合键了。

所以关键是怎么找到那个单向链表

可以通过从导出函数查找内存的方法找到这个单向链表

首先是从shadow  ssdt里的NtUserUnregisterHotKey函数开始查找

代码:
win32k!NtUserUnregisterHotKey:

(大段省略...)

912d32f8 e888ffffff      call    win32k!_UnregisterHotKey (912d3285)

(大段省略...)
然后在_UnregisterHotKey 里面找FindHotKey函数

代码:
win32k!_UnregisterHotKey:

(大段省略...)

912d32a0 e8cffaffff      call    win32k!FindHotKey (912d2d74)

(大段省略...)
最后从FindHotKey函数里面找到那个单向链表

这个时候XP和Win7的处理有所不同

代码:
win32k!FindHotKey:

(大段省略...)

XP的时候
bf89e4b4 8b35d4cb9abf    mov     esi,dword ptr [win32k!gphkFirst (bf9acbd4)]

Win7的时候
912d2d84 8b3495009b4891 mov     esi,dword ptr win32k!gphkHashTable (91489b00)[edx*4]

(大段省略...)

gphkFirst /gphkHashTable 就是那个单向链表了,

最后只要循环这个单向链表就可以枚举所有的快捷键了~~~ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 VSCode 中使用 Git 查看内核源码的方法如下: 1. 在 VSCode 中安装并配置 Git 插件。 2. 在 VSCode 中打开一个新的终端。 3. 使用 Git 命令行工具克隆 Linux 内核源码库,例如:git clone https://github.com/torvalds/linux.git 4. 打开克隆下来的项目目录,即可在 VSCode 中查看和编辑内核源码。 ### 回答2: 使用VSCode查看内核源码的步骤如下: 1. 安装VSCode和Git:首先,确保你的计算机上已经安装了最新版本的VSCode和Git。你可以从官方网站下载并安装它们。 2. 克隆内核源码仓库:在VSCode中打开命令面板(快捷键:Ctrl + Shift + P),输入"Git: Clone"并按下回车键。在弹出的输入框中输入内核源码的仓库地址,并选择合适的本地文件夹保存。VSCode会自动通过Git克隆仓库到你的电脑上。 3. 打开内核源码文件夹:在VSCode的侧边栏中,点击文件夹图标,选择你刚刚克隆的内核源码文件夹,然后点击"确定"按钮。VSCode会加载并打开该文件夹中的所有文件。 4. 查看内核源码:现在你可以在VSCode中浏览和查看内核源码了。你可以使用侧边栏的文件浏览器导航到具体的文件,点击打开并查看其内容。你还可以使用搜索功能来查找特定的函数或变量。 5. 使用Git功能:VSCode内置了Git功能,方便你进行版本控制和协作开发。你可以在底部的状态栏找到Git图标,点击它可以打开Git面板。在Git面板中,你可以查看文件的修改状态、提交、推送和拉取代码等操作。 6. 其他功能:除了查看源码,VSCode还提供了许多有用的功能,如代码高亮、代码补全、代码格式化等。你可以根据自己的需要选择和使用这些功能,提升你的开发效率。 总之,使用VSCode可以方便地查看和管理内核源码,而Git功能可以帮助你对代码进行版本控制和协作开发。希望以上步骤对你有所帮助! ### 回答3: 要在VSCode上查看内核源码,首先需要确保已经安装了Git和VSCode。以下是详细的步骤: 1. 在VSCode中打开终端,使用命令行工具(如Git Bash)克隆内核源码的仓库。可以通过以下命令克隆Linux内核的仓库: ``` git clone https://github.com/torvalds/linux.git ``` 2. 等待仓库克隆完成后,在VSCode的文件资源管理器中打开克隆下来的内核源码文件夹。 3. 在VSCode中打开想要查看的源文件。可以使用文件资源管理器导航到相应的文件,然后单击打开。 4. VSCode提供了丰富的代码编辑功能,可以轻松地查看和编辑源代码。包括代码高亮、代码折叠、智能提示等。 5. 若要进一步了解源代码文件的结构和函数调用关系,可以使用VSCode的代码导航功能。可以使用侧边栏的“文件大纲”查看文件的结构,并单击相应的函数名进行跳转。 6. VSCode还提供了Git集成,可以直接在VSCode中进行代码版本控制操作。可以使用源代码文件右上角的Git小图标来查看更改、提交更改、拉取和推送代码等操作。 通过以上步骤,可以在VSCode上方便地查看和编辑内核源码,并借助Git来管理代码的版本控制。注意,由于内核源码较大,查看整个内核源码可能会占用较多的系统资源,建议在较为高性能的计算机上进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值