当前位置: 首页 > news >正文

win32k源代码分析之win32k!IsSAS函数中的全局变量win32k!gfsSASModifiers = 3是什么时候被赋值的

win32k源代码分析之win32k!IsSAS函数中的全局变量win32k!gfsSASModifiers = 3是什么时候被赋值的

BOOL IsSAS(
BYTE vk,
UINT *pfsModifiers)
{
CheckCritIn();

    if (gvkSAS != vk) {
return FALSE;
}

    if (gfsSASModifiersDown == gfsSASModifiers) {
*pfsModifiers = gfsSASModifiersDown;
return TRUE;
}

    return FALSE;
}

1: kd> x win32k!gfsSASModifiers
bfa70f00          win32k!gfsSASModifiers = 3

D:\srv03rtm\windows\core/ntuser/kernel/hotkeys.c:286:        gfsSASModifiers = fsModifiers;

第A部分:

#define MOD_SAS         0x8000

BOOL _RegisterHotKey(
PWND pwnd,
int id,
UINT fsModifiers,
UINT vk)
{
PHOTKEY phk;
BOOL fKeysExist, bSAS;
PTHREADINFO ptiCurrent;
WORD wFlags;

    wFlags = fsModifiers & MOD_SAS;
fsModifiers &= ~MOD_SAS;

第B部分:

    /*
* If this is the SAS check that winlogon is the one registering it.
*/
if ((wFlags & MOD_SAS) != 0 && PsGetCurrentProcessId() == gpidLogon) {
bSAS = TRUE;
} else {
bSAS = FALSE;
}


第C部分:

    if (bSAS) {
/*
* Store the SAS on the terminal.
*/
gvkSAS = vk;
gfsSASModifiers = fsModifiers;
}


1: kd> x win32k!gvkSAS
bfa70ef8          win32k!gvkSAS = 0x2e

第D部分:确实加上了MOD_SAS位0x8000

BOOL SASCreate(
HWND hwnd)
{
// Register the SAS unless we are told not to.


if (GetProfileInt( APPNAME_WINLOGON, VARNAME_AUTOLOGON, 0 ) != 2) {
if (!RegisterHotKey(hwnd, 0, MOD_SAS | MOD_CONTROL | MOD_ALT, VK_DELETE)) {
DebugLog((DEB_ERROR, "failed to register SAS"));
return(FALSE);   // Fail creation
}
}

http://www.dtcms.com/a/600699.html

相关文章:

  • 序列和可迭代
  • 16.udp_socket(二)
  • 如何在不使用iTunes的情况下在电脑上访问iPhone文件
  • python+websockets,报错RuntimeError: no running event loop
  • 自己做网站流程龙口市最新公告
  • 自助建站系统介绍wordpress 百度推广
  • 基于Springboot的汽车推荐系统设计与实现7f7h74np(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
  • DBLoss: Decomposition-based Loss Function for Time Series Forecasting 论文阅读
  • STM32F103学习笔记-16-RCC(第4节)-使用 HSI 配置系统时钟并用 MCO 监控系统时钟
  • Git 中新建学习分支 + 暂存修改 + VSCode 可视化查看改动(超详细教程)
  • Linux高效编程与实战:自动化构建工具“make/Makefile”和第一个系统程序——进度条
  • Docker 相关使用收录
  • 【详细步骤解析】爬虫小练习——爬取豆瓣Top250电影,最后以csv文件保存,附源码
  • Docker-存储
  • wap手机网站模板上饶网站建设3ao cc专业a
  • 【Nginx】Nginx 多协议负载均衡实战:StarRocks 与 MinIO 代理配置全解析
  • 域名注册和网站设计服务如何做贴吧类网站多钱
  • python+uniapp基于微信小程序的垃圾分类信息系统
  • C语言编译器安卓版 | 强大功能助力编程学习与实践
  • STM32使用金属探测传感器自制金属探测仪
  • vmware嵌套安装esxi7.0.3扩容vmfs
  • 使用 BR 备份 TiDB 到 AWS S3 存储
  • 【OpenCV + VS】OpenCV 绘图:绘制矩形、圆形、椭圆形、线条等
  • 易语言反编译工具 - 高效破解易语言程序的利器
  • 11年始终专注营销型网站提供网站建设小程序制作
  • AOSP Android13 Launcher3——TransformParams 类
  • 网站推广问题推广公司网站有哪些方式
  • 成都网站建设公司电话美食网站建设多少钱
  • 【把Linux“聊”明白】进程的概念与状态
  • GIT版本管理工具轻松入门 | TortoiseGit,本地 Git 仓库和 Git 概念,笔记02