[发明专利]程序编译方法、编译器及计算机有效
| 申请号: | 201010296704.X | 申请日: | 2010-09-28 |
| 公开(公告)号: | CN102419714A | 公开(公告)日: | 2012-04-18 |
| 发明(设计)人: | 程碧波 | 申请(专利权)人: | 程碧波 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F21/24 |
| 代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明 |
| 地址: | 100081 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 编译 方法 编译器 计算机 | ||
技术领域
本发明涉及一种源代码编译方法、编译器及计算机。
背景技术
当前主机系统在编译并安装程序时,均首先将程序源代码编译成二进制机器代码,然后将二进制机器代码连接安装在主机系统中。在安装二进制代码或执行二进制代码时,系统再检查代码指令的特权级,并根据其特权级产生执行、不执行或报警的后果。而特权级指令的设计、分类均由CPU等硬件厂家设计决定,留给软件编写者的自由度很小。例如一旦攻击者突破了ring0级特权,则所有指令都可以执行,从而给系统带来极大的不安全性。事实上主机系统在特殊情况例如驱动程序编写时,只使用少数几个ring0级指令就可以了。此外,硬件厂家有很多指令未公开发布已经是计算机领域的惯例,而这些指令中难免会有硬件厂家留下的高特权级后门指令,从而对使用硬件的用户产生安全威胁。
现有的计算机特权指令之审核是在安装或执行二进制机器代码一级。以Intel机器指令而论,其包含了4级特权:ring0,ring1,ring2,ring3。其中ring0级特权优先级最高,可以执行系统内任何指令,而ring3级特权优先级最低,无法执行高级特权指令。一旦破解者获得ring0级特权,就基本上可以在系统内任意妄为。现在的操作系统极力封锁ring0级特权,只向用户开放低级特权,以保证系统安全。但由于安装驱动程序需要操作ring0级特权指令,以及硬件本身可能有的特权指令后门,从而使得系统留下了安全隐患,导致安全性不够高。
针对相关技术中的计算机系统的安全性不够高的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中计算机系统的安全性不够高的问题而提出本发明,为此,本发明的主要目的在于提供一种源代码编译方法、编译器及计算机,以解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种源代码编译方法。该源代码编译方法包括:编译器获取源代码各指令的特权级;编译器判断源代码各指令的特权级和编译者的特权级是否符合;在源代码所有指令的特权级和编译者的特权级均符合的情况下,编译器对源代码进行编译;以及在源代码任意指令的特权级和编译者的特权级不符合的情况下,编译器拒绝对源代码进行编译。
为了实现上述目的,根据本发明的另一方面,提供了一种编译器。该编译器包括:获取模块,用于获取源代码各指令的特权级;判断模块,用于判断源代码各指令的特权级和编译者的特权级是否符合;以及编译模块,用于在源代码所有指令的特权级和编译者的特权级均符合的情况下,对源代码进行编译,在源代码任意指令的特权级和编译者的特权级不符合的情况下,拒绝对源代码进行编译。
通过本发明,采用编译器获取源代码各指令的特权级;编译器判断源代码各指令的特权级和编译者的特权级是否符合;在源代码所有指令的特权级和编译者的特权级均符合的情况下,编译器对源代码进行编译;以及在源代码任意指令的特权级和编译者的特权级不符合的情况下,编译器拒绝对源代码进行编译的方法,仅对符合条件的源代码中的各个指令进行编译,防止了对一些非法或可疑源代码的编译,解决了相关技术中的计算机系统安全性不够高的问题,进而达到了提高计算机系统安全性的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的源代码编译方法的流程图;
图2是根据本发明实施例的编译器的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
根据本发明的实施例,提供了一种源代码编译方法、编译器及计算机。
图1是根据本发明实施例的源代码编译方法的流程图。
如图1所示,该方法包括如下的步骤S102至步骤S108:
步骤S102,编译器获取源代码各指令的特权级。
例如,编译器可以首先读取源代码各代码指令,然后以读取的代码指令在编译器中检索出预设的此指令之特权级。
对可用于源代码的所有指令均已经在编辑器中各自预设好特权级,因此源代码文件本身不需要再设置任何特权级。编译者的特权级是通过口令等形式由编译器授予的。
步骤S104,编译器判断源代码各指令的特权级和编译者的特权级是否符合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于程碧波,未经程碧波许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010296704.X/2.html,转载请声明来源钻瓜专利网。





