(上海财经大学浙江学院,浙江 金华 321015)
择要:随着Flash动画商业代价的不断提升,各种加密和解密软件也应运而生,如何有效地保护动画作品是一个值得磋商的问题。首先对Flash文件进行理解析,然后阐述了几种保护Flash动画的加密方法,并对几款干系的加密软件进行了测试比较,得出用加壳打包类软件进行加密比较安全。

0弁言

Flash是Micromedia公司开拓的一款动画制作软件。许多爱好者利用Flash制作出精良的动画作品,并上传至闪客帝国、TOMFlash动画频道等专业网站进行学习与互换,极大地推动了Flash等多媒体技能以及动画的传播与发展[1]。随着Flash作品的商业代价的剧增,各种加密和解密软件也应运而生,个别用户造孽利用解密软件严重危害了用户的知识产权。如利用硕思闪客精灵软件,将SWF文件反编译成FLA文件提取各个元素。为了防止作品未经容许被盗用或恶意修正,有必要对SWF作品加密方法进行研究。
关于动画加密,国内外一些学者和公司进行了相应的研究,如Micromedia公司在Flash软件中自带了防止导入功能。慧峰信源科技有限公司研发的网刃平台支持对SWF文件和FLA文件的加密。文献[2]对Flash动画的内容特色提取进行了深入的研究,并用VC++软件开拓了一个提取平台。文献[4]提出了基于Flash动画的信息隐蔽算法。文献[5]对SWF文件的版权保护设计了一个加密器,在一定程度上防止了反编译软件的攻击。文献[6]对基于AES的Flash加密办法进行了研究。文献[7]对利用AESCCM模式进行数据加密进行了研究。目前为止,虽然理论研究较多,但是实践很少,对现有的软件先容险些没有,因此,本文先对SWF文件进行解析,然后对现有的SWF加密软件和方法进行磋商与实践。
1Flash文件解析
Flash能把文本、图形、图像、动画、声音、视频以及交互办法等领悟为一个整体[1],制作成基于“流技能”的动画。 Flash动画的文件格式紧张有两种,即源文件格式(.FLA文件)和播放文件格式(.SWF文件),源文件可以通过Flash动画制作软件修正和编辑,播放文件须要通过其他专业软件反编译后才能修正,本文所指文件为SWF格式文件。
SWF文件与XML文件的内部构造相似[2],采取二进制标签对动画文件中的各个工具、效果以及交互办法进行定义。SWF文件由三部分组成:文件头(Header)、文件主体(Body,由多个Tag组成)、文件结束标签(End Tag),其构造如图1所示。
文件头定义了SWF动画的基本信息,如文件的版本、文件大小、是否压缩、帧频、影格大小、总的帧数等[3]。SWF中的标签又可以分为定义型标签和掌握型标签两种。标签的组织顺序可以任意排列,但必须遵照先定义后引用、先定义后掌握的规则,声音流标签必须按顺序播放,结束标签只能有一个,而且必须是末了一个。部分加密软件是通过修正SWF的文件头,从而导致SWF解析器在对SWF文件解析时出错来达到加密目的。
2Flash动画加密方法
传统的数字版权保护紧张有以下几种:(1)通过在产品中内置注册体系的软件保护办法。(2)在表面加一个加密外壳,从而担保程序不被别人盗用或改写。(3)通过硬件办法对软件产品进行保护,紧张采取USB卡、加密狗等。前两种一样平常统称为软保护。第(3)种为硬件加密方法,一样平常认为硬件加密最安全,但是必须用光盘分发,不能通过互联网大范围传播,在SWF动画加密中一样平常不采取。
2.1利用Flash自带的防止导入功能
Flash作品的保护或加密,最原始的办法便是防止导入。即防止将SWF导入到Flash软件中提取各种特色元素。比如,当把一份精良的SWF动画发布到网上后,经由一段韶光,会创造动画中的各种元素(Flash中称为元件)涌如今了别人的动画中。为了防止导入Flash动画提取元素,可以通过Flash软件本身的“防止导入”功能实现大略的加密。详细方法是,在Flash “文件”菜单下,选择“发布设置”命令,然后选择“Flash” 选项卡,选取“防止导入”,不才面的密码区输入“防止导入”的密码进行发布。该密码只有在源文件中可以看到。
2.2利用ActionScript编程
在Flash软件中,可以利用ActionScript编写代码掌握动画的播放以及与用户实现交互,也可以通过编写代码对动画进行加密。ActionScript是一种程序设计措辞,它的语法构造与JavaScript的语法构造基本相似,在播放时,由Flash Player中的ActionScrip虚拟机来阐明并实行[8]。Flash的最新版本是FlashCS6,脚本措辞为ActionScript3.0,简称AS3。在用Flash制作动画时,可以利用AS3脚本措辞在程序代码中设置口令、韶光锁、地址限定、屏蔽右键和限定下载等功能。
2.2.1设置口令或韶光限定
例如,下面的代码实现了根据口令或在限定韶光内播放动画的功能。
stop;
Daylimit=new Date(2016,1,1);
todayDate=new Date;
_root.onEnterFrame =function{
if(Key.isDown(13)){
if(a==\"大众password\公众)||(todayDate<Daylimit)
{ fscommand(\"大众fullscreen\公众,\"大众true\"大众);gotoAndPlay(2);}
else fscommand(\"大众quit\公众,\"大众true\"大众);}}
图2Flash读取XML文件过程这种代码编写方法普通易懂,安全性也较低。可以进一步改进,将密码与韶光存储在独立存放的XML文件中,然后通过读取XML文件内容天生密码和比对韶光,但是程序编写要繁芜得多。Flash读取XML文件的内容须要有路径的定义、URL的要乞降加载过程,与读取外部图片或声音的方法类似但调用的类不同。读取XML的过程如图2所示。
2.2.2利用LoadMovie命令
在把Flash作品发布成SWF文件之前,可以将源文件分割成多个子文件,然后把各个.fla子文件分别发布成播放文件(如“child1.swf”、“child2.swf”等),并放在不同的路径下,以相互嵌套的办法调用,可以起到保护作品的浸染。由于当该作品被其他用户下载时,用户只能下载它的主文件,而其他子文件不能被下载。利用LoadMovie函数调用Flash子文件的方法为:LoadMovie(“某路径下的子文件childx.swf”,“mySWF”)。个中的路径可以是相对路径或绝对路径,x必须为详细数字,如child1.swf。
2.3利用Flash专业加密软件
利用专业软件对Flash作品进行加密更安全,但是一样平常都须要付费,如 GeneralEncryptor 、Swfkit、DoSWF等。这些软件对SWF加密紧张利用了动态内存修正技能(DMM)、ActionScript 稠浊技能、加壳打包技能、绑定硬件(CPU、网卡、硬盘)技能等。
2.3.1动态内存修正技能
动态内存修正技能类加密软件有DoSWF、Flashincrypt和SWFEncrypt等,它们都是SWF文件加密工具,能防止SWF文件被反编译成源文件,常日利用动态内存修正技能和脚本稠浊技能进行保护。DoSWF软件采取一些工具做代码稠浊,降落了程序的可读性,纵然被破解了,也很丢脸懂,这种方法实在可以称之为加密代码。但是加密后的文件会明显变大,为了避免加密后文件过大的问题,可以在加密前先将FLA源文件分解并天生多个SWF文件,然后再进行逐个加密。
2.3.2加壳打包技能
Swfkit是一款精良的加壳打包软件,它不仅能创建 Flash播放程序或屏幕保护程序,而且能为它们建立安装程序。用该软件打包的EXE文件不随意马虎被还原,由于它打包的格式不同于Flash软件中打包的EXE,而且调用IE中的Flash控件进行播放,因此,Flashtool、Exe2swf等软件无法将其反编译;利用硕思闪客精灵、ImperatorFLA、闪客精灵之锤等破解软件也不能提取作品中的元素。常用的加壳打包类加密软件还有网刃数字版权保护平台、FlashJestor、Swfkit、Iceprojector、Swishstudio等。
2.3.3硬件绑定模式
GeneralEncryptor不仅支持SWF文件加密,而且也支持FLA文件加密。用户可以选择不同的硬件绑定模式对用户机器进行绑定,如选定CPU、主板、Flash硬盘、网卡等设备进行“一机一码”办法的授权;它还支持水印效果、播放次数限定、有效期设置。常用的硬件绑定类加密软件还有FlashEncryptor、EasySWF、SWFprojection等。
3几种加密软件的比较
为了验证SWF加密软件的功能,制作了一个Flash动画,并选用了几种常用加密和解密软件的试用版进行了干系实验,结果如表1所示。
通过实验创造,(1)Exe2swf解密软件功能较强,能将Flash播放器天生的EXE文件解密成SWF文件,并通过解析SWF文件读取文件头,显示文件的基本信息,包括:文件版本、文件大小、是否压缩、影格大小、影格比例、总帧数。(2)SWFEncrypt、DoSWF等软件的加密功能一样平常,加密后天生的SWF文件明显变大,而且能被硕思闪客精灵解密并提取元素;(3)加壳打包类软件的加密功能比较强大,不能被Exe2swf解密,只是加密后天生的EXE文件明显变大。由此可知,从安全角度考虑,加密时建议选取加壳打包的方法。
4结束语
本文针对Flash动画的加密方法进行了磋商与实践。虽然市场上涌现了各种各样的SWF加密软件,但是仍无法抵制一些著名的专业解密软件和破解方法。因此,只有不断增强全民的知识产权保护意识,倡导购买或利用经由授权的作品或软件,才能将盗版征象降落到最低限度。
参考文献
[1] 詹青龙,吴学会,宗哲玲. Flash二维动画设计与制作[M]. 北京:清华大学出版社,2010.
[2] 徐振国,孟祥增.Flash动画的内容特色提取研究[J].电化教诲研究,2015(6):5560.
[3] 倪应华,金炳尧.SWF矢量动解析框架设计[J].打算机系统运用,2010(3):202205.
[4] 张晓彦,张晓明.基于Flash动画的信息隐蔽算法[J].打算机工程,2010(1):181183.
[5] 王继州,袁雪霞.一种SWF文件保护大略实现方案[J].数字技能与运用,2012(8):169171.
[6] 邹蕾. 基于AES的Flash加密实现[J].电脑编程技巧与掩护,2014(22):115116.
[7] 仇国庆,包俊杰,曹冬梅,等. 基于AES算法的ZigBee网络加密方法研究[J].电子技能运用,2014,40(4):5658.
[8] 陈银凤. Flash中利用Action Script3.0实现图像的扭曲效果[J].微型机与运用,2012,31(16):3537.






