程序安全加密方法及装置与流程

文档序号:13685981阅读:184来源:国知局
程序安全加密方法及装置与流程

本发明涉及信息安全领域,尤其涉及程序安全加密方法及装置。



背景技术:

随着网络和信息技术的发展,出现越来越多的程序可以供用户选择,但同时,如何保证程序的安全,特别是如何保证网络环境下的程序安全成为一个问题。

现有技术中的程序的安全性有待提升。



技术实现要素:

本发明解决的技术问题是提升程序的安全性。

为解决上述技术问题,本发明实施例提供一种程序安全加密方法,包括:将源程序编译成为基于虚拟指令的加密程序;发送所述加密程序至终端,以使得所述终端在与所述虚拟指令适配的虚拟环境中解释执行所述加密程序。

可选的,所述将源程序编译成为基于虚拟指令的加密程序还包括:当所述源程序更新后,对更新后的所述源程序重新编译,以更新所述加密程序。

可选的,所述程序安全加密方法还可以包括:向所述终端发送所述虚拟环境。

可选的,所述发送所述加密程序至终端的步骤是由所述终端发出的请求触发的。

本发明实施例还提供另一种程序安全加密方法,包括:接收加密程序至终端,所述加密程序是源程序经编译形成的基于虚拟指令的加密程序;在所述终端的虚拟环境中解释执行所述加密程序,所述虚拟环境与所述虚拟指令适配。

可选的,所述虚拟环境运行于所述终端的处理器,所述处理器包括以下任一种:x86处理器、arm处理器、mips处理器。

可选的,所述虚拟环境运行于网页环境。

本发明实施例还提供一种程序安全加密装置,包括:编译单元,适于将源程序编译成为基于虚拟指令的加密程序;加密程序发送单元,适于发送所述加密程序至终端,以使得所述终端在与所述虚拟指令适配的虚拟环境中解释执行所述加密程序。

可选的,所述编译单元还适于在所述源程序更新后,对更新后的源程序重新编译,以更新所述加密程序。

可选的,所述程序安全加密装置还可以包括:虚拟环境发送单元,适于向所述终端发送所述虚拟环境。

可选的,所述程序安全加密装置还可以包括:触发单元,适于根据所述终端的请求触发所述加密程序发送单元发送所述加密程序至终端。

本发明实施例还提供另一种程序安全加密装置,包括:加密程序接收单元,适于接收加密程序至终端,所述加密程序是源程序经编译形成的基于虚拟指令的加密程序;解释执行单元,适于在所述终端的虚拟环境中解释执行所述加密程序,所述虚拟环境与所述虚拟指令适配。

可选的,所述虚拟环境运行于所述终端的处理器,所述处理器包括以下任一种:x86处理器、arm处理器、mips处理器。

可选的,所述虚拟环境运行于网页环境。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

由于编译源程序至加密程序所采用的虚拟指令难以被第三方知悉,故将将源程序编译成为基于虚拟指令的加密程序后,第三方难以对加密程序进行破解,从而可以提升加密程序的安全性。终端在于所述虚拟指令适配的虚拟环境中对加密程序进行解释执行,可见的仅仅是解释后的底层执行命令,从而也难以被逆向破解。由此,本发明实施例中的程序安全加密方法安全性更高。

进一步,由于可以在所述源程序更新后,对更新后的所述源程序重新编译得到的更新后的加密程序,从而可以使得加密程序具有时效性,进而可以使得加密程序更加难以被破解。

附图说明

图1是本发明实施例中一种程序安全加密方法的流程图;

图2是本发明实施例中另一种程序安全加密方法的流程图;

图3是本发明实施例中一种程序安全加密装置的结构示意图;

图4是本发明实施例中另一种程序安全加密装置的结构示意图。

具体实施方式

如前所述,随着网络和信息技术的发展,出现越来越多的程序可以供用户选择,但同时,如何保证程序的安全,特别是如何保证网络环境下的程序安全成为一个问题。现有技术中的程序的安全性有待提升。

在本发明实施例中,由于破解方难以知悉编译使用的虚拟指令的指令集,故将源程序编译成为基于虚拟指令的加密程序后,破解方难以对加密程序进行破解,从而可以提升加密序的安全性。终端在于所述虚拟指令适配的虚拟环境中对加密程序进行解释执行,可见的仅仅是解释后的底层执行命令,从而也难以被逆向破解。由此,本发明实施例中的程序安全加密方法安全性更高。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例中一种程序安全加密方法的流程图,该方法可以由服务器执行,例如由云端服务器执行。

在步骤s11中,将源程序编译成为基于虚拟指令的加密程序。

源程序可以是多种程序,可以是本地程序,也可以是来源于其他程序提供者的程序;源程序实现的功能也可以是多种多样的。在具体实施中,将源程序编译成为基于虚拟指令的加密程序可以由服务器完成,源程序可以是服务器本地的程序,也可以来源于服务器以外的程序提供者。

在具体实施中,虚拟指令可以是自定义指令或者也可以是各种适当的通用指令。由于通用指令的种类较多,破解方难以知悉某次对源程序进行加密时采用的是那种具体的通用指令;更进一步,自定义指令为私有指令,并且可以进行多种变化,更加难以被破解方知悉。故将源程序编译成基于虚拟指令的加密程序后,难以被破解,使得源程序的安全性更高。

在一具体实现中,将源程序编译成为基于虚拟指令的加密程序还可以包括:当所述源程序更新后,对更新后的所述源程序重新编译,以更新所述加密程序。

源程序的更新可以是版本的更新、功能的优化等更新,也可以是基于安全考虑的更新,例如可以是校验更新等。

由于可以在所述源程序更新后,对更新后的所述源程序重新编译得到的更新后的加密程序,从而可以使得加密程序具有时效性,在加密程序更新后,破解方对更新前的加密程序进行的破解不能用于对更新后的加密程序的破解,从而可以使得加密程序更加难以被破解,提升加密程序的安全性。

在步骤s12中,发送所述加密程序至终端,以使得所述终端在与所述虚拟指令适配的虚拟环境中解释执行所述加密程序。

在具体实施中,终端可以是需要执行所述源程序的设备,例如可以是计算机、平板电脑、智能手机等设备。发送所述加密程序至终端可以是前述服务器通过网络发送所述加密程序。

终端在执行所述加密程序时,在与所述虚拟指令适配的虚拟环境中,将所述加密程序解释成与终端的指令集相适配的底层指令,而从底层指令反向破解所述加密程序几乎是不可能的,从而本发明实施例中的加密程序的安全性更高。

在一具体实现中,发送加密程序至终端的步骤可以是由所述终端发出的请求触发的。

在具体实施中,用户终端可以在需要执行时向服务器发送请求,触发服务器向终端发送对应的加密程序。

在一个非限定性的例子中,用户终端在需要执行时向服务器发送请求后,服务器发送的所述加密程序至终端可以是最近被更新的加密程序。从而可以使得终端每次执行的加密程序均对应于最新的源程序。

终端在与所述虚拟指令适配的虚拟环境中解释执行所述加密程序,从而可以使得终端不必在每次源程序更新时均进行重新安装,进而可以提升终端的效率,进一步可以提升终端用户的体验。

在具体实施中,程序安全加密方法还可以包括向所述终端发送所述虚拟环境。

向终端发送虚拟环境可以是由服务器发送,发送所述虚拟环境可以与发送所述加密程序在同一发送过程,也可以与发送所述加密程序在不同的发送过程。

在一具体实现中,将源程序编译成为基于虚拟指令的加密程序时,可采用不同的虚拟指令,并可以在更换虚拟指令对源程序进行加密时,向终端发送与更换的虚拟指令相一致的虚拟环境。如此,可以进一步提升加密程序的安全性。

本发明实施例还提供另一种程序安全加密方法,其流程图参见图2。

在步骤s21中,接收加密程序至终端,所述加密程序是源程序经编译形成的基于虚拟指令的加密程序。

在具体实施中,可以是终端从服务器接收加密程序,源程序经编译形成基于虚拟指令的加密程序的过程可以参见如图1所示的程序安全加密方法,在此不再赘述。

在步骤s22中,在所述终端的虚拟环境中解释执行所述加密程序,所述虚拟环境与所述虚拟指令适配。

在具体实施中,终端可以向服务器发送请求,以触发服务器向终端发送加密程序,由服务器再向终端发送响应于上述请求的加密程序。

由于服务器在向终端发送加密程序时,可以是发送对应不同的源程序的加密程序,例如可以是版本更新后的源程序。而终端在其虚拟环境中解释执行所述加密程序,故可以实现对源程序的热更新,即无需终端进行装载即可即时运行与更新的源程序对应的加密程序,从而可以提升终端用户的用户体验。另外,对源程序提供者来说,也可以更方便的对源程序进行更新。

在一具体实现中,终端的虚拟环境可以来自服务器,并且可以在服务器更新虚拟指令后,重新装载与服务器的虚拟指令相适配的虚拟环境。如此,可以进一步提升加密程序的安全性。

在具体实施中,虚拟环境可以运行于所述终端的处理器,例如,可以是以下任意一种处理器:x86处理器、arm处理器、mips处理器。

在另一具体实现中,所述虚拟环境可以运行于网页环境。由于网页中很多内容是基于明文的,例如基于javascript的网页等,故运行于网页环境的程序十分容易被反向工程和破解。

而在本发明实施例中,虚拟环境可以运行于网页环境中,加密程序的执行是在虚拟环境中解释执行的,解释后的指令是适于网页环境的低层次的指令,而低层次的指令难以被反向破解,故本发明实施例中的加密程序可以运行于网页环境,并且难以被破解,进而可以提升网页环境中程序运行的安全性。

在一个非限定性的例子中,网页环境基于javascript,解释后的指令可以是层次较低的javascript指令。例如,javascript网页环境为虚拟机分配数组作为虚拟机的虚拟内存,在需要读写运行于javascript网页环境的虚拟机的内存数据时,解释执行的指令是对上述数组进行操作的,指令层次比较低。

由于在虚拟机运行于javascript网页环境时,解释执行所述加密程序是将加密程序解释成为层次比较低的javascript指令,故可以使得破解方难以根据层次比较低的javascript指令进行反向破解,进一步可以提升javascript网页环境下程序运行的安全性。

在本发明一实施例中,终端可以通过双击某个图标向服务器发送请求,例如可以是在双击某个图标后,触发对当前用户的身份校验。服务器在接收到终端的请求后,可以将对应身份校验的程序的加密程序发送至终端。

此时,该服务器可以是身份校验程序提供方的服务器,也可以是云端服务器,身份校验程序提供方的服务器可以对身份校验程序进行更新,也可以向云端服务器提供新版本的身份校验程序。

服务器向终端发送的加密程序可以是对最新的身份校验程序进行编译形成的加密程序,进而可以使得破解方难以对加密程序进行破解。终端在对加密程序解释执行时,执行指令对应于最新的身份校验程序,也可以使得身份校验程序的安全性更高,进而使得非法用户难以通过身份校验。

如图2所示的程序安全加密方法可以运行于终端,其具体实现和有益效果可以参见如图1所示的程序安全加密方法,在此不再赘述。

本发明实施例还提供一种程序安全加密装置,其结构示意图参见图3。

如图3所示的程序安全加密装置可以包括:

编译单元31,适于将源程序编译成为基于虚拟指令的加密程序;

加密程序发送单元32,适于发送所述加密程序至终端,以使得所述终端在与所述虚拟指令适配的虚拟环境中解释执行所述加密程序。

在具体实施中,所述编译单元31还适于在所述源程序更新后,对更新后的源程序重新编译,以更新所述加密程序。

在具体实施中,所述程序安全加密装置还可以包括:虚拟环境发送单元33,适于向所述终端发送所述虚拟环境。

在具体实施中,所述程序安全加密装置还可以包括:触发单元34,适于根据所述终端的请求触发所述加密程序发送单元32发送所述加密程序至终端。

如图3所示的程序安全加密装置的具体实现和有益效果可以参见如图1所示的程序安全加密方法,在此不再赘述。

本发明实施例还提供另一种程序安全加密装置,其结构示意图参见图4。

如图4所示的程序安全加密装置可以包括:

加密程序接收单元41,适于接收加密程序至终端,所述加密程序是源程序经编译形成的基于虚拟指令的加密程序

解释执行单元42,适于在所述终端的虚拟环境中解释执行所述加密程序,所述虚拟环境与所述虚拟指令适配。

在具体实施中,所述虚拟环境可以运行于所述终端的处理器,所述处理器包括以下任一种:x86处理器、arm处理器、mips处理器。

在具体实施中,所述虚拟环境可以运行于网页环境。

如图4所示的程序安全加密装置的具体实现和有益效果可以参见如图2所示的程序安全加密方法,在此不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1