一种防止非法程序在计算机系统运行的方法及其系统的制作方法

文档序号:6551629阅读:200来源:国知局
专利名称:一种防止非法程序在计算机系统运行的方法及其系统的制作方法
技术领域
本发明涉及计算机安全领域,尤其是涉及计算机本地化来防止非法程序在计算机系统运行的方法及系统。
背景技术
随着计算技术的发展,计算机越来越多地进入普通人的生活中,计算安全与安全计算也日益受到人们的重视。
随着因特网的日益普及,越来越多的计算机接入网络,使得孤立运行的计算机越来越少。这些计算机互相连接,可以方便地彼此交换数据。
不接入因特网的计算机也不是孤立存在的,这些计算机大多通过光盘、磁盘获得外部数据。事实上,几乎所有的计算机都需要与外部进行数据交换,能够方便的进行数据交换也是计算机获得广泛应用的重要原因。
然而,进行数据交换时,也不可避免的带来安全隐患。这是由于,数据交换过程中,可能会有非法程序趁机入侵计算机系统。其中一些非法程序会在计算机中运行,占用系统资源,甚而破坏计算机系统。
目前,对计算机系统危害最大的是黑客入侵和病毒感染。
黑客入侵是指以达到某种目的,从一台计算机非法的进入另一台计算机所从事的一系列操作的总和。黑客入侵目标计算机时,目标计算机用户一般没有察觉,黑客进入目标计算机后,会对该机进行非法的操作。
病毒是一种具有特殊目的程序,可通过网络等数据交换途径进入其它计算机。当满足程序触发条件后,病毒程序执行特定的操作。
病毒感染的特征是首先,感染的目标计算机不是预先设定的;其次,感染病毒的计算机必须满足一定条件才能触发。
在应对黑客入侵和病毒感染方面,已经采用了多种的技术措施,但是,这些措施都未能彻底阻止黑客入侵,以及遏制病毒感染。这是由于,目前所采取的技术措施基本上属于被动防守。比如在对付黑客入侵方面,基本上是针对先前黑客采用的入侵方式;在查杀电脑病毒方面,基本上是针对已有的电脑病毒,这样就使入侵者处于主动的地位。层出不穷的新的黑客入侵手段和新病毒,使计算机系统不断受到破坏和干扰。
病毒和黑客之所以可以如此肆虐,一个基本的条件是计算机程序的可移植性。
所谓可移植性,是指在一台计算机编制、运行的程序,可以在另一台计算机上运行。正是由于具有可移植性,才使在一个计算机系统上编制、运行的程序可被其它计算机共享。所以,良好的可移植性是对计算机程序的一个基本要求。
为使计算机程序具有可移植性,计算机的硬件、软件都应有相同的标准。从具有相同的运行环境的角度而言,也可以说计算机兼容。
目前,大多数台式、笔记本式计算机都采用视窗操作系统和英特尔处理器。这就使这些计算机具有良好的兼容性,从而保证了程序的可移植性,使得在某台计算机上编制的程序可以不经任何修改就能够在其它计算机上运行。
然而,正是由于计算机系统之间良好的兼容性,使恶意的程序编制者对通用的计算机环境可以作充分的研究,并编制出运行于上述通用计算机系统的黑客、病毒程序,从而对这些计算机系统造成损害。
相反,对于特殊化的计算机系统,一般的作用于通用计算机系统的黑客程序、病毒程序无法在这些系统中运行,也就不可能对其造成破坏。
因此,使用特殊化的计算机系统,就可以免受黑客程序、病毒程序的恶意入侵。
然而,特殊化的计算机系统不具有通用性。因此,在其它计算机上编制的程序无法在其上运行。使用这种计算机系统,难以分享其他人的智力成果,降低计算机系统的使用价值。

发明内容
针对上述问题,本发明解决的技术问题在于提供一种防止非法程序在计算机系统运行的方法及其系统,可以使作用于通用计算机系统的黑客、病毒程序无法运行,也就不可能对其造成破坏。同时,根据通用计算机系统编制的程序,又能够在进行简单的变换之后,在该计算机系统上运行。
根据以上原理,本发明提供的技术方案的基本思路是对计算机中央处理单元中的寄存器更名,从而建立与通用计算机系统不同的本地计算机系统。当需要运行通用计算机程序时,可以将该程序中使用的寄存器名对应的换名为该本地计算机使用的专有寄存器名,从而在该计算机系统上运行。
根据上述思路,本发明的具体技术方案是包括步骤11)将本地计算机系统中央处理单元的寄存器名称由通用寄存器名更名为本地计算机系统的专有寄存器名;12)通用计算机程序在该计算机系统上运行时,将该计算机程序指令中的通用寄存器名换名为该本地计算机系统的专有寄存器名。
优选地,所述步骤11)的更名具体是改变寄存器寻址逻辑电路。
优选地,所述改变寄存器寻址逻辑电路具体是设置更名线,并将该更名线与原通用寄存器地址线进行逻辑运算,选定所述寄存器。
优选地,所述步骤12)具体包括41)接收授权信息;42)根据所述授权信息,输出换名信息;43)依据所述换名信息,进行所述的换名。
优选地,所述本地计算机系统向外部发送通讯信息时,将通讯内容中包含的该本地计算机系统专有寄存器名逆换名为通用寄存器名。
本发明同时提供一种防止程序在计算机系统非法运行的系统,包括更名单元,用于将本地计算机系统中央处理单元的寄存器名称由通用寄存器名更名为本地计算机系统的专有寄存器名;换名单元,用于运行通用计算机程序时,根据更名单元的更名方式获得的换名信息,将该计算机程序指令中的通用寄存器名换名为该本地计算机系统的专有寄存器名;逆更名单元,用于所述本地计算机系统向外部发送通信信息时,将该本地计算机系统的专有寄存器名逆更名为通用寄存器名。
优选地,所述更名单元包括寄存器更名线及逻辑门,所述寄存器更名线与原寄存器地址线通过逻辑门进行逻辑运算,输出寄存器选择信号。
优选地,该系统进一步包括授权单元,用于接收授权信息,判断程序是否获得授权;当程序获得授权时,输出换名信息至换名单元。
相对于现有技术,本发明具有如下有益效果首先,本发明提供的防止非法程序在计算机上运行的方法具有主动性。本发明提供的方法通过对通用计算机中的寄存器更名,建立与通用计算机不同的本地化运行环境,使所有作用于通用计算机环境的计算机病毒、黑客程序无法作用于该机。而目前的防病毒、黑客入侵的方法,都是针对已出现的病毒、黑客入侵程序,根据其具体程序采取相应措施的被动方法。
其次,本发明提供的方法具有广谱性。本发明提供的方法可以防范所有作用于通用计算机系统的病毒、黑客程序,而不是针对其中某一种;本方法也无需为新出现的病毒、黑客程序做任何升级或改变。而现有技术要针对每一种入侵方法采取具体的应对措施,对于新出现的入侵方式一般要进行升级或改变。
最后,本发明提供的方法具有简易性。本方法只需对寄存器名进行简单的变换,即可实现防病毒、黑客程序的目的。而现有技术的防病毒、黑客入侵方法都比较复杂。


图1是典型的8位CPU的结构框图;图2是英特尔8086内部的寄存器单元;图3是高级语言被编译成目标代码的过程;图4是同一程序在不同计算机上运行的情况;图5是本发明实施例流程图;图6是本发明实施例框图;图7是通用寄存器的逻辑电路图;图8是更名后的CPU中寄存器的逻辑电路图;
图9是本发明实施例更名计算机对通用程序中的寄存器名进行换名的流程图;图10为本发明实施例更名计算机与外部通讯时的逆更名过程的流程图。
具体实施例方式
为说明本发明技术方案的原理,这里首先介绍计算机的核心部件中央处理单元(CPU)的运行原理。
图1示出典型的8位CPU的结构框图。
在计算机系统中,CPU由算术逻辑运算单元(ALU)和一组寄存器(Registers)组成。
算术逻辑运算单元,在CPU中用于执行算术运算(如加、减、乘、除等)以及逻辑运算(如AND、OR、NOT等),能对内存单元或输入单元送至中央处理单元的资料执行各种运算。当运算完成后再由控制单元将结果资料送至内存单元或输出单元。
由于ALU只有处理数据的能力,没有保存数据的能力,而进行算术逻辑运算中不可避免地产生各种中间结果需要存储,所以CPU中必须有用于存储这些中间数据的存储元件,也就是寄存器。因此,寄存器是CPU不可缺少的组成部分。
图2示出美国英特尔公司生产的CPU芯片英特尔8086内部的寄存器单元。
该CPU内部设有通用寄存器、控制寄存器、段寄存器三类寄存器。其中,通用寄存器又分为数据寄存器、指针寄存器、变址寄存器。从用途上说来,这些寄存器的主要作用是暂存数据、计算地址、保存运算状态。
运行任何计算机程序都需要使用寄存器。计算机程序虽然大多以高级程序语言编写,但最终都是以机器语言的形式在计算机系统上运行,高级语言编写的程序必须翻译成机器语言程序。机器语言程序通常被称为目标程序,它实际上是由一系列二进制码组成的目标代码。机器语言程序包含一系列的目标代码,每个目标代码不仅说明需要执行的具体操作,而且指出需要存取数据的寄存器。
图3示出高级语言被编译成目标代码的过程。
程序要执行,不管是正常的程序,还是恶意的程序,都必须以上述目标代码执行。每种计算机都有自己的机器语言,机器语言不具有可移植性。一个可执行的机器语言目标代码,如果希望在两台计算机上均可以运行,那么两台计算机必须完全兼容。
图4示出同一程序在不同计算机上运行的情况。
程序1在结构相同的计算机甲和计算机乙上,可以无障碍地运行。程序1在结构不同的计算机甲和计算机乙上,无法运行。为了使计算机乙可以运行程序1,必须在计算机乙与程序1之间运行计算机甲仿真程序。如果没有仿真程序,不同结构的计算机无法运行彼此的程序。
由于机器语言不便记忆,为了克服机器语言的这一缺点,人们采用助记符表示机器指令,这样就形成了汇编语言。汇编语言的特点是它是一种用助记符号书写的语言,易于被使用者理解。同时,其基本操作指令直接对应于机器语言指令。比如汇编语言语句MOV AX,3这一语句表示将数据3放入寄存器AX。
该命令的目标代码是10111000 0000010100000000该目标代码前8位是机器语言指令,其它部分分别表示数据,以及存放该数据的寄存器。
因此,从汇编语言中,可以直观地看出程序在计算机系统运行时,使用寄存器的情况。
请看下面的一段可在Intel 8086上运行的汇编程序。
DATASEGMENTSTRDB 0DH,0AH,‘Example of string display!$’DATA ENDSSTACK SEGMENTSTACKDB100DUP(0)
STACK ENDSCODE SEGMENTASSUME DSDATA,CSCODE,SSSTACKBEGINMOV AX,DATAMOV DS,AXLEA DX,STRMOV AH,9INT 21HCODE ENDSEND BEGIN这是向屏幕显示字符串“Example of string display!”的一个小程序。可以看到该汇编程序中,使用了许多寄存器。
如上所述,由于所有的程序都要使用寄存器,因此,通过改变通用计算机的寄存器名,可以根本改变计算机程序的运行环境,从而使该计算机具有与通用计算机不同的结构,为通用计算机编制的程序无法在该机上运行。同样,根据通用计算机编制的病毒、黑客程序无法入侵此种计算机。所述改变通用寄存器名,其实质是改变寄存器的寻址信息,或者说改变通用寄存器的地址。
以8086为例,当寄存器AX,BX,CX,DX的物理地址变为代码AXW,BXW,CXW,DXW则计算机结构发生改变,原来使用AX,BX,CX,DX的程序是无法运行的。
同时,可以方便的将在通用计算机上运行的程序指令中的寄存器名换名为更名后的寄存器名,从而使通用计算机程序在该机上运行。
这样,只需对上述程序指令的寄存器名换名过程进行控制,只允许合法的计算机程序可以获得如何换名的信息,就可以使该更名的计算机系统可以运行通用计算机程序。同时,黑客、病毒等非法程序由于无法获得换名信息而无法在该计算机系统上运行。
下面结合附图,对本发明的具体实施方式
作详细地说明。
请参见图5,该图为本发明实施例流程图。
本发明提供的防止非法程序在计算机系统上运行的方法包括两个方面
首先,将本地计算机系统寄存器的名称由通用寄存器名更名为本地计算机系统的专有寄存器名;其次,当通用计算机程序在该计算机系统上运行时,将该计算机程序指令中的通用寄存器名换名为该本地计算机系统的专有寄存器名。
图6示出本发明实施例系统框图。该系统在通用计算机系统的CPU基础上还包括更名单元、换名单元、逆换名单元、授权单元。
其中,寄存器更名单元在该计算机系统CPU内部,用于将通用寄存器名转换为更名寄存器名用于该CPU。经过更名后,该CPU的寄存器单元具有与通用CPU不同的识别信息,即不同的名称。但该CPU的寄存器实体并未改变。
其中寄存器更名信息用于决定寄存器更名单元如何将通用寄存器名更名,即将何种不同于通用寄存器的寻址信息加在该寄存器上。
设原通用寄存器名为AX,更名后寄存器名为AXW,加于所述寄存器的新的寻址信息可以表示为KEY,则通用寄存器名与更名寄存器名的关系可以表示为AX=KEY(AXW)。
寄存器换名单元位于所述CPU外部。
该单元作用在于,根据授权,及与更名信息KEY对应的换名信息KEY′,将外部通用计算机程序中的寄存器名换名为所述该计算机系统的更名寄存器名。
上述转化过程可以表示为AXW=KEY′(AX)。
经过上述转化后,外部通用程序即可在该寄存器更名计算机上执行。
授权单元用于判断计算机程序是否为合法的程序,如为合法程序,则提供换名信息KEY′至换名单元,授权换名单元对该程序指令中的寄存器名进行换名;如为非法程序,则不提供换名信息,程序指令中的寄存器无法正确换名,该程序无法在该计算机系统上运行。
逆换名单元位于CPU外部。
该单元作用在于,当本地计算机系统与外部通讯时,通过该单元将通讯内容中使用的更名寄存器名逆换名为通用寄存器名,以实现与其它计算机的沟通。
应当说明,上述更名单元、换名单元、逆换名单元位于计算机系统CPU内部或外部只是相对的。实际上,上述单元可以均位于CPU芯片的外部,也可均位于CPU芯片内部,但更名单元接近于寄存器,并且该CPU是以更名后的寄存器名寻址该寄存器的。
所述与寄存器紧密联系的更名单元的意义在于使所述该CPU的本地化寄存器与通用寄存器在实体上对应,只是寻址信息不同。
为具体说明所述更名单元如何实现,下面给出一具体实现寄存器更名单元的逻辑电路图。
图7示出通用寄存器的逻辑电路图。
图中,D1…Dn是数据线,nWR是写入信号,ADD0与ADD1是地址线。在该电路中,当地址线ADD0与ADD1同时为1时,如果有nWR的写入信号,那么D1…Dn的数据就能够进入寄存器。
图8示出更名后的CPU中寄存器的逻辑电路图。
图中,地址线ADD0与ADD1分别有寄存器更名线KEY0与KEY1通过非门相与。经过这一处理后,地址线ADD0与ADD1同时为1时,如果同时有nWR的写入信号,但KEY0与KEY1有一根的输入为1,D1…Dn的数据也不能进入寄存器。要使D1…Dn的数据进入寄存器,必须同时KEY0与KEY1皆为0。
以上只是寄存器更名的一种方式,还可以采取其它方式对寄存器更名。只要使寄存器具有与通用寄存器不同的选址方式,就可实现该计算机系统的本地化。
同样,相应的换名单元也可采取与上述相似逻辑电路方法,或者用软件方法实现。
图9示出本发明实施例本地计算机运行通用计算机程序时对程序中的寄存器名进行换名的流程图。
步骤S91,开始执行通用程序。
所述通用程序已经编译为机器语言的计算机程序,可以供计算机系统直接读取并执行。
步骤S92,读取通用程序的指令。
步骤S93,识别通用程序指令中的寄存器代码。
步骤S84,判断通用程序指令中是否有寄存器代码。如果有,则进入步骤S95;如果否,则进入步骤S96。
步骤S95,通过寄存器换名单元,用所述换名信息KEY′对通用程序指令中的寄存器代码进行换名。
经过上述换名后,所述通用程序指令中的寄存器代码AX即换名为该已经过寄存器更名的计算机中的本地化寄存器名AXW。
所述换名信息KEY′必须经过授权方可获得,以保证只有合法的程序才能在该计算机系统运行。
步骤S96,将程序指令送往CPU执行。
步骤S97,执行过程结束。
由于该更名计算机系统内部使用更名的寄存器名,因此,当该计算机系统与外部通讯时,其包含的寄存器名必须转化为通用寄存器名,才可以为其它通用寄存器所接收。
该计算机系统包含逆更名单元,以实现上述转化过程。该单元将输入的更名计算机的本地寄存器名转化为通用寄存器名。
图10为该更名计算机与外部通讯时的逆更名过程的流程图。
步骤S101,开始执行更名计算机本地程序。
所述本地计算机程序寄存器代码为更名寄存器代码。
步骤S102,更名CPU识别本地程序指令。
步骤S103,识别本地程序指令时,判断是否为外部通讯命令。如是,进入步骤S104;如否,进入步骤S107。
步骤S104,判断所述外部通讯命令是否有更名寄存器代码。如是,则进入步骤S105;如否,则进入步骤S107步骤S105,根据更名信息KEY对更名寄存器逆更名,将逆更名获得的寄存器名作为程序指令的寄存器名。
经过上述逆更名,本地计算机程序转化为通用计算机程序。
步骤S106,向外部通用系统发出通讯命令,执行程序。
步骤S107,逆更名过程结束。
请参见图11,本发明也可用于双CPU计算机系统。
此时可将其中一个CPU进行更名,也可对两个CPU均进行更名处理。对每一个更名CPU均包含上述更名系统和过程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种防止非法程序在计算机系统运行的方法,其特征为,包括步骤11)将本地计算机系统中央处理单元的寄存器名称由通用寄存器名更名为本地计算机系统的专有寄存器名;12)通用计算机程序在该计算机系统上运行时,将该计算机程序指令中的通用寄存器名换名为该本地计算机系统的专有寄存器名。
2.根据权利要求1所述的方法,其特征为所述步骤11)的更名具体是改变寄存器寻址逻辑电路。
3.根据权利要求2所述的方法,其特征为所述改变寄存器寻址逻辑电路具体是设置更名线,并将该更名线与原通用寄存器地址线进行逻辑运算,选定所述寄存器。
4.根据权利要求1所述的方法,其特征为,所述步骤12)具体包括41)接收授权信息;42)根据所述授权信息,输出换名信息;43)依据所述换名信息,进行所述的换名。
5.根据权利要求1所述的方法,其特征为所述本地计算机系统向外部发送通讯信息时,将通讯内容中包含的该本地计算机系统专有寄存器名逆换名为通用寄存器名。
6.一种防止程序在计算机系统非法运行的系统,其特征为,包括更名单元,用于将本地计算机系统中央处理单元的寄存器名称由通用寄存器名更名为本地计算机系统的专有寄存器名;换名单元,用于运行通用计算机程序时,根据更名单元的更名方式获得的换名信息,将该计算机程序指令中的通用寄存器名换名为该本地计算机系统的专有寄存器名;逆更名单元,用于所述本地计算机系统向外部发送通信信息时,将该本地计算机系统的专有寄存器名逆更名为通用寄存器名。
7.根据权利要求6所述的系统,其特征为所述更名单元包括寄存器更名线及逻辑门,所述寄存器更名线与原寄存器地址线通过逻辑门进行逻辑运算,输出寄存器选择信号。
8.根据权利要求6所述的系统,其特征为,该系统进一步包括授权单元,用于接收授权信息,判断程序是否获得授权;当程序获得授权时,输出换名信息至换名单元。
全文摘要
本发明公开防止非法程序在计算机系统运行的方法。将计算机CPU的寄存器名由通用寄存器名更名为专有寄存器名;当通用计算机程序在该计算机上运行时,将程序指令中的通用寄存器名换名为该计算机的专有寄存器名。所述换名需经授权。本发明同时公开一种系统,包括更名单元、换名单元、逆换名单元、授权单元。更名单元将计算机CPU的寄存器名由通用寄存器名更名为该计算机专有寄存器名;换名单元将通用程序指令中的通用寄存器名换名为本地计算机系统的专有寄存器名;逆换名单元在所述本地计算机系统向外部传送通信时,将该计算机的专有寄存器名逆换名为通用寄存器名。授权单元授权所述换名单元将通用寄存器名换名为该计算机的专有寄存器名。
文档编号G06F1/00GK1869859SQ20051007191
公开日2006年11月29日 申请日期2005年5月23日 优先权日2005年5月23日
发明者姜珊 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1