基于Keil C51的软件保护开发的方法和系统技术方案

技术编号:2918999 阅读:269 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于Keil  C51的软件保护开发的方法和系统,属于信息安全领域。为了解决现有技术中或效率低、成本高,或不能完全模拟真实硬件的功能,以及用户必须反复配置带来操作复杂化等问题,本发明专利技术提供了所述方法和系统。方法包括:将软件的核心程序转换成C51语言的源代码;在虚拟文件系统中配置调试源代码时所访问的文件和软件保护装置的硬件设备信息;编译源代码生成C51木地代码,调试源代码;成功后下载C51木地代码并将生成的虚拟文件系统镜像写入该装置中。系统包括接口模块、虚拟文件系统配置模块、系统调用模块、C51虚拟机模块、下载模块和硬件访问模块。本发明专利技术简化了软件保护开发的过程,保证了开发的准确性。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,特别涉及一种基于Keil C51的软件保护开发的方法和系统
技术介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。KeiluVision2是一个标准的Windows应用程序,集成了C51编译器、A51汇编器、L51连接器、实时操作系统、项目管理器及调试器等,可以完成编辑、编译、链接、调试及仿真等整个开发流程,开发人员可以用IDE(Integrated Development Environment,集成开发环境)或其它编辑器编辑C或汇编源文件,然后分别由C51及A51编译器编译生成目标文件(.OBJ文件)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS文件)。绝对目标文件由OH51转换成标准的Hex文件,Hex文件可由仿真器使用,直接对目标板进行调试,也可以直接将Hex文件写入程序存贮器,如EPROM(ErasableProgrammable Read-Only Memory,可擦可编程只读存储器)中。Keil定义了一个AGDI(Advanced Generic Debugger Interface,高级通用调试器接口)接口,用户通过该接口编写DLL来连接仿真机和Keil的IDE,即Keil C51集成开发环境uVision2,uVision2调试器利用高级的AGDI接口,把uVision2调试器绑定到目标系统。Keil还提供了一组编程接口AGSI(Advanced Generic Simulator Interface,高级通用模拟器接口),使用该接口可以开发和硬件功能一致的DLL,嵌入该DLL到Keil C环境,就能直接在纯粹的软件环境下开发C51程序,用户即可在PC机上完全模拟目标程序、指令集和片内外围功能。软件模拟仿真器是一种单片机开发方法,同样适用于软件保护的开发。这种方法是在PC机上,用软件来实现仿真,并配置一系列相关的服务程序,使用时只要在PC机上运行该软件包,就可以对目标码程序进行调试。所谓虚拟机,可以把它想象成一台用软件来模拟的机器,在这台机器里有处理器、内存、寄存器等各种硬件,模拟执行各种指令,在这台机器上运行的软件对运行环境没有特殊要求,所以虚拟机对在它上运行的程序是透明的。例如,X86虚拟机模拟的是X86指令程序的运行环境,C51虚拟机模拟的是C51指令程序的运行环境。目前,信息安全设备生产商会在较高端的硬件设备中实现某种虚拟机功能,因此可以在信息安全设备中直接运行与实现的虚拟机相对应格式的代码,例如,硬件生产商在信息安全设备中实现了C51虚拟机,目前的应用方式就是将C程序通过Keil C51编译器编译成含有C51指令的二进制文件,该格式的文件就是可以在信息安全设备上执行的可执行文件。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法,也指用于存储文件的磁盘或分区,或文件系统种类。虚拟文件系统是指通过软件来组织文件的结构和/或模拟一个文件系统的行为,它实现文件系统的全部或一部分功能。多年来软件被盗版一直是困扰众多开发商的重大难题,所以许多开发商不得不在软件产品的开发过程中就投入精力去编制软件保护功能模块,尤其是那些售价相对较高,面向特定行业的专业软件产品。但是在一个产品的开发过程中投入精力去实现软件保护功能并非总能收到奇效,最终所能达到的保护效果并非总是与投入的精力成正比。毕竟与软件保护及加密相关的功能的开发需要以一定的实践经验为基础,根据软件产品的具体特点,制定软件保护方案,并在软件开发的初期就着手保护方案的量身设计。正是由于软件保护功能实现的复杂性,所以大多开发商还是会选择一套现成的软件保护类产品,并在软件开发的后期结合到自己的产品中去。在众多的软件保护方面的产品中,多年来软件加密锁产品仍然是为大家所熟悉且被普遍使用的软件保护产品。加密锁也称加密狗,是一种带有独立CPU、RAM及非易失存储器的一种小型硬件装置,它可通过计算机的数据通讯接口与计算机连接,能够存储、管理数据,并可预置加密算法功能,同时也可后期自行定制部分算法功能。当一个软件产品结合了加密锁进行保护后,软件就无法离开加密锁而正常运行,这个软件产品就与加密锁硬件无形地绑定在了一起,软件就好象被这个装置锁住了似的,故称加密锁。加密锁的文件系统与Windows的文件系统类似,是目录/文件结构,文件包括可执行文件,数据文件和密钥文件。可执行文件是在加密锁内部运行的文件。在应用软件运行时,由外部的API接口调用,向该文件传入输入数据,可执行文件在加密锁内部运行后,将结果返回给外部的应用程序。数据文件是存放数据信息的文件。密钥文件是存储RSA密钥对(公钥和私钥)的文件。现有技术中基于加密锁进行软件保护的一种加密方法原理如下软件开发商将程序的一部分写入到加密锁中而不必在主机上保留这一部分的副本,程序运行时也不会在计算机的内存中出现;在软件中被写入加密锁的那部分程序的位置,加入对加密锁的调用;软件运行时,这些被移植的程序将在加密锁中内部运行,并将结果返回给软件。由于软件的一部分程序被移植到加密锁中,很明显,安装在计算机上的软件离开了加密锁就不可能正常工作,从而实现对软件的保护。上述软件保护开发流程一般包括以下几个步骤1.开发软件开发商选择关键代码通过加密锁兼容的编译器,将这些代码编译成本地代码,即可执行文件;2.调试对于被移植的代码进行调试,可以将其下载到加密锁中进行调试,也可以通过软件仿真器在PC内仿真真实的加密锁设备来对其进行调试;3.下载调试成功后,将可执行文件及可执行文件在运行时需要访问的可执行文件、数据文件、密钥文件等相关文件下载到加密锁内部;4.测试软件开发商对整套软件进行测试,包括对下载到加密锁内部的可执行文件和PC端的软件进行调用测试;5.生产软件开发商多次重复下载的步骤进行批量烧制。上述现有技术存在如下缺点1.若下载到加密锁进行调试,则效率低、成本高;若利用软件仿真器仿真来进行调试,则不能完全模拟真实硬件的功能,比如软件仿真器不能执行与硬件相关的功能;2.在烧制和生产的过程中,用户必须得手动配置调试过程中可执行程序运行时所访问的可执行文件、数据文件、密钥文件等相关资源环境,而这些文件在调试过程中可能被改写,即预先配置的文件与调试过程中的文件内容可能不相同,会导致烧制环境与虚拟环境不一致,从而不能保证准确性;如果用户反复重新配置资源,则使得操作复杂化。
技术实现思路
为了解决上述问题,本专利技术提供了一种基于Keil C51的软件保护开发的方法和系统。本专利技术提供的基于Keil C51的软件保护开发的方法包括将软件的核心程序转换成C51语言的源代码;在虚拟文件系统中配置调试所述源代码时所访问的文件和软件保护装置的硬件设备信息;编译所述源代码生成C51本地代码,Keil调试器模拟所述软件保护装置的运行状态,调试所述源代码;调试成功后,将调试后的C51本地代码下载到所述虚拟文件系统中,并生成虚拟文件系统镜像;将所述虚拟文件系统镜像写入所述软件保护装置中。通过计算机的文件或内存模拟所述虚拟文件系统。所述虚拟文件系统为单独的软件、库或模块。所述虚拟文本文档来自技高网
...

【技术保护点】
一种基于KeilC51的软件保护开发的方法,其特征在于,所述方法包括:将软件的核心程序转换成C51语言的源代码;在虚拟文件系统中配置调试所述源代码时所访问的文件和软件保护装置的硬件设备信息;编译所述源代码生成C51本地代 码,Keil调试器模拟所述软件保护装置的运行状态,调试所述源代码;调试成功后,将调试后的C51本地代码下载到所述虚拟文件系统中,并生成虚拟文件系统镜像;将所述虚拟文件系统镜像写入所述软件保护装置中。

【技术特征摘要】

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

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

1