Win7 修改Winlogonexe进程代码禁止Ctrl+Alt+Del、Win+L等任意系统热键演示程序.doc

Win7 修改Winlogonexe进程代码禁止Ctrl+Alt+Del、Win+L等任意系统热键演示程序.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Win7修改Winlogonexe进程代码禁止CtrlAltDel、WinL等任意系统热键演示程序

本教程由深圳天荷伞业()的整理 专业雨伞厂 有您的支持我们会更专注。 由于想做个屏幕锁程序,因此想研究了下Win7的Ctrl+Alt+Del,我对win7的安全机制一点都不懂,希望有不对的地方来大家多多指点 首先说下xp下的快捷键,xp下的快捷键是通过CreateWindowEx函数创建标题为SAS Window的窗口。 而Ctrl+Alt+Del、Ctrl+Shift+Esc快捷键以热键的方式注册到SAS Window上,因此注入到Winlogon.exe进程调用UnregisterHotKey就可以取消快捷键,但取消后无法恢复 那win7下的是怎样的呢?起码在Winlogon.exe的输入表没看到CreateWindowEx,另外我通过注入Winlogon.exe进程, 枚举窗口,一个窗口都枚举不了,这说明在安全桌面一个窗口都没有,那Winlogon.exe到底是怎样响应Ctrl+Alt+Del的呢? 想法一 我以前有一个想法,就是Hook SwitchDesktop来禁止Winlogon.exe切换到安全桌面,这样Ctrl+Alt+Del就自然失效 了,但这样还是有一些问题,看下面的这段Winlogon.exe切换桌面的代码,发现如果SwitchDesktop调用失败后并不会立马返回,而是重 复调用SwitchDesktop,直到SwitchDesktop调用成功 代码: DWORD __stdcall sub_100212B(HDESK hDesktop, int a2, int a3) { unsigned int v3; // ebx@1 DWORD i; // edi@1 DWORD v5; // esi@2 int v6; // eax@3 v3 = 0; for ( i = 0; ; Sleep(i) ) { v5 = 0; v6 = a3 ? SwitchDesktopWithFade(hDesktop, a3) : SwitchDesktop(hDesktop); if ( v6 ) break; v5 = GetLastError(); if ( off_103C144 != off_103C144 ) { if ( *((_BYTE *)off_103C144 + 28) 4 ) { if ( *((_BYTE *)off_103C144 + 25) = 2u ) sub_1002A84(*((_DWORD *)off_103C144 + 4), *((_DWORD *)off_103C144 + 5), 11, dword_1010308, v5, a3); } } if ( v3 = 0xA ) { if ( !a2 ) return v5; } else { ++v3; i += 100; } } return v5; } 想法二 另外一个想法是直接挂起Winlogon.exe进程,由于Winlogon.exe只负责登录和注销等工作,因此挂起它也没什么,但还是上面的问题,如 果在挂起Winlogon.exe进程期间,按下了Ctrl+Alt+Del,等我们恢复掉挂起的Winlogon.exe进 程,Ctrl+Alt+Del还是会得到响应 想法三 难道禁止Ctrl+Alt+Del真的不可能吗?这是我对Ctrl+Alt+Del的一点分析流程,希望能对大家有帮助 众所周知Ctrl+Shift+Esc是打开任务管理器的快捷键,因此我打算从任务管理器入手,由于我虚拟机装不了win7 32位,只能拿我的真实机win7 64位来做实验,相信win7 32和64区别应该不大 用IDA打开winlogon.exe后,我们打开字符串窗口,点击SoftwareSASGeneration往上查看, 俨然看到几个字符串osk.exe -s,DisableChangePassword,DisableSwitchUserOption,DisableTaskMgr,taskmgr.exe /%lu 。 双击对taskmgr.exe /%lu 的引用,来到下面这段代码,很明显这是打开任务管理器,我最在意的是谁调用的这段代码,可惜IDA没显示谁 调用了函数,但是有数据引用。后来通过WinDbg才知道这个函数名字叫WLGeneric_TaskManager_Enter 代码: int __stdcall sub_102916D(int

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档