zoukankan      html  css  js  c++  java
  • 系统热键分析 TWO 取热键对应的进程名

    又是系统热键分析,静静的夜里分析起来,比打麻将时间过得快...
    
    typedef struct tagHOTKEY {
        W32THREAD pti;    <-- W32THREAD
        PWND    spwnd;
        WORD    fsModifiers; // MOD_SHIFT, MOD_ALT, MOD_CONTROL, MOD_WIN
        WORD    wFlags;      // MOD_SAS
        UINT    vk;
        int     id;
        struct tagHOTKEY *phkNext;
    } HOTKEY, *PHOTKEY;
    
    lkd> x /t /v /q /d win32k!gphkFirst
    pub global bf9b0bd8             0  @!"win32k!gphkFirst" = 
    
    lkd> dd /c 6 dwo(win32k!gphkFirst) L6
    e10687d8  e29749b0 bbe68840 00000006 000000c0 0000c01a e2e8c8f8
    lkd> dd /c 6 e2e8c8f8 L6
    e2e8c8f8  e29749b0 bbe68840 00000003 0000004a 0000000c e2f4cab8
    lkd> dd /c 6 e2f4cab8 L6
    e2f4cab8  e29749b0 bbe68840 00000003 000000bd 0000000b e28d4d20
    lkd> dd /c 6 e28d4d20 L6
    e28d4d20  e29749b0 bbe68840 00000003 0000004e 0000000a e2f30e98
    
    lkd> dt -v win32k!_W32THREAD
    struct _W32THREAD, 10 elements, 0x28 bytes
       +0x000 pEThread         : Ptr32 to struct _ETHREAD, 0 elements, 0x0 bytes
    
    lkd> dt -v nt!_ETHREAD
    struct _ETHREAD, 55 elements, 0x260 bytes
       +0x000 Tcb              : struct _KTHREAD, 74 elements, 0x1c0 bytes
       ...
       +0x220 ThreadsProcess   : Ptr32 to struct _EPROCESS, 107 elements, 0x260 bytes
              ^^^^^^^^^^^^^^^^^
       +0x224 StartAddress     : Ptr32 to Void
       ...
    
    lkd> dt -v nt!_EPROCESS
    struct _EPROCESS, 107 elements, 0x260 bytes
       +0x000 Pcb              : struct _KPROCESS, 29 elements, 0x6c bytes
       ...
       +0x174 ImageFileName    : [16] UChar
              ^^^^^^^^^^^^^^^^
       +0x184 JobLinks         : struct _LIST_ENTRY, 2 elements, 0x8 bytes
       ...
    
    lkd> dd win32k!gphkFirst L1   <--- 指向 gphkFirst
    bf9b0bd8  e10687d8            
    
    lkd> dd e10687d8 L1           <--- 指向 W32THREAD
    e10687d8  e29749b0            
    
    lkd> dd e29749b0 L1           <--- 指向 _ETHREAD
    e29749b0  85d64990            
    
    lkd> dd 85d64990+0x220 L1     <--- 指向 _EPROCESS
    85d64bb0  86e1db30            
    
    lkd> da 86e1db30+174          <--- 指向 _EPROCESS 的 _EPROCESS->ImageFileName
    86e1dca4  "explorer.exe"
    为了取进程名既然跳了5次...
    
  • 相关阅读:
    Confluence 6 使用 LDAP 授权连接一个内部目录概述
    Confluence 6 导入 Active Directory 服务器证书
    Confluence 6 导入 Active Directory 服务器证书
    Confluence 6 导入 Active Directory 服务器证书
    Confluence 6 获得 Active Directory 服务器证书
    Confluence 6 安装 Active Directory 证书服务器
    Confluence 6 为 Active Directory 配置一个 SSL 连接预要求
    Confluence 6 为 Active Directory 配置一个 SSL 连接
    内容社交产品中的关键数据——获得良好反馈的用户比例
    基于Redis+Kafka的首页曝光过滤方案
  • 原文地址:https://www.cnblogs.com/nlsoft/p/2999937.html
Copyright © 2011-2022 走看看