程序实现的安全实时动态加载技术的制作方法

文档序号:6544382阅读:197来源:国知局
程序实现的安全实时动态加载技术的制作方法
【专利摘要】程序实现的安全实时动态加载技术是一种能够解决代码保护以及快速更新部署的新方法,通过应用本方法,可以保护计算机程序无法被反向工程破译,保护代码安全和软件著作权。同时能够解决计算机程序在更新过程中的滞后性,保证运行中的系统能够在更新程序发布后快速的部署最新的程序实现数据。程序实现的安全动态加载的逻辑思路如摘要附图一所示。程序实现数据更新的逻辑思路如摘要附图二所示。
【专利说明】程序实现的安全实时动态加载技术
【技术领域】
[0001]目前软件行业由于盗版,每年有数百亿美元的收入损失。随着网络家电、移动代码的来临以及手机上网的普及,软件滥用问题将成为一个严重的威胁。然而盗版不再足唯一的问题,恶意软件篡改,还有许多威胁例如在终端用户系统中种植特洛依木马。此外,移动代码通常以独立于机器的格式发布,它必然包含一些源代码信息,因而容易遭受反编译和逆向工程。
[0002]Oday在网络安全界通常是指没有补丁的漏洞利用程序,或当天就被人破解的程序。提供该利用程序的人通常是该漏洞的首发者或是第一个公开该漏洞利用细节的人。网络安全意思上的Oday就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具。
【背景技术】
[0003]通常C、C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码。通常所有的源文件被编译、链接成一个可执行文件。在这些可执行文件中,编译器删除了程序中的变量名称、方法名称等信息,这些信息往往是由内存地址表示,例如如果需要使用一个变量,往往是通过这个变量的地址来访问的。因此,反编译这些本地的目标代码就是非常困难的。
[0004]Java语言的出现,使得反编译变得非常容易而有效。原因如下:
1.由于跨平台的需求,Java的指令集比较简单而通用,较容易得出程序的语义信息;
2.Java编译器将每一个类编译成一个单独的文件,这也简化了反编译的工作;
3.Java的Class文件中,仍然保留所有的方法名称、变量名称,并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息。由于Java程序自身的特点,对于不经过处理的Java程序反编译的效果非常好。
[0005]目前,市场上有许多反编译工具,有免费的,也有商业使用的,还有的是开放源代码的。这些工具的反编译速度和效果都非常不错。好的反编译软件,能够反编译出非常接近源代码的程序。因此,通过反编译器,黑客能够对这些程序进行更改,或者复用其中的程序。因此,如何保护程序不被反编译,是非常重要的一个问题。
[0006]与此同时,信息价值的飞速提升,互联网在全球的普及,数字经济的广泛应用,这一切都刺激着信息安全市场的不断扩大,软件破解、口令解密、间谍软件、木马病毒全部都从早期的仅做研究和向他人炫耀的目的转化为纯商业利益的运作,并迅速地传播开来,从操作系统到数据库,从应用软件到第三方程序和插件,再到遍布全球的漏洞发布中心,看看它们当中有多少ODay存在?可以毫不夸张的说,在安全补丁程序发布并成功部署之前,所有的漏洞彳目息都是ODay。
[0007]有人说:“每一个稍具规模的应用软件都可能存在ODay。”没错!从理论上讲,漏洞必定存在,只是尚未发现,而弥补措施永远滞后而已,就算漏洞补丁已经发布,在用户没有部署相关补丁前,用户的计算机系统始终存在安全隐患。[0008]只要用户方不独自开发操作系统或应用程序,或者说只要使用第三方的软件,ODay的出现就是迟早的事,无论你是使用数据库还是网站管理平台,无论你是使用媒体播放器还是绘图工具,即便是专职安全防护的软件程序本身,都会出现安全漏洞,这已是不争的事实,但最可怕的不是漏洞存在的先天性,而是ODay的不可预知性。

【发明内容】

[0009]程序实现的安全实时动态加载技术是一种能够解决代码保护以及快速更新部署的新方法,应用本技术后,在计算机系统中存储的是程序相关功能的描述性文档,包括方法/函数名称、输入数据格式、输出数据格式等信息,当计算机系统需要调用程序时,程序加载器通过访问云端服务器,从云端获取对应程序的具体实现数据,通过加载器进行数据加载,数据加载完成后,进行相应的程序处理操作,完成用户的操作要求。如果计算机并没有连入互联网,无法访问云端服务器,程序加载器还提供从磁盘指定位置进行程序实现数据加载的功能,具体的程序实现数据经过加密,保存在计算机磁盘的指定位置。在整个程序数据加载及程序处理操作的过程中,程序的具体实现代码完全存在于计算机内存系统中,并不存储在磁盘系统上,能够有效的防止对程序实现源代码的反向工程,达到保护代码安全的目的。
[0010]程序加载器的逻辑实现如附图1所示。
[0011]在程序加载器的运行过程中,当云端的程序数据有新版本时,程序加载器可以定期到云端服务器获取程序实现数据的更新列表,或者由云端服务将程序实现数据的更新列表推送到程序加载器中,还可以应用其他方式完成程序实现数据更新列表的信息更新,当程序加载器收到程序实现数据的更新列表后,可以在程序下一次被调用时重新加载最新的程序实现数据,也可以在系统空闲时预先对最新的程序实现数据进行预加载,提高程序调用时的响应速度。应用这种更新技术时,可以将程序实现数据的更新部署压缩到极短的时间内,只要云端数据更新完成,所有已经部署的应用即可使用最新的程序实现数据,完成更新的部署。当程序出现漏洞时,只要在最短的时间内将更新后的程序实现数据发布到云端,即可解决用户系统中存在的安全隐患。
[0012]程序加载器的数据更新逻辑如附图2所示。
图1程序加载器的逻辑实现
图2程序加载器的数据更新逻辑
【权利要求】
1.一种保护程序代码的方法,其特征在于:本地仅记录程序的描述性文档,具体的程序实现数据,在请求调用时从云端服务器动态加载。
2.基于权利要求1所述,当计算机系统无法连接云端服务器时,自动从本地磁盘加载经过加密后的程序实现数据。
3.—种保证程序能够实时动态部署的方法,其特征在于:通过定时获取云端服务器的更新数据列表或者接收云端服务器推送的更新数据列表,在程序调用时加载最新的程序实现数据。
4.基于权利要求3所述,在计算机系统空闲时,可以预先加载最新的程序实现数据,提闻在程序调用时的效率。
【文档编号】G06F21/14GK103955636SQ201410160841
【公开日】2014年7月30日 申请日期:2014年4月21日 优先权日:2014年4月21日
【发明者】魏珉 申请人:魏珉
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1