news 2026/5/1 4:58:11

mouclass!MouseClassReadCopyData函数分析之通过全局变量mouclass!Globals打开调试mouclass!MouDebugPrint后--重要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mouclass!MouseClassReadCopyData函数分析之通过全局变量mouclass!Globals打开调试mouclass!MouDebugPrint后--重要

mouclass!MouseClassReadCopyData函数分析之通过全局变量mouclass!Globals打开调试mouclass!MouDebugPrint后

#if DBG
VOID
MouDebugPrint(
    ULONG DebugPrintLevel,
    PCCHAR DebugMessage,
    ...
    )
{
    va_list ap;

    va_start(ap, DebugMessage);

    if (DebugPrintLevel <= Globals.Debug) {

        char buffer[256];

        (VOID) vsprintf(buffer, DebugMessage, ap);

        DbgPrint(buffer);
    }

    va_end(ap);

}
#endif

第一部分:
0: kd> p
mouclass!MouseClassReadCopyData+0x20:
f74f9d46 c1e703          shl     edi,3
0: kd> p
mouclass!MouseClassReadCopyData+0x23:
f74f9d49 57              push    edi
0: kd> p
mouclass!MouseClassReadCopyData+0x24:
f74f9d4a 68cc9a4ff7      push    offset mouclass!MouseClassClose+0x26c (f74f9acc)
0: kd> p
mouclass!MouseClassReadCopyData+0x29:
f74f9d4f 6a03            push    3
0: kd> p
mouclass!MouseClassReadCopyData+0x2b:
f74f9d51 8945fc          mov     dword ptr [ebp-4],eax
0: kd> p
mouclass!MouseClassReadCopyData+0x2e:
f74f9d54 e8f3e4ffff      call    mouclass!MouDebugPrint (f74f824c)
0: kd> t
mouclass!MouDebugPrint:
f74f824c 55              push    ebp
0: kd> x mouclass!Globals
f74fd040          mouclass!Globals = struct _GLOBALS
0: kd> dx -r1 (*((mouclass!_GLOBALS *)0xf74fd040))
(*((mouclass!_GLOBALS *)0xf74fd040))                 [Type: _GLOBALS]
    [+0x000]Debug            : 0x0[Type: unsigned long]
    [+0x004] GrandMaster      : 0x0 [Type: _DEVICE_EXTENSION *]
    [+0x008] AssocClassList   : 0x0 [Type: _PORT *]
    [+0x00c] NumAssocClass    : 0x0 [Type: unsigned long]
    [+0x010] Opens            : 0 [Type: long]
    [+0x014] NumberLegacyPorts : 0x0 [Type: unsigned long]
    [+0x018] Mutex            [Type: _FAST_MUTEX]
    [+0x038] ConnectOneClassToOnePort : 0x1 [Type: unsigned long]
    [+0x03c] PortsServiced    : 0x3 [Type: unsigned long]
    [+0x040] InitExtension    [Type: _DEVICE_EXTENSION]
    [+0x150] RegistryPath     : "\REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\Mouclass" [Type: _UNICODE_STRING]
    [+0x158] BaseClassName    : "PointerClass" [Type: _UNICODE_STRING]
    [+0x160] BaseClassBuffer  [Type: unsigned short [256]]
    [+0x360] LegacyDeviceList [Typ

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:55:32

39、网络路由与终端服务配置指南

网络路由与终端服务配置指南 1. RIP 接口配置 RIP(路由信息协议)接口需要进行多项设置,包括外出数据包使用的协议类型以及路由器是否接受来自所有邻居(附近的其他路由器)的路由。以下是配置 RIP 接口的具体步骤: 1. 右键单击管理单元树中 IP 节点下的 RIP 节点,选择“…

作者头像 李华
网站建设 2026/5/1 4:57:54

37、深入了解VPN端口、客户端配置及RADIUS认证

深入了解VPN端口、客户端配置及RADIUS认证 1. 理解虚拟专用网络端口 在为VPN配置路由和远程访问服务(RRAS)时,会创建供远程客户端连接到VPN服务器的端口,或者供VPN服务器通过出站连接连接到其他服务器的端口。端口是提供单点到点连接的通道,会创建三种类型的端口:WAN M…

作者头像 李华
网站建设 2026/4/23 13:15:28

Open-AutoGLM APIKey购买值不值?:3个关键成本对比告诉你答案

第一章&#xff1a;Open-AutoGLM APIKey购买值不值&#xff1f;核心问题解析在当前大模型应用快速发展的背景下&#xff0c;Open-AutoGLM作为一款支持自动化任务调度与自然语言理解的API服务&#xff0c;吸引了大量开发者关注。然而&#xff0c;是否值得为其APIKey付费&#xf…

作者头像 李华
网站建设 2026/4/30 19:09:59

终极指南:用TEdit快速打造专业级泰拉瑞亚地图

终极指南&#xff1a;用TEdit快速打造专业级泰拉瑞亚地图 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you change wor…

作者头像 李华
网站建设 2026/4/27 15:17:54

iOS隧道连接全攻略:pymobiledevice3实战调优与性能提升

iOS隧道连接全攻略&#xff1a;pymobiledevice3实战调优与性能提升 【免费下载链接】pymobiledevice3 Pure python3 implementation for working with iDevices (iPhone, etc...). 项目地址: https://gitcode.com/gh_mirrors/py/pymobiledevice3 你是否正在为这些问题困…

作者头像 李华
网站建设 2026/4/24 18:46:58

TEKLauncher:ARK生存进化玩家的专业启动器解决方案

TEKLauncher&#xff1a;ARK生存进化玩家的专业启动器解决方案 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher ARK生存进化作为一款深受玩家喜爱的沙盒生存游戏&#xff0c;其丰富的MOD生态…

作者头像 李华