如何防止SWF文件被反编译?

作者:佚名 时间:2008-12-06 09:20:00 

这篇文章的标题所提出的问题的答案是“不可能”。至少对我来说是不可能的。借助适当的工具,我们可以反编译任何SWF文件。所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。

我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的最大努力。中国古语有云,“规则只能防君子,不能仿小人”。

公开的文件格式

在讨论之前,我们先要知道,SWF的文件格式是公开的。公开的文件格式,意味着SWF文件并不是只能由Flash生成。其他公司也能制作可以在SWF播放器上播放的SWF文件。公开的文件格式意味着从什么位置获取什么信息是众所周知的,也就意味着每个字节都是众所周知的。因此,如果我有时间来一个字节一个字节的检查SWF文件,我可以了解所有的细节。

当然,对于一个2M大小的SWF文件,我没有时间来逐个字节的检查。因此,我就借助软件来完成这个工作。如果软件遇到问题,我会暂时接管这个工作,检查发生问题的字节。修正它,然后继续。所以,没有什么东西能够掩藏的住,其限制只是我的时间和我的耐性。如果反编译一个SWF文件的酬劳是数百美元的话,我想我会花上数年时间来逐个字节的读取它。

好了,以下是反编译和保护技术之间的战争历史。

防止被导入

伴随着Flash的出现,Macromedia提供给开发者一个“防止导入的口令保护”功能。如果你给SWF文件加上导入口令的话,这个SWF文件就不能被导入了(知道倒入密码除外)。SWF文件不加保护的话,其中的矢量图形可以被导入到fla文件中。这种保护没有什么用处,仅仅是假想的安全。

试想一下,你的SWF被用户的播放器来播放的,你不可能利用用户的播放器来保护你的SWF文件。因此,它是如何来保护SWF文件的呢?很简单,这种保护存在于你所买的Flash开发工具中。Flash开发工具不能导入有(导入)密码的SWF文件。没关系,对吧?我可以用十六进制编辑打开那个SWF文件,删除保护密码,从而也就移除了保护功能。

如此简单,所以忘记导入保护功能吧。

转换成放映机文件并且压缩

如果我将它转化成exe格式的放映机文件,还可以被反编译吗?答案:是的,SWF文件仍然存在其中。借助软件可以很容易的将SWF文件从exe文件中释放出来。压缩可以使SWF文件不能被十六进制编辑器读取,压缩是一种保护措施吗?压缩算法类似于zip算法,很容易被破解。

FLASM AND THE P-CODE

在flash5的时代,出现了两种流行的工具,免费的“Flasm”和商业的“ASV2.0”。Flasm就是“Flashasm”,它将SWF中的字节码解释成可理解的简短代码(p-codes)。比如“a=3”显示为pusha, 3,setVariable;SWF中的字节码是:96 08 00 00 61 00 07 03 00 00001D。如果想学习“SWF格式结构”的话,这是个非常有价值的工具。

程序员喜欢用高级语言(比如:C、C )来开发软件,但是当讲求效率的时候,他们会在其中混合使用低级的汇编语言。因此,有时候开发者会利用Flasm编写低级别的p-codes来增加效率。所以,Flasm编辑SWF中的actionscript是强有力的。你可以参考例子,了解如何利用这种技术来优化3D代码,但是怀有恶意的用户能够“编辑”SWF文件,SWF中的任何保护措施都可以不费力的移除。我们不需要知道密码就可以移除保护措施。

这儿有个通用、知名的技术来保护我们的影片不被偷窃并在其它的范围内显示。我们编辑脚本来检查_url属性,如果_url不是我们(合法)的范围,就使功能失效并显示一条“YouarethIEf”的消息。可是,借助Flasm可以很容易删除这条脚本语句。不需要1分钟便可以破解这种保护措施。

标签:SWF,反编译,flash
0
投稿

猜你喜欢

  • 淘宝首页改版 背后暗藏玄机

    2008-08-18 21:00:00
  • 详解docker搭建redis集群的环境搭建

    2023-07-21 14:02:30
  • Windows2003优化方法简介(下)(1)

    2010-05-16 18:07:00
  • 远程也能修改FTP用户密码

    2009-05-19 09:43:00
  • DEDE模版标记

    2009-05-02 18:29:00
  • 福建网民866万 全国居第六

    2008-02-21 13:37:00
  • 虚拟机Linux桥接模式下设置静态IP详解

    2023-02-13 10:07:45
  • 利用DDOS攻击 网络安全公司大赚其钱

    2007-08-06 17:08:00
  • 用Windows 2003系统架设邮件服务器

    2009-06-10 09:35:00
  • Stiqr——WordPress主题编辑工具

    2010-05-04 14:15:00
  • 网络最烂密码排名

    2010-01-24 18:54:00
  • 如何宣传网站之论坛篇

    2007-10-02 19:23:00
  • Windows Server 2003自带防火墙设置

    2010-07-22 22:51:00
  • 查看linux ssh服务信息及运行状态方法

    2021-09-19 16:18:52
  • 防止局域网内私自IP地址(DHCP)

    2010-03-29 19:10:00
  • GoDaddy主机 什么是ron Job?

    2010-04-12 12:42:00
  • 搜索引擎排名与网站建设seo心得

    2008-06-23 07:28:00
  • 一个有效企业网站比10个业务员的订单还多

    2009-04-29 10:11:00
  • 详解bash中的脚本调试机制

    2023-10-11 03:01:04
  • YouTube影片服务规格升至1080P 近期将上线

    2009-11-17 08:58:00
  • asp之家 网站运营 m.aspxhome.com