编译方法以及编译器技术

技术编号:3845855 阅读:151 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种编译方法及编译器,涉及计算机技术领域,解决了现有技术中编译出的目标程序版权得不到较安全保护的问题。本发明专利技术编译方法包括:按照预先设定的规则确定验证代码在源程序代码中的插入点;将所述验证代码插入到所述插入点在源程序代码中的对应位置;将包含插入了智能密钥设备验证代码的源程序代码转换成目标程序代码。本发明专利技术实施例主要用在计算机的编程中,特别是用在各种高级语言的编译中。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种编译方法以及编译器。技术背景智能密钥设备是一种带有处理器和存储器的小型硬件装置,它通过计算机 的数据通讯接口与主才几连接。它具有密钥生成、安全存^f渚密钥、预置加密算法 等功能。智能密钥设备与密钥相关的运算完全在装置内部运行,并且具有抗攻 击的特性,安全性极高。智能密钥设备生产商、软件系统开发商或者最终用户 可以将一些重要信息存储到智能密钥设备中,用以保证信息安全性或者防止遗忘o目前,较高端的智能密钥设备是可编程的,即可以在智能密钥设备中运行 预先存入其中的程序代码。智能密钥设备将预先存入其中的程序代码进行编译, 编译后在计算机上执行编译后的程序代码得到处理结果。其中,编译过程是指 将高级语言编写的源程序翻译成目标程序的过程。该目标程序是由计算机可执行的指令构成,并且功能与源程序的功能相同。编译过程分为5个阶段词法 分析、语法分析、语义检查与中间代码的生成、代码优化和目标代码生成。在实现上述编译过程中,专利技术人发现现有技术中至少存在如下问题从源 程序编译出目标程序后,任何一个具有机器语言处理能力的计算机都能够执行该目标程序,使得编译后的目标程序不能得到较好的版权保护;并且现有的版 权保护方法也特别复杂,需要用户手动地将验证智能密钥设备的代码加到源程 序中,并且还需要用户学习如何使用智能密钥设备。
技术实现思路
本专利技术的实施例提供一种编译方法以及编译器,用来简化、降低现有技术 中版权保护的复杂度与难度。为达到上述目的,本专利技术的实施例釆用如下技术方案一种编译方法,包括对源程序代码进行预处理;并对预处理后的源程序代码进行词法分析和语法分析;该方法还包括按照预先设定的规则确定验证代码在源程序代码中的插入点; 将所述验证代码插入到所述插入点在源程序代码中的对应位置; 将包含插入了验证代码的源程序代码转换成目标程序代码。 一种编译器,包括编译模块,用于对源程序代码进行预处理,并对预处理后的源程序代码进行词法分析和语法分析;该编译模块还包括确定单元,用于按照预先设定的规则确定验证代码在源程序代码中的插入占 /"、 9插入单元,用于将所述验证代码插入到所述插入点在源程序代码中的对应 位置;转换单元,用于将包含插入了验证代码的源程序代码转换成目标程序代码。 本专利技术提供的编译方法及编译器,先在源程序代码中确定出验证代码的插 入点,将验证代码插入到所述插入点在源程序代码中的对应位置,并将包含插 入了验证代码的源程序代码转换成目标程序代码。如此一来,在执行目标程序 代码的过程中如果执行到其中的验证代码处,则要进行智能密钥设备的验证, 这样就能够防止目标程序被任何一台计算机执行,达到了目标程序代码版权保 护的目的。并且,由于本专利技术中目标程序执行过程中是对智能密钥设备进行验 证,而智能密钥设备是硬件形式存在的,相对于现有技术中通过软件形式设置密码而言,本专利技术在编译阶段自动加入了访问智能密钥设备的代码,使目标程 序代码自动受到智能密钥设备的保护,简化、降低了版权保护的复杂度与难免。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1中编译方法的流程图; 图2为本专利技术实施例1中编译器的框图; 图3为本专利技术实施例2中编译方法的流程图; 图4为本专利技术实施例2中编译器的框图。具体实施方式本专利技术实施例中的验证代码能够对智能密钥设备进行验证,为了便于理解 本专利技术中保护目标程序代码版权时所采用的验证代码,下面详细的介绍一下智 能密钥设备。一般智能密钥设备中会内置安全芯片来实现安全功能。该安全芯片除了具 有通用嵌入式微控制器的各种特性外,还具有较可靠的安全性能。在设计智能 密钥设备时会针对安全性能方面在安全芯片的结构上做一些特殊处理,比如釆 用特定的安全内核作为安全芯片的内核,该安全内核能够支持多个拥有不同权 限的状态,从而实现对硬件资源访问权限的管理。智能密钥设备还可以带有MMU单元(Memory Management Unit,存储器管理 单元),用于实现地址映射、逻辑地址的隔离、以及物理地址的隔离,该,U单 元从体系结构上支持多应用和安全性能的设计,与安全芯片的内核所支持的不同权限一起组成一个硬件安全防火墙。上面详细介绍了智能密钥设备的功能,下面将结合本专利技术实施例中的附 图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实 施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施 例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本专利技术保护的范围。实施例1为了简化、降低了版权保护的复杂度与难度,本专利技术实施例提供一种编译方法,如图l所示,该方法包括101、 对源程序代码进行预处理,并对预处理后的源程序代码进行词法分析和语法分析;按照预先设定的规则确定验证代码在源程序代码中的插入点。其中,所述验证代码可以是一段验证智能密钥设备的代码,所述验证代码 还可以是一个函数调用,所述函数完成验证所述智能密钥设备的功能,函数可 以实现在一个编译好的库中,或者,所述函数以源代码的形式放在源程序代码 中;所迷确定验证代码在源程序代码中的插入点的方法为根据对预处理后的源 程序代码进行词法分析和语法分析的结果,来确定-睑证代码在源程序代码中的 插入点;所述预先设定的规则为确定源程序代码中函数的开始位置为验证代码在 源程序代码中的插入点;或者确定源程序代码中函数的结束位置为验证代码在 源程序代码中的插入点;或者确定源程序代码中函数调用之前的位置为验证代 码在源程序代码中的插入点;或者确定源程序代码中函数调用之后的位置为验 证代码在源程序代码中的插入点。102、 当确定了上述验证代码在源程序代码中的插入点后,将所述验证代码插入到所述插入点在源程序代码中的对应位置,以便在执行目标程序代码的时 候能够执行到上述验^L代码。103、当将所述验证代码插入到所述确定的插入点在源程序代码中的对应位 置后,将包含验证代码的源程序代码转换成目标程序代码,以便计算机可以执 行所述程序,得到所述源程序代码的运行结果;执行本实施例中的验证代码能 够对以硬件形式存在的安全设备进行验证。为了进一步简化、降低了版权保护的复杂度与难度,本专利技术实施例还提供 一种编译器,如图2所述,该编译器包括编译模块,用于对源程序代码进行预 处理,并对预处理后的源程序代码进行词法分析和语法分析;为了保护目标程 序版权,本实施例中的编译模块还包括确定单元21、插入单元22和转换单元 23。确定单元21用于按照预先设定的规则确定—睑证代码在源程序代码中的插入 点;插入单元22用于将所述验证代码插入到所述插入点在源程序代码中的对应 位置;转换单元23用于将包含插入了验证代码的源程序代码转换成目标程序代 码。在执行釆用本实施例提供的编译方法和编译器得到的目标程序时,如果执 行到目标程序代码中的验证代码,就需要进行智能密钥设备的验证,这样就能 够防止目标程序被任何一台计算机执行,达本文档来自技高网...

【技术保护点】
一种编译方法,包括对源程序代码进行预处理;并对预处理后的源程序代码进行词法分析和语法分析;其特征在于,该方法还包括: 按照预先设定的规则确定验证代码在源程序代码中的插入点; 将所述验证代码插入到所述插入点在源程序代码中的对应位置 ; 将包含插入了验证代码的源程序代码转换成目标程序代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1