一种对应用程序进行保护的方法及装置与流程

文档序号:11520109阅读:134来源:国知局
一种对应用程序进行保护的方法及装置与流程

本申请涉及直播视频流播放技术领域,尤其涉及一种对应用程序进行保护的方法及装置。



背景技术:

目前,由于直播视频播放技术的发展,已开发出越来越多的app(应用程序)供用户使用。这些应用程序包括但不限于是直播视频应用程序、浏览器、播放器等等。

而对于目前的应用程序来说,仍旧存在代码容易被泄漏的问题。举例来说,大多数的视频网站,包括直播网站都采用flash做为其视频播放器,并且大多数的网页游戏也会使用flash来开发。flash被广泛的用于网页设计和网页动画制作及网页视频播放等。

而swf文件是常见的flash动画文件,swf文件的代码是使用actionscript脚本语言来进行编写。

而actionscript脚本语言很容易被反编译,并且反编译后代码和原始的代码差不多,从而非常容易弄清楚其中的实现逻辑,所以会导致flash中的代码具有泄漏的危险。

故而,本发明的应用程序存在代码被泄漏的风险。



技术实现要素:

本发明了提供了一种对应用程序进行保护的方法及装置,以解决应用程序中的代码具有泄漏的危险的技术问题。

为解决上述技术问题,本发明提供了一种对应用程序进行保护的方法,所述方法包括:

读取第一应用程序,确定所述第一应用程序的待保护代码;

利用第一加密算法对所述待保护代码进行加密;

将加密之后的代码融入所述第一应用程序中,形成第二应用程序,其中,所述第二应用程序的安全级别高于所述第一应用程序。

优选的,所述利用第一加密算法对所述待保护代码进行加密,包括:

确定出所述待保护代码中的变量的具体值;

利用所述第一加密算法对所述变量的具体值进行处理,获得加密值;

利用所述加密值替代所述变量的具体值融入到所述待保护代码中。

优选的,当所述变量值包括:循环次数值、解密密码key值时,所述利用所述第一加密算法对所述变量的具体值进行处理,获得加密值,包括:

利用des.decode(times)作为加密值,以替代所述循环次数值;

利用des.decode(key)作为加密值,以替代所述变量值的解密密码key值;

优选的,所述利用第一加密算法对所述待保护代码进行加密,包括:

获得所述第一加密算法的函数代码;

将所述第一加密算法的函数代码融入所述待保护代码中。

优选的,当所述待保护的代码为加密代码时,所述加密代码对应有解密接口函数,所述解密接口函数用于对所述加密代码进行解密;

所述利用第一加密算法对所述待保护代码进行加密,包括:

获得所述解密接口函数的函数代码;

将所述解密接口函数的函数代码融入所述待保护代码中。

优选的,所述利用第一加密算法对所述待保护代码进行加密,包括:

将所述第一加密算法修改为第二加密算法;

利用所述第二加密算法对所述待保护代码进行加密。

优选的,所述利用所述第二加密算法对所述待保护代码进行加密,包括:

利用所述第二加密算法对所述待保护代码中的具体数值进行加密,获得加密后的加密数值;

利用所述加密数值替换所述具体数值融入到所述待保护代码中。

优选的,所述第一应用程序至少包括flash应用程序。

优选的,所述利用第一加密算法对所述待保护代码进行加密,包括:

利用第一加密算法对所述待保护代码分段进行加密。

本发明公开了一种对应用程序进行保护的装置,包括:

读取模块,用于读取第一应用程序,确定所述第一应用程序的待保护代码;

加密模块,用于利用第一加密算法对所述待保护代码进行加密;

合并模块,用于将加密之后的代码融入所述第一应用程序中,形成第二应用程序,其中,所述第二应用程序的安全级别高于所述第一应用程序。

通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:

由于目前的应用程序中的代码容易被盗用,存在泄漏的方向,故而本发明公开了一种对应用程序进行保护的方法及装置,首先,读取第一应用程序,确定所述第一应用程序的待保护代码;然后利用第一加密算法对所述待保护代码进行加密;再将加密之后的代码融入所述第一应用程序中,形成第二应用程序。本发明将在第一应用程序中的待保护代码中利用加密算法来进行保护,形成第二应用程序,故而第二应用程序的安全级别高于所述第一应用程序。并且,在调用第二应用程序中的代码时,需要解密才能够获得正确的代码,不然则会报错,以此来增加对应用程序的保护,提高应用程序的安全性能。

附图说明

图1为本发明实施例中一种对应用程序进行保护的方法的实施过程图;

图2为本发明实施例中一种对应用程序进行保护的装置的组成示意图。

具体实施方式

目前的应用程序中的代码由于使用actionscript脚本语言来进行编写,非常容易被违法者盗用,因此,需要一种方法能够对actionscript编写的代码进行保护,以提高被hack(网络黑客)逆向破解的门槛或者时间,从而对自己的知识产权进行保护。

为此,本发明提供了一种更好的方法来对应用程序所编写的代码进行保护。

通过在正常的代码中插入不会产生任何执行效果的代码,比如对代码中的一个需要使用的数据事前先进行加密,然后使用时再使用解密算法来对数据进行解密,从而可以加大代码的复杂度。同时还可以引入多种加密算法来对数据进行加密,并且可以进行分段解密,从而将现有的功能代码变得非常复杂,从而比较好的能够干扰网络黑客分析其中的执行逻辑,增加其工作量,提供被逆向破解的门槛。

为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。

参看图1,是本发明公开的一种对应用程序进行保护的方法的实施过程图。

下面请看本发明的方法的具体实施过程,包括:

步骤11,读取第一应用程序,确定所述第一应用程序的待保护代码。

在此步骤的具体实施过程中,第一应用程序包括但不限于是flash应用程序,视频直播应用程序等等,当然其他应用程序也可以。

第一应用程序实际上是由很多各种类的代码组成的,通过执行这些代码来完成第一应用程序的各种功能。

而第一应用程序中的待保护代码,是一些满足预设机制或者条件的代码。例如该代码的重要程度达到预设的重要程度阈值,即可以作为待保护代码。再例如,第一应用程序中的某些代码是核心代码,不想被第三方违法调用,则可以将其作为待保护代码,例如变量取值、函数取值等等,可以将具体的值作为待保护代码。又例如,不管该代码的实际重要程度如何,只要开发者认为其很重要,则可以人为规定该代码为待保护代码。

当确定了待保护代码之后,则会执行下面的步骤。

步骤12,利用第一加密算法对所述待保护代码进行加密。

步骤13,将加密之后的代码融入所述第一应用程序中,形成第二应用程序。

本发明的主要目的是为了避免待保护代码被第三方违法调用,则需要对待保护代码进行加密,加密之后的代码,然后将加密之后的代码融入所述第一应用程序中,形成第二应用程序。

第二应用程序可以理解为第一应用程序的代码被加密之后形成的应用程序。故而第二应用程序和第一应用程序实际上是类似的,唯一的区别是第二应用程序的安全级别高于所述第一应用程序。因为第一应用程序的代码被加密了,增加了第二应用程序的安全,降低了被破解的风险。

按照本发明的方式,在解密时,只有按照对应的方式解密,才能够获取到原本的待保护代码,进而可以实现对待保护代码的保护,比较好的能够干扰网络黑客分析其中的执行逻辑,增加其工作量,升高逆向破解的门槛,降低第一应用程序的代码被盗用的风险,提高第一应用程序的安全。

针对待保护代码中的不同的数据,本发明采用了多种方式对待保护代码进行加密,本发明罗列的加密方式可以单独使用一种,也可以是几种相结合共同对待保护代码进行加密保护。

下面介绍加密的几种方式:

第一种方式:若第一应用程序的代码中具有变量时,可将其作为待保护代码进行加密保护。

在此方式的具体实施过程中,先确定出所述待保护代码中的变量的具体值;然后利用所述第一加密算法对所述变量的具体值进行处理,获得加密值;再利用所述加密值替代所述变量的具体值融入到所述待保护代码中。

对于加解密的代码通常代码可读性非常差,并且全是对数据的逻辑运算,如果将正常的代码逻辑中引入加解密的代码函数则非常好的起到对真实逻辑隐藏保护的功能。同时对于一些变量如果事先使用加密的值,在具体使用时再使用解密值,则很好的对变量进行保护,不易从代码中看出变量的具体值。

举例如下:

假设代码中有一个循环是用于对一段字符串进行解密操作,同时如果该段循环的循环次数和解密的key值使用常量存储则很容易知道需要解密的字符串的长度以及解密的key值,单如果对这2个值都进行加密则可以比较好的对代码进行保护的功能。

故而,当所述变量值包括:循环次数值、解密密码key值时,所述利用所述第一加密算法对所述变量的具体值进行处理,获得加密值,包括:利用des.decode(times)作为加密值,以替代所述循环次数值;利用des.decode(key)作为加密值,以替代所述变量值的解密密码key值。

假设原始代码如下:

从上述代码中则很容易知道其循环的次数是6次,其中解密的key值是45。

通过对代码引入加解密算法则可以使得代码复杂很多,引入加密算法后代码如下:

charpassword[]=“dxewqe”;

intkey=xx;

可以实现使用加密算法来对key进行加密,从而上述语句对key的赋值则是使用加密后的值。假设使用的是des加密算法。

上述代码则看不到循环的循环次数常量,同时也看不到解密时具体使用的什么值来解密。

在另一种可能的情况中,对于加解密的代码通常我们的使用方法是调用其提供的接口函数来对数据进行加解密,从而使得代码可读性更好,整个代码结构也更清晰。由于加解密算法都是公开的原始代码,所以本文并不是直接调用原始代码接口,而是直接在代码中引入加解密的函数代码,从而对重要代码进行膨胀,使其变得更为复杂。本发明的第二种方式和第三种方式则是对该过程的说明。

第二种方式:可以将第一加密算法中的源代码加入到第一应用程序的代码中,进而使得第一应用程序的代码复杂化,增加破译代码的难度,进而起到保护的作用。具体来说,需要先获得所述第一加密算法的函数代码;然后将所述第一加密算法的函数代码融入所述待保护代码中。

第三种方式:如果所述待保护的代码原本就是加密代码(例如加密的字符串)时,而加密代码对应有解密接口函数,所述解密接口函数用于对所述加密代码进行解密。那么本发明可以将解密接口的函数代码直接加入第一应用程序的代码中,来复杂化第一应用程序的代码。具体来说,先获得所述解密接口函数的函数代码;将所述解密接口函数的函数代码融入所述待保护代码中。

举例来说,假设需要去解密一个加过密的数据data值。并使用加密算法tea算法来对数据进行解密。

原先的代码可能是:intdecodekey=tea.decode(data,key)

其中tea.decode则是tea加密算法的解密接口。

其中data则是需要解密的数据,key则是解密需要使用的key值。

其中intdecodekey则是得到解密的原始值。

这种方式则是直接调用的tea加密算法的解密接口来对数据进行解密。

而本文则是直接在代码中使用tea的解密算法融合进来,从而使得代码变得复杂。

假设tea算法的解密接口代码如下:

本文则直接在调用的地方直接引入解密代码,如下:

最终decodekey则是最终解密出来的数据。从而使得由原本的一行代码变成很多行代码,并引入了一些逻辑运算代码,从而不容易读懂该代码的含义。

第四种方式,对于加解密的代码通常我们的使用的都是开源的加解密算法,从而容易被网络黑客猜测出来具体的算法是什么,而如果对算法稍作修改则可以使得算法计算的值和使用开源算法计算的值不一样,从而对于从原始代码中找到那处代码被修改过将会非常耗时。而对于一些加解密算法如果对代码进行修改可能不能保障代码能够解密出正确的值,所以只能用于已知固定的值通过算法能计算出另一个固定的值。在具体的实施过程中,首先将所述第一加密算法修改为第二加密算法;利用所述第二加密算法对所述待保护代码进行加密。具体来说,是利用所述第二加密算法对所述待保护代码中的具体数值进行加密,获得加密后的加密数值;再利用所述加密数值替换所述具体数值融入到所述待保护代码中。

本发明涉及的第一加密算法可以包括:tea加密算法、rsa加密算法、aes加密算法、des加密算法或其他加密算法。

本发明以des算法进行举例,des是一个迭代的分组密码,使用称为feistel的技术,其中,将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。des使用16轮循环,使用异或,置换,代换,移位操作四种基本运算。

举例来说,假设原始值是45,那么经过修改后的加密算法加密后会得到90,那么则在原始代码中使用90作为其key值。

如对于字符串加密可以是要异或算法来对字符串进行机密,那么字符串使用同一个key值异或2次则还原出原始的字符串。

charpassword[]=“abcdef”;

则可以实现使用90做为异或key来对字符串先进行加密。

加密后password[]=“;89>?<”;

那么原始代码则使用上述加密后的password。

同时在需要使用password的代码处,则先使用加密算法来对数据45进行加密,从而得到90,然后使用异或算法来对上述的password进行解密则得到原始的password值。从而在原始代码中只会看到加密后的password,并且对数据45这个key值的加密也是使用的变形的加密算法,从而更好的对代码起到了隐蔽的效果。

而在一种可能的实施方式中,由于本发明使用了第二加密算法,故而利用原来的开源算法对第二应用程序进行解密时,得不到原来正确的代码。

参看图2,基于同一发明构思,本发明还公开了一种对应用程序进行保护的装置,包括:

读取模块21,用于读取第一应用程序,确定所述第一应用程序的待保护代码;

加密模块22,用于利用第一加密算法对所述待保护代码进行加密;

合并模块23,用于将加密之后的代码融入所述第一应用程序中,形成第二应用程序。其中,所述第二应用程序的安全级别高于所述第一应用程序。

通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:

由于目前的应用程序中的代码容易被盗用,存在泄漏的方向,故而本发明公开了一种对应用程序进行保护的方法及装置,首先,读取第一应用程序,确定所述第一应用程序的待保护代码;然后利用第一加密算法对所述待保护代码进行加密;再将加密之后的代码融入所述第一应用程序中,形成第二应用程序。本发明将在第一应用程序中的待保护代码中利用加密算法来进行保护,形成第二应用程序,故而第二应用程序的安全级别高于所述第一应用程序。并且,在调用第二应用程序中的代码时,需要解密才能够获得正确的代码,不然则会报错,以此来增加对应用程序的保护,提高应用程序的安全性能。

尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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