分享
 
 
 

把SWF反编为FLA的技术的讨论

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

将任何一个SWF文件完美还原成FLA原始代码!”,笔者第一次看到此消息时有些震惊。在此之前,相信众多喜欢Flash动画的朋友都是使用SWF Scaner、闪客快斧、Action Script Viewer等来分解SWF文件内部的图片、音乐甚至动作脚本(Action Scripts)等信息,对于SWF还原为FLA文件,不会抱有太大的奢望,不过今天,这一切似乎成为了现实,究竟是什么软件拥有这么大的魔力?

是什么?

IMPERATOR °FLA是一个将SWF文件还原为FLA文件的工具。只要您的系统中安装有Macromedia Flash MX以上版本,就能够利用此软件将已经编译好的SWF文件还原成FLA源文件,这个FLA文件中包含所有的图片、影片、音乐甚至AS信息,您完全可以使用Macromedia Flash软件对其回炉再造,重新编译成需要的SWF文件。

是真的吗?

IMPERATOR °FLA的使用非常简单,在其官方网站(www.ave-imperator.com)可以下载最新的Demo版,若您的Windows中有Macromedia Flash MX(MX 2004)和DirectX 8以上版本,软件安装完毕后就会自动启动。

笔者首先使用IMPERATOR °FLA反编译了一款自己制作的简单Flash动画,这个动画只包含一些渐变的信息,没有使用任何AS。对比源文件(如图1)和使用SWF反编译生成的FLA文件(如图2),可以明显看到反编译后的文件生成了比源文件多的多的层,不过二者的库文件一模一样,编译导出的SWF文件效果也一样,只是中间实现的方法不同。

随后笔者又反编译了一个复杂的Flash动画,生成的FLA文件更加复杂,值得注意的是,IMPERATOR °FLA将一些遮罩与渐变的效果分解成了一帧帧的组件,但对于稍微有些Flash制作知识的朋友来说,很容易将这些换成补间动画。

由于Demo版的软件屏蔽了AS还原功能,所以笔者不能够考察IMPERATOR °FLA还原SWF文件中动作脚本的程度,不过从还原后重新编译生成的SWF文件与原作相同来看,IMPERATOR °FLA的能力非常出众,虽然它不能将SWF文件还原为与原始文件相同的FLA文件(中间实现方法有很大不同),但我们完全能够使用它来提取Flash动画中的所有素材并研究优秀Flash动画的实现方法。

实现分析

将SWF还原为FLA源文件,听起来是多么不可思议!不过从网上流行的各种语言的反编译器来看,SWF文件的反编译并不是什么新鲜事。

以Java语言为例,网上至少有3~4种Java语言的反编译器,据使用过的人说,其中有些反编译器效果极好,能把那些。class结尾的文件反的一点不差。而微软最新的。Net Framework由于采用了中间层,实现跨平台、跨语言的中间代码,并在类似虚拟机的环境中运行,导致了MSIL(微软中间语言)反编译为C#或VB.NET等源代码并非难事。再以Zend Encoder编译的PHP源程序为例,网上有Vulcan Logic Disassembler (pecl.php.net/package/vld)可以得到PHP执行时的操作码,若是有对PHP非常熟悉的高手,利用操作码还原PHP源程序也容易许多。

而所谓反编译,根据世界知识产权组织在《WIPO知识产权手册:政策、法律与使用》中的解释,是指一种对计算机程序进行复制和翻译,从而使其编码和结构可被观察和分析的方法。这种方法一般即指通过对计算机软件的目标程序的分析反推出其相应的源程序的过程。

IMPERATOR °FLA翻译了SWF中的编码,使其变得可读和可编辑,虽然与原来在结构上有所不同,但其反编译还是比较成功的。依我猜测,Action Script Viewer等Flash破解软件应该也能从技术上实现这种功能,只不过顾及到Macromedia公司版权的关系,才不“敢”将这些功能放到软件中,由此看来,IMPERATOR °FLA很有可能要承担侵权的风险。

实际上,也有很多人,包括Imperator °FLA已经注意到SWF文件的可反编译。在Imperator °FLA中有一个recovery-protection,可以向SWF文件中添加保护代码,以保护SWF不被Imperator °FLA反编译,一些专门的SWF ActionScript保护工具,如ActionScript Obfuscator (ASO)(www.genable.com/aso)也相继出现在网络上。

利弊

要了解和学习一个软件所包含的思想和原则,必须对软件的源程序进行分析;要获得该软件的各种参数,开发能与该软件兼容的软件也必需获得软件的源程序。然而,为了在市场竞争中取得优势,软件的开发者一般不会将源程序公开。因此,对软件进行反编译就成了软件开发技术人员经常采用的方法。

反编译在软件教学、科研、开发等场合都是一种非常重要的手段。在教学和科研中,为了学习国外先进的软件设计理念,我们经常需要把国外一些机构和个人开发程序反编译来进行分析和借鉴;早期的汉化爱好者把外文版的软件进行反编译,找到目标菜单的源代码,然后把汉语写进去替换相应的外文,汉化人填入汉语的长度不得超过原文的长度,不足的可用空格补齐,然后再进行编译,最终完成外文软件的汉化(现在使用的都是利用了上述汉化原理开发出的专门汉化工具);而在与病毒的斗争中,虽然每个研究人员的工作方式不同,但他们使用的技术是类似的:例如在编译环境下执行病毒程序,观察病毒的行为方式,使用反编译工具分析代码结构。与上述情况类似,有了SWF文件的反编译工具,我们就可以更加方便的学习经典Flash的制作方法,从技术和设计思想上提高整体的Flash设计水平。

不过反编译的弊端也显而易见,这类工具落到一些不尊重其他人劳动成果的“小人”手中,会成为其剽窃的利器,这种侵权行为我们将在下面讨论。

侵权?

对软件或者Flash作品的反编译,无疑会引起版权冲突,那么,究竟反编译是否违反版权法?我们怎样才能利用反编译来学习先进的设计理念和技术手段,以提高自己的水平?那就要从著作权保护的原则和相关法律来进行分析。

世界知识产权组织在《WIPO知识产权手册:政策、法律与使用》中认定:软件合法用户对软件进行反编译的行为,只要不利用所获取的信息开发相似的软件,并不会与著作权所有人正常使用软件冲突,也不会对著作权所有人的合法权益造成不合理的损害。各国政府基本上都使用此原则对侵权案件进行审理,如美国、欧盟、中国的相关法律部门都认为:只要反编译并非以复制软件为目的,在实施反编译行为的过程中所涉及的复制只是一种中间过渡性的复制,反编译最终所达到的目的是使公众可以获得包含在软件中不受著作权保护的成分,这样的反编译并不会被认为是侵权。

根据以上原则和相关法律,我们对软件和Flash作品进行反编译,以学习其思想、处理过程、操作方法、数学概念等不属于侵权。也就是说只要你的反编译目的纯良(即只是出于学习的目的),在法律上就不视为侵权。但如果你将反编译用于其它目的,比如制作成其他产品进行销售,就侵犯了原作者的著作权。

也就是说,我们使用IMPERATOR °FLA来反编译SWF到FLA文件,来研究Flash动画的设计思想、使用技术,并不构成对原作者的侵权,不过需要注意的是,在这款Flash作品中原创的一些图形、整体表现形式(SWF成品的版权)是受著作权保护的。

笔者并不是著作权方面的法律专家,所了解的也只是一些皮毛,只能泛泛而谈,感兴趣的朋友可以到中国知识产权司法保护网(www.chinaiprlaw.com)阅读相关文章,尤其是一些汉化人士。

道德

既然说到了侵权,就不能不探讨一下软件开发和作品设计中的道德问题。我们可以通过反编译的手段学习某款软件或作品的设计思想,不过将别人的软件或作品反编译并进行修改后,加上自己的版权信息,不仅违反了著作权法,就是从道德上也令人不齿,前段时间闹得沸沸扬扬的QQ万勇版修改自木子版事件,以及恶名昭著的MwIE浏览器都是此类典型,对于这类不道德甚至违法的行为,希望网友们能够共同抵制。

技术从来都是一把双刃剑,将反编译合理使用,将有利于打破国外超级软件企业对软件技术的垄断,有利于中小软件企业开发出更多具有兼容性的软件,从而促进软件产业的健康发展。对于侵权的、不合理的反编译应用,除了计算机使用者的鄙视和抵制外,完善的法律是解决问题的有效途径。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有