转载自互联网:仅修改了软件打开自动屏蔽和隐藏窗体。

保存成相应文件,可以用VB6直接编译出exe,win7下依赖于winlogon的快捷键会被屏蔽;
       若要恢复,可选开启图形界面后,点击释放按钮。

KeyboardLockFormModule.bas文件

Attribute VB_Name = "KeyboardLockFormModule"
Option ExplicitPrivate Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const SYNCHRONIZE = &H100000
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Public Const PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Public Declare Function NtSuspendProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
Public Declare Function NtResumeProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
Declare Function OpenThread Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwThreadId As Long) As Long
Declare Function NtTerminateProcess Lib "ntdll" (ByVal hProc As Long, ByVal ExitCode As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, ByRef lpLuid As LARGE_INTEGER) As Long
Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As Long, ByRef ReturnLength As Long) As Long
Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long
Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, ByRef TokenHandle As Long) As Long
Declare Function GetLastError Lib "kernel32.dll" () As Long
Type LARGE_INTEGERLowPart As LongHighPart As Long
End TypePublic Const ANYSIZE_ARRAY As Long = 1
Public Const SE_PRIVILEGE_ENABLED As Long = &H2
Public Const TOKEN_ADJUST_PRIVILEGES As Long = &H20
Public Const TOKEN_QUERY As Long = &H8Type LUID_AND_ATTRIBUTESLUID As LARGE_INTEGERAttributes As Long
End Type
Type TOKEN_PRIVILEGESPrivilegeCount As LongPrivileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
'获得系统快照中的第一个进程的信息
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
'获得系统快照中的下一个进程的信息
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Type PROCESSENTRY32dwSize As Long                 '结构大小cntUsage As Long               '此进程的引用计数th32ProcessID As Long          '进程IDth32DefaultHeapID As Long      '进程默认堆IDth32ModuleID As Long           '进程模块IDcntThreads As Long             '此进程开启的线程计数th32ParentProcessID As Long    '父进程IDpcPriClassBase As Long         '线程优先权dwFlags As Long                '保留szExeFile As String * 260      '进程全名
End TypePrivate Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPmodule = &H8Private Function GetWinlogonPID() As LongGetWinlogonPID = 0Dim lngResult As LongDim hSnapShot As LongDim hMSnapshot As LongDim strTreTxt As StringDim lngRet As LongDim lngProcCount As LongDim strExe As StringDim PEE As PROCESSENTRY32hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)PEE.dwSize = Len(PEE)lngResult = ProcessFirst(hSnapShot, PEE)'建立进程快照,循环查找进程Do While lngResult <> 0strExe = Left(PEE.szExeFile, InStr(PEE.szExeFile, Chr(0)) - 1)If LCase(strExe) = "winlogon.exe" Then '找到winlogon则返回GetWinlogonPID = PEE.th32ProcessIDCloseHandle hSnapShotExit FunctionEnd IflngResult = ProcessNext(hSnapShot, PEE)LoopCloseHandle hSnapShot
End FunctionFunction EnableDebugPrivilege() As Boolean
Dim TP As TOKEN_PRIVILEGES
Dim hToken As Long, r As Long, e As Long
'提升进程权限
r = OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken)
e = GetLastError
If r And Not e Thenr = LookupPrivilegeValue(vbNullString, "SeDebugPrivilege", TP.Privileges(0).LUID)e = GetLastErrorIf r And Not e ThenTP.PrivilegeCount = 1TP.Privileges(0).Attributes = SE_PRIVILEGE_ENABLEDr = AdjustTokenPrivileges(hToken, False, TP, LenB(TP), 0, 0)EnableDebugPrivilege = GetLastError = 0ElseEnableDebugPrivilege = FalseEnd IfElseEnableDebugPrivilege = False
End If
Call CloseHandle(hToken)
End FunctionPublic Function SusWin() As Boolean '挂起winlogon进程
'注:若多次调用本函数,也需调用同样多的ResWin才能恢复进程!!
Dim hP As Long
hP = OpenProcess(PROCESS_ALL_ACCESS, 0, GetWinlogonPID)
If hP = 0 Then
SusWin = False
Exit Function
End If
SusWin = (NtSuspendProcess(hP) >= 0)
CloseHandle hP
End FunctionPublic Function ResWin() As Boolean '恢复winlogon进程
Dim hP As Long
hP = OpenProcess(PROCESS_ALL_ACCESS, 0, GetWinlogonPID)
If hP = 0 Then
ResWin = False
Exit Function
End If
ResWin = (NtResumeProcess(hP) >= 0)
CloseHandle hP
End Function

keyboardlock文件

Type=Exe
Form=KeyboardLockForm.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Module=KeyboardLockFormModule; KeyboardLockFormModule.bas
IconForm="KeyboardLockForm"
Startup="KeyboardLockForm"
ExeName32="KeyboardLock.exe"
Command32=""
Name="KeyboardLock"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="1.0"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=-1
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1[MS Transaction Server]
AutoRefresh=1

KeyboardLockForm文件

VERSION 5.00
Begin VB.Form KeyboardLockForm BorderStyle     =   1  'Fixed SingleCaption         =   "只能在WinVista或Win7中使用!!"ClientHeight    =   2775ClientLeft      =   45ClientTop       =   330ClientWidth     =   4875LinkTopic       =   "KeyboardLockForm"MaxButton       =   0   'FalseMinButton       =   0   'FalseScaleHeight     =   2775ScaleWidth      =   4875StartUpPosition =   3  '窗口缺省'下面这句默认隐藏窗体,若要显示,删除这一句Visible         =   0   'FalseBegin VB.CommandButton Command2 Caption         =   "恢复Winlogon"Height          =   735Left            =   600TabIndex        =   1Top             =   1440Width           =   3495EndBegin VB.CommandButton Command1 Caption         =   "挂起Winlogon"Height          =   735Left            =   600TabIndex        =   0Top             =   480Width           =   3495End
End
Attribute VB_Name = "KeyboardLockForm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
If SusWin() = False Then MsgBox "挂起失败!"
End SubPrivate Sub Command2_Click()
If ResWin() = False Then MsgBox "恢复失败!"
End SubPrivate Sub Form_Load()
'打开程序直接禁用
Call Command1_Click
If EnableDebugPrivilege = False Then
'打开Winlogon进程需获得SeDebug权限
'否则OpenProcess会失败
MsgBox "提权失败!", vbCritical
Unload Me
End If
End Sub

1、网上找的win7 hook winlogon实现禁用CTRL+ALT+DEL相关推荐

  1. ctrl导致开机弹出计算机,Win7系统开机黑屏提示Press Ctrl+Alt+Del to restart如何解决...

    在使用win7系统的时候,难免会遇到各种各样的问题,比如最近有雨林木风win7旗舰版系统用户反映说开机黑屏,并提示Press Ctrl+Alt+Delto restart,该怎么解决这样的问题呢,现在 ...

  2. 【超级鼠标键盘锁】之远线程注入winlogon.exe进程屏蔽Ctrl+Alt+Del、Win+L

    通过上一节对winlogon.exe进程的调试,得到了其处理Ctrl+Alt+Del和Win+L按键的关键代码位置偏移,并阐述了如何对指令进行修改,从而达到屏蔽这两个按键. 本节采用远线程注入技术进行 ...

  3. 如何更改win7任务管理器的背景。ctrl+alt+delete调出来的界面的背景

    1.首先,先打开电脑的注册表,点击左下角图标,在输入栏输入regedit,按enter键进入 2.然后在左侧目录树中,按路径HKEY_LOCAL_MACHINE---SOFTWARE---Micros ...

  4. win7系统任务管理器被禁用怎么解决

    最近有位win7系统用户在使用电脑的过程当中,发现任务管理打不开了,系统提示"任务管理器被禁用",用户不知道怎么解决这个问题,为此非常苦恼,那么win7系统任务管理器被禁用怎么解决 ...

  5. 从网上找的 visual studio 的各个版本下载地址,vs2010/vs2012/vs2013带注册码

    从网上找的 visual studio 的各个版本下载地址,很全,从 6.0 一直 到 vs2013,要的拿去吧... Microsoft Visual Studio 6.0 下载: 英文版360云盘 ...

  6. 网上找工作秘籍(3)

    Do your New Year's resolutions include finding a new job? The Internet is a great resource for job s ...

  7. sql分割函数|在网上找的看着挺好,谁的忘了

    sql分割函数|在网上找的看着挺好,谁的忘了 create   function   dbo.Split (     @SourceSql   varchar(8000),     @StrSepra ...

  8. 现在很多人都在网上找富业

    现在很多人都在网上找富业,但是却忽略了就在身边的挣

  9. python3程序设计基础答案刘德山_!求大学python3程序设计基础答案 刘德山主编 网上找不到 希望大家帮帮忙...

    <vb程序设计案例教程>课后习题答案 Private Sub Command1_Click() For i = 1 To 10 For j = 1 To 10 If i * j >= ...

最新文章

  1. git - 简明指南
  2. Redis 从入门到起飞(下)
  3. 实现一个简易的RPC
  4. SpringBoot:解决日期转换问题和日期展示问题
  5. 完善三个数字对象排序程序。MOOC,Java第四章 面向对象和类 第一次作业
  6. reids mysql 面试_月薪3k的后端面试点-Mysql和Redis
  7. (80)FPGA建立时间与保持时间及时序模型-面试必问(四)(第16天)
  8. python大数据和java大数据的区别-做大数据工程师,语言选Java还是Python?
  9. 检测mysql表更新吗,知网查重系统的数据库是多久更新一次?
  10. mysql安装步骤图解5.0_MySQL5.0安装图解
  11. 运维团队(OPS)与技术团队有效沟通配合探讨
  12. unable to close due to unfinalized statements or unfinished backups
  13. 【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
  14. 最新朋友圈转发截图生成装逼工具源码+实测可用
  15. md文件的正确打开方式
  16. 计算机应用技术与物联网专业介绍,《物联网应用技术》专业简介
  17. (arduino基于W5100实现TCP客户端
  18. Echarts的折线图堆叠示例,去掉线上小圆圈;多条折现可重叠。
  19. NLP实践|CCKS2020金融知识图谱自动化构建技术方法总结
  20. 在vue中二级页面返回一级页面

热门文章

  1. 如何做会议直播,要是卡顿了该怎样解决
  2. 佳铁精雕机连接电脑设置_佳铁和精雕哪个好
  3. HCIA随堂笔记第五章交换技术
  4. 14. Perl 正则表达式-正则匹配
  5. 圣诞 贺卡音乐礼盒杰理AD142A4
  6. 网站mysql防止sql注入攻击 3种方法总结
  7. 洛谷P4170 [CQOI2007]涂色题解
  8. ananconda求解x=tanx并绘图
  9. Android-vold源码分析之格式化SD卡(10)
  10. 输出2000到2050内的闰年并输出从m到n年内的闰年