屏幕锁定系统的设计与实现
时间:07-28
来源:现代电子技术
点击:
0 引 言
随着计算机技术和网络通信技术的不断发展,计算机的应用领域也在不断扩大。目前,计算机早已成功进入了学校、公司、政府部门乃至许多家庭,它在人们的工作生活中扮演着越来越重要的角色。面对一个拥有一定规模计算机的应用场所,计算机的集中统一管理以及高效安全使用问题便成了日常管理与维护过程中的当务之急。因此人们对于能够实现实时监督、实时记录用户违规行为的监控性工具软件的需求也越来越迫切。为了对人们使用计算机的行为进行控制,防止他们做一些与工作学习无关或有损计算机安全的事情,实现实时监督及事后日志记录分析,很有必要开发这样一种监控性软件,即"屏幕锁定系统"。该软件可监控、记录、控制局域网内其他计算机的使用行为,能够有效地提高管理员对局域网的监控管理能力,实现计算机的高效合理使用。
1 功能描述
屏幕锁定系统是一种可以控制局域网主机行为的监控性管理软件。其功能描述如下:当客户端触发了管理员所指定的"禁止进程"后,客户端的计算机将会被锁定,只有等待管理员解锁后方能使用计算机。即使客户端关机后重启,若继续尝试一些特殊的应用程序,则机器仍然会被锁定。一旦机器被锁定,这台计算机就会向管理控制台发送这台机器的IP地址、主机名、触发进程的时间、触发的禁止进程名等相关信息,达到管理员事后跟踪一些违规操作的目的。管理员也可设置"关闭锁定"功能,这样客户端就可随意支配计算机。为了实现其监控并锁定的任务,系统还应能抵御恶意用户的攻击,如删除客户端软件等。
2 系统设计与实现
根据系统的功能描述,程序分为两大部分:服务器端程序和客户端程序。服务器端程序的功能包括设置解锁密码,设置禁止进程,获得监控信息,设置关闭锁定,制作任务栏图标等。客户端程序的功能包括接收解锁密码及禁止进程,进程查找匹配,锁定屏幕,防止恶意删除等。屏幕锁定系统的功能结构,如图1所示。
2.1 服务器端实现
服务器端软件主要负责对客户端进行控制、管理及查看监控信息等。服务器端的主界面如图2所示。
2.2 客户端实现
当客户端触发了服务器端指定的禁止进程后,其屏幕就会被锁定。锁定后的界面如图3所示。一旦机器被锁定,客户端就会向服务器端传递诸如"主机名、IP地址、触发时间、触发的禁止进程"等信息,并且只有请求管理员解锁,方能继续使用计算机。
3 关键技术
3.1 WinSoek通信
客户端与服务器端的正常通信,是屏幕锁定系统赖以存在的基础。该系统借助于WinSock实现。VB中提供了WinSock控件。WinSoek控件解决了以往应用VB编程时应用程序之间无法实现点对点通信的难题。WinSock使用的TCP协议和UDP协议,允许建立并保持到远程计算机上的连接,且可以在连接结束之前实时进行数据交换。用户仅通过设置属性并借助事件处理就能够轻而易举地连接到一个远程计算机上,而且只用两个命令就可以实现数据交换。
在传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把RemoteHost属性设定为机器所在网段的广播地址,并设定与客户机 LocalPott属性相同的端口地址,借助SendData方法开始发送消息。客户机则在GetData事件中通过DataArrival事件分离出发送的信息。
3.2 进程控制机制
进程控制机制实现客户端的进程查找及匹配的过程。进程控制是指查找当前系统正在运行的所有进程,并比较其与禁止进程列表,若匹配成功则杀掉正在运行的禁止进程。实现过程为:调用系统API函数Create-Toolhelp32Snapshot查找客户机正在运行的进程,并使用时钟实时刷新,将其记录到下拉框list1中;从禁止进程文件中读取进程并记录到下拉框list2中;使用两个for循环比较list1和list2中进程是否相同,如果相同,就杀掉正在运行的禁止进程,并调用屏幕锁定窗体。实现流程如图4所示。
3.3 屏幕锁定机制
屏幕锁定机制实现客户端触发了禁止进程后的屏幕锁定功能。屏幕锁定的过程包含以下任务:屏蔽系统热键,使锁定窗体处于最上方,锁定时隐藏任务条,解锁后显示任务条等过程。屏幕锁定机制的主要理论依据是挂钩API技术(HookAPI)。钩子 (Hook)是Windows消息处理机制中的一个监视点,应用程序可以在这里安装一个子程序(钩子函数),以监视指定窗口某种类型的消息,所监视的窗口可以是其他进程创建的。当消息到达后,在目标窗口处理函数处理之前,钩子机制允许应用程序截获它进行处理。而HookAPI就是指截获特定的进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。钩子的安装与卸载是通过SetWindow-sHookEx函数,以动态链接库的方式安装到系统中的。
屏幕锁定的实现过程为:调用API函数SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽热键;调用函数 SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并为其赋予不同的实参,就可实现窗体处于最上方、隐藏或显示任务条的功能。实现流程如图5所示。
随着计算机技术和网络通信技术的不断发展,计算机的应用领域也在不断扩大。目前,计算机早已成功进入了学校、公司、政府部门乃至许多家庭,它在人们的工作生活中扮演着越来越重要的角色。面对一个拥有一定规模计算机的应用场所,计算机的集中统一管理以及高效安全使用问题便成了日常管理与维护过程中的当务之急。因此人们对于能够实现实时监督、实时记录用户违规行为的监控性工具软件的需求也越来越迫切。为了对人们使用计算机的行为进行控制,防止他们做一些与工作学习无关或有损计算机安全的事情,实现实时监督及事后日志记录分析,很有必要开发这样一种监控性软件,即"屏幕锁定系统"。该软件可监控、记录、控制局域网内其他计算机的使用行为,能够有效地提高管理员对局域网的监控管理能力,实现计算机的高效合理使用。
1 功能描述
屏幕锁定系统是一种可以控制局域网主机行为的监控性管理软件。其功能描述如下:当客户端触发了管理员所指定的"禁止进程"后,客户端的计算机将会被锁定,只有等待管理员解锁后方能使用计算机。即使客户端关机后重启,若继续尝试一些特殊的应用程序,则机器仍然会被锁定。一旦机器被锁定,这台计算机就会向管理控制台发送这台机器的IP地址、主机名、触发进程的时间、触发的禁止进程名等相关信息,达到管理员事后跟踪一些违规操作的目的。管理员也可设置"关闭锁定"功能,这样客户端就可随意支配计算机。为了实现其监控并锁定的任务,系统还应能抵御恶意用户的攻击,如删除客户端软件等。
2 系统设计与实现
根据系统的功能描述,程序分为两大部分:服务器端程序和客户端程序。服务器端程序的功能包括设置解锁密码,设置禁止进程,获得监控信息,设置关闭锁定,制作任务栏图标等。客户端程序的功能包括接收解锁密码及禁止进程,进程查找匹配,锁定屏幕,防止恶意删除等。屏幕锁定系统的功能结构,如图1所示。
2.1 服务器端实现
服务器端软件主要负责对客户端进行控制、管理及查看监控信息等。服务器端的主界面如图2所示。
2.2 客户端实现
当客户端触发了服务器端指定的禁止进程后,其屏幕就会被锁定。锁定后的界面如图3所示。一旦机器被锁定,客户端就会向服务器端传递诸如"主机名、IP地址、触发时间、触发的禁止进程"等信息,并且只有请求管理员解锁,方能继续使用计算机。
3 关键技术
3.1 WinSoek通信
客户端与服务器端的正常通信,是屏幕锁定系统赖以存在的基础。该系统借助于WinSock实现。VB中提供了WinSock控件。WinSoek控件解决了以往应用VB编程时应用程序之间无法实现点对点通信的难题。WinSock使用的TCP协议和UDP协议,允许建立并保持到远程计算机上的连接,且可以在连接结束之前实时进行数据交换。用户仅通过设置属性并借助事件处理就能够轻而易举地连接到一个远程计算机上,而且只用两个命令就可以实现数据交换。
在传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把RemoteHost属性设定为机器所在网段的广播地址,并设定与客户机 LocalPott属性相同的端口地址,借助SendData方法开始发送消息。客户机则在GetData事件中通过DataArrival事件分离出发送的信息。
3.2 进程控制机制
进程控制机制实现客户端的进程查找及匹配的过程。进程控制是指查找当前系统正在运行的所有进程,并比较其与禁止进程列表,若匹配成功则杀掉正在运行的禁止进程。实现过程为:调用系统API函数Create-Toolhelp32Snapshot查找客户机正在运行的进程,并使用时钟实时刷新,将其记录到下拉框list1中;从禁止进程文件中读取进程并记录到下拉框list2中;使用两个for循环比较list1和list2中进程是否相同,如果相同,就杀掉正在运行的禁止进程,并调用屏幕锁定窗体。实现流程如图4所示。
3.3 屏幕锁定机制
屏幕锁定机制实现客户端触发了禁止进程后的屏幕锁定功能。屏幕锁定的过程包含以下任务:屏蔽系统热键,使锁定窗体处于最上方,锁定时隐藏任务条,解锁后显示任务条等过程。屏幕锁定机制的主要理论依据是挂钩API技术(HookAPI)。钩子 (Hook)是Windows消息处理机制中的一个监视点,应用程序可以在这里安装一个子程序(钩子函数),以监视指定窗口某种类型的消息,所监视的窗口可以是其他进程创建的。当消息到达后,在目标窗口处理函数处理之前,钩子机制允许应用程序截获它进行处理。而HookAPI就是指截获特定的进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。钩子的安装与卸载是通过SetWindow-sHookEx函数,以动态链接库的方式安装到系统中的。
屏幕锁定的实现过程为:调用API函数SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽热键;调用函数 SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并为其赋予不同的实参,就可实现窗体处于最上方、隐藏或显示任务条的功能。实现流程如图5所示。
- 八种固定WiMAX接入方案(03-12)
- 客户端不安装 Oracle 也可以连接数据库 (06-29)
- 安全技巧:利用RADIUS提高远程拨号的安全性(11-13)
- 解析:服务器数据库系统的优点(06-30)
- 基于WiMAX的无线视频监控系统设计方案(08-24)