一种对Flash代码进行保护的方法及装置与流程

文档序号:11251237阅读:433来源:国知局
一种对Flash代码进行保护的方法及装置与流程

本发明涉及网络直播技术领域,尤其涉及一种对flash代码进行保护的方法及装置。



背景技术:

目前,flash被广泛的用于网页设计和网页动画制作及网页视频播放等。大多数的视频网站,包括直播网站都采用flash做为其视频播放器,并且大多数的网页游戏也会使用flash来开发。swf(smallwebformat,小型网页格式)文件是常见的flash动画文件,而swf文件的代码是使用actionscript脚本语言来进行编写。而actionscript脚本语言很容易被黑客反向破解,并且反向破解后代码和原始的代码差不多,因此,黑客很容易弄清楚其中的实现逻辑并实施攻击。

综上,现阶段急需一种方法能够对flash代码进行保护,以提高被黑客反向破解的难度,从而对降低黑客入侵的风险。



技术实现要素:

本申请实施例通过提供一种对flash代码进行保护的方法及装置,解决了现有技术中的flash代码容易被反向破解,存在严重的数据的安全隐患的技术问题。实现了提高flash代码被黑客反向破解的难度,降低黑客入侵的风险的技术效果。

一方面,本申请通过本申请的一实施例提供如下技术方案:

一种对flash代码进行保护的方法,包括:

获取待保护的第一组flash代码;

在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。

优选地,所述在所述第一组flash代码中加入混淆代码,获得第二组flash代码,包括:

在所述第一组flash代码中加入无效的循环语句,获得所述第二组flash代码。

优选地,所述循环语句,具体为:

多层套嵌的循环语句。

优选地,所述在所述第一组flash代码中加入混淆代码,获得第二组flash代码,包括:

在所述第一组flash代码中加入虚假的网络协议包,获得所述第二组flash代码。

优选地,所述在所述第一组flash代码中加入混淆代码,获得第二组flash代码,包括:

在所述第一组flash代码中加入虚假的网络数据下载代码,获得所述第二组flash代码。

另一方面,本申请通过本申请的一实施例,提供如下技术方案:

一种对flash代码进行保护的装置,包括:

获取模块,用于获取待保护的第一组flash代码;

添加模块,用于在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。

优选地,所述加入模块,包括:

第一添加子模块,用于在所述第一组flash代码中加入无效的循环语句,获得所述第二组flash代码。

优选地,所述循环语句,具体为:

多层套嵌的循环语句。

优选地,所述加入模块,包括:

第二添加子模块,用于在所述第一组flash代码中加入虚假的网络协议包,获得所述第二组flash代码。

优选地,所述加入模块,包括:

第三添加子模块,用于在所述第一组flash代码中加入虚假的网络数据下载代码,获得所述第二组flash代码。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

在本申请实施例中,公开了一种对flash代码进行保护的方法,包括:获取待保护的第一组flash代码;在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。由于在在第一组flash代码中加入混淆代码,使得第一组flash可以隐藏在混淆代码中,这增加了反向破解的难度,黑客难以基于第二组flash代码获得第一组flash代码,也就难以基于第一组flash代码进行恶意攻击。所以,有效地解决了现有技术中的flash代码容易被反向破解,存在严重的数据的安全隐患的技术问题。实现了提高flash代码被黑客反向破解的难度,降低黑客入侵的风险,提高数据安全的技术效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中一种对flash代码进行保护的方法的流程图;

图2为本申请实施例中一种对flash代码进行保护的装置的结构图。

具体实施方式

本申请实施例通过提供一种对flash代码进行保护的方法及装置,解决了现有技术中的flash代码容易被反向破解,存在严重的数据的安全隐患的技术问题。实现了提高flash代码被黑客反向破解的难度,降低黑客入侵的风险的技术效果。

本申请实施例的技术方案为解决上述技术问题,总体思路如下:

一种对flash代码进行保护的方法,包括:获取待保护的第一组flash代码;在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

实施例一

本实施例提供了一种对flash代码进行保护的方法,如图1所述,包括:

步骤s101:获取待保护的第一组flash代码。

步骤s102:在第一组flash代码中加入混淆代码,获得第二组flash代码,其中,混淆代码在被执行时不会影响到第一组flash代码对应功能的正常实现。

在具体实施过程中,所述混淆代码在运行时,不会对原flash代码(即:第一组flash代码)造成任何影响,不会影响到原flash代码的相关功能的实现。

在具体实施过程中,所述混淆代码可以为:无效的循环语句、虚假的网络协议包、虚假的网络数据下载代码。

其中,所述是无效的循环语句是没有任何用处的循环语句代码;所述虚假的网络协议包中携带有无效的ip(internetprotocol,互联网协议)地址,无法成功创建网络链接;在所述虚假的网络数据下载代码中携带有无效的网络链接,无法下载网络数据。这些混淆代码在运行时不会影响到原flash代码(即:第一组flash代码)的相关功能的实现。这些混淆代码的真实作用是为了隐藏原flash代码,通过将原flash代码隐藏在大量的混淆代码中,获得了第二组flash代码,这样,大大增加了黑客分析原flash代码的难度,有效降低了原flash代码被反向破解的概率,降低了被黑客攻击的风险,从而提高了数据的安全。

具体来讲,在执行步骤s102时,可以有以下三种方式:

方式一:在第一组flash代码中加入无效的循环语句,获得第二组flash代码。

在阅读代码时,如果代码中有循环语句,则会增加读懂代码的难度,而如果有多重循环语句,则耗费的时间会更多。

因此,在本方法中,通过设计一些循环语句来膨胀代码的代码数量,同时也打乱原有的执行流程,从而可以比较好的提高读懂此段代码的时间和门槛。而在循环语句中可以加入一些不会产生任何效果的代码(比如:可以创建一些显示对象,然后再进行删除;或者,执行一些无用的加减乘除算法来计算一个数据的结果;或者,在循环语句中增加输入一个参数,然后在循环语句中对参数进行复杂的运算后,再对参数进行还原操作;等等),从而使循环语句在被执行时不会影响到第一组flash代码对应功能的正常实现。

具体的一种实现举例如下:

同理,还可以在上述代码中添加其他类型的更多的无用的代码,从而将真实需要执行的逻辑(例如:第一组flash代码)隐藏到一大堆无用的代码中,可以很好的起到对抗被反向破解的效果。同时,对于这种循环代码还可以套嵌多层,从而使得代码更为复杂。

至此,就可以实现在flash的代码中插入一些不干扰正常程序执行的无用的循环代码,从而增加反向破解的难度的效果。

方式二:在第一组flash代码中加入虚假的网络协议包,获得第二组flash代码。

对于分析一个flash的功能代码,如果其中有网络协议数据的往来,通常都会认为是一个客户端服务器协议交互来完成的功能,从而其分析成本会更高。

因此,在本方法中,可以在第一组flash代码中引入一些数据计算并构造一些虚假的网络协议包。具体来讲,可以在数据计算后,将计算结构打包成网络数据包,然后调用网络进行发送,而由于不能对正常程序进行干扰,所以可以创建一个失败的网络链接,然后调用网络来发送,最终该网络包是永远发送不成功,从而不会对原flash代码(即:第一组flash代码)造成干扰,同时在原始代码中引入了网络发包和计算能够使得代码更为复杂。

具体的一种实现举例如下:

intkey=123;

//变量key,其中值是123。

添加一些对key进行复杂运算的代码,例如:

key=key+xxx;

key=key*xxx;

然后,创建一个失败的网络来发送数据

varmysocket:socket=newsocket();

创建一个网络套接字

mysocket.connect(ip,port);

网络套接字链接ip地址。

其中,第一个参数ip可以填入一个肯定失败的ip地址,从而网络链接是创建不成功的。

mysocket.writeutfbytes(key);

将数据计算结果写入到网络套接字发送出去,其中,这个数据永远发送不出去,从而不会干扰原flash代码(即:第一组flash代码)。同时,其中也会使用到原flash代码(即:第一组flash代码)的变量,但是不会影响原flash代码(即:第一组flash代码)的逻辑,从而使得混淆代码更真实。

至此,就实现了在第一组flash代码中加入虚假的网络协议包的代码,从而增加反向破解的难度的效果。

方式三:在第一组flash代码中加入虚假的网络数据下载代码,获得第二组flash代码。

由于在逆向破解中,如果程序中部分功能是通过下载另一个flash代码来完成的,那么对于逆向破解者来说则需要首先下载另一个flash组件,然后分析另一flash组件的功能,从而才能完全分析清楚整个功能的实现逻辑。而其中下载组件的网络链接可以填一个虚假的网络链接,从而不会真正下载一个真实的flash组件,所以不会影响正常的程序执行。

具体实现加入一个下载另一flash的组件功能如下:

首先,定义一个actionscript的组件loader,用于加载swf文件。

privatevarswfloader:loader=newloader();

对加载的swf文件注册一个事件,用来感知到swf文件加载完成,加载完成后会触发swfcomplete函数的执行。

swfloader.contentloaderinfo.addeventlistener(event.complete,swfcomplete);

然后,从网络上加载swf文件。

调用loader的接口load来从网络中加载swf文件。

其中,urlrequest("htttps://xx.swf")标示从网络中加载xx.swf

swfloader.load(newurlrequest("htttps://xx.swf"));

最后,编写回调接口,回调接口中完成对swf文件的校验。

swfcompletehandler则是上面注册的swf加载完成后的回调函数。

privatefunctionswfcompletehandler(evt:event):void

{

此处,可以加入对数据的运算操作,而此段代码在正常流程中并不会执行,由于请求的url(uniformresourcelocator,统一资源定位符)地址是一个错误的地址,所以不会下载出一个正确的flash组件,从而可以在此段代码中加入各种各样的干扰代码。

}

至此,就实现在原始代码中加入虚假的网络数据下载代码,从而增加反向破解的难度的效果。

作为一种可选的实施例,可以在执行步骤s102时,可以将上述三种方式任组合叠加使用,并且对每种方式可以使用多次,从而可以起到混淆程度更大,反向破解更复杂的效果。

上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:

在本申请实施例中,公开了一种对flash代码进行保护的方法,包括:获取待保护的第一组flash代码;在第一组flash代码中加入混淆代码,获得第二组flash代码,其中,混淆代码在被执行时不会影响到第一组flash代码对应功能的正常实现。由于在在第一组flash代码中加入混淆代码,使得第一组flash可以隐藏在混淆代码中,这增加了反向破解的难度,黑客难以基于第二组flash代码获得第一组flash代码,也就难以基于第一组flash代码进行恶意攻击。所以,有效地解决了现有技术中的flash代码容易被破解,存在严重的数据的安全隐患的技术问题。实现了提高flash代码被黑客反向破解的难度,降低黑客入侵的风险,提高数据安全的技术效果。

实施例二

基于同一发明构思,本实施例提供一种对flash代码进行保护的装置,如图2所示,包括:

获取模块201,用于获取待保护的第一组flash代码;

添加模块202,用于在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。

其中,所述第二组flash代码的安全级别高于所述第一组flash代码的安全级别。

作为一种可选的实施例,加入模块202,包括:

第一添加子模块,用于在所述第一组flash代码中加入无效的循环语句,获得所述第二组flash代码。

作为一种可选的实施例,所述循环语句,具体为:多层套嵌的循环语句。

作为一种可选的实施例,加入模块202,包括:

第二添加子模块,用于在所述第一组flash代码中加入虚假的网络协议包,获得所述第二组flash代码。

作为一种可选的实施例,加入模块202,所述加入模块,包括:

第三添加子模块,用于在所述第一组flash代码中加入网络数据下载代码,获得所述第二组flash代码。

由于本实施例所介绍的对flash代码进行保护的装置为实施本申请实施例中对flash代码进行保护的方法所采用的装置,故而基于本申请实施例中所介绍的对flash代码进行保护的方法,本领域所属技术人员能够了解本实施例的对flash代码进行保护的装置的具体实施方式以及其各种变化形式,所以在此对于该对flash代码进行保护的装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中对flash代码进行保护的方法所采用的装置,都属于本申请所欲保护的范围。

上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:

在本申请实施例中,公开了一种对flash代码进行保护的装置,包括:获取模块,用于获取待保护的第一组flash代码;添加模块,用于在所述第一组flash代码中加入混淆代码,获得第二组flash代码,其中,所述混淆代码在被执行时不会影响到所述第一组flash代码对应功能的正常实现。由于在在第一组flash代码中加入混淆代码,使得第一组flash可以隐藏在混淆代码中,这增加了反向破解的难度,黑客难以基于第二组flash代码获得第一组flash代码,也就难以基于第一组flash代码进行恶意攻击。所以,有效地解决了现有技术中的flash代码容易被破解,存在严重的数据的安全隐患的技术问题。实现了提高flash代码被黑客反向破解的难度,降低黑客入侵的风险,提高数据安全的技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

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

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