破解Flash的利器 2001年 35期 #1透视Flash   SWF Browser是一款重量级的Flash破解利器,它会将swf文件剥皮抽筋,让你看个清清楚楚,当然还能将其为我们所用。你可以到它的大本营http://www.swifftools.com/去下载它。要特别声明的是SWF Browser安装完之后可以注册使用或不注册使用,不注册的话会少掉很多关键性的功能,我们以下的讲解都是按照注册后的版本来的。   #21.主要功能   首先让我们来熟悉一下SWF Browser的界面(^35060102a^)。最上方水平的一条就是SWF Browser的主菜单,从左到右分为3个板块——文件菜单,主功能菜单,附加功能菜单。文件菜单区的两个下拉菜单File和About用处不大,前一个用来退出SWF Browser,后一个主要就是用来注册SWF Browser的。   主功能菜单区里的东西是用来操作控制SWF Browser破解swf文件的,这部分的菜单按钮不是下拉的,而是即按即见效的。其中最主要的就是Show/hide search和Directory Shortcuts,按下它们在软件界面的左侧会分别出现选择文件目录和搜索swf文件的互动窗口:上面的是按Directory Shortcuts后出现的选择文件目录窗口;下面的是按Show/hide search后出现的搜索swf文件窗口。   按下界面中间部分的Start Search按钮,稍等片刻,我们选择的目录下的所有swf文件都被列出来了(^35060102b^),当然,如果你在搜索过程中已经发现了想要破解的swf文件,只要再按一下Start Search按钮就会停止,很方便吧。   介绍过了主功能菜单之后我们接着看附加功能菜单区,这里也有两个按钮,前一个是用来将swf文件做成屏幕保护程序的,后一个有钥匙标志的按钮Unprotect Movie才是SWF Browser的重要附加功能。我们都知道,一些精心制作的Flash动画中有很多好的矢量图素材,只要将swf在Flash中导入就可以得到,但谁想让自己的创意成果为他人所用呢?于是很多有好的素材的swf文件都是保护输出的,不能直接在Flash中导入,Unprotect Movie按钮就是为了破解swf文件的保护而设的,也可以说是在SWF Browser中使用最简单的一项破解功能。只要选中一个设有写保护的swf文件,原本是不可用状态的Unprotect Movie按钮就被自动激活了,我们只要对着它点一下就会有个文件窗口弹出,让我们把破解了保护的swf文件存盘,然后打开Flash将新存的swf导入就可以了,和原来设有写保护的swf分毫不差。   看完了菜单按钮我们再来看看界面最下面的一条控制栏吧(^35060102c^),从左到右也分为三个部分。   第一部分是用来控制swf动画的播放的,以方便我们破解时观看动画;第二部分的第一个按钮Add Favorites是用来将自己一直要用的swf文件添加到Favorites里的,其他几个按钮则是控制Flash动画的显示状况的;最后一部分只有一个按钮,是用来建立.exe可执行文件的。总体来说这条控制栏不很重要,和界面右边的swf文件状态显示窗口(^35060102d^)的作用没法比。swf文件状态显示窗口上方共有5个按钮,可以通过它们了解到swf文件的各个信息。   Graphics按钮不用多说肯定是用来了解swf文件中位图的情况的,选中一个swf文件后对它点一下,在swf中所有的位图文件都原形毕露了,选中一张图片后就能在下方的预览窗口中看见它的尊容,而点一下上方的Save as bitmap按钮的话就会弹出窗口让你将swf中的位图另存为.bmp文件。   Movie Clips按钮(^35060102d^)是用来挑出swf文件中的电影夹组件的,其功能异常强大,不但能挑出主场景下的电影夹组件,更是能将组件内含的电影夹组件一网打尽。如果在主场景下有个电影夹组件,其中还内含另一个电影夹组件,SWF Browser就能自动列出两个独立的电影夹组件。同样选中一个电影夹组件后点上方的Save as swf就能将电影夹组件另存为一个独立的swf文件。   Sound Events按钮负责的是提取swf中的音乐文件,选中一段音乐后按上方的Click number to save就能将其存为一段独立的.mp3文件,用Winamp可以把mp3转为wave文件供你使用。至于Sound Events旁边的Sound Streams按钮就是用来提取声音流的。   SWF Internals按钮没办法将什么东西从swf文件里挖出来,但却能告诉我们整个swf文件的信息(^35060102e^),以一个树形目录来表示。在Header里从上到下分别是签字、版本号、文件大小、最小x坐标、影片的宽、最小y坐标、影片的高、启始帧、播放速度及整个swf文件一共包含多少帧等信息。   好了,主要功能和操作就介绍到这里,下面就让我们选一个swf文件来个实弹演习吧。   #22.实际操作   按前文所述,选择好初始目录后点击Start Search找到自己要破解的swf文件,按一下控制条上的播放按钮就可以先观察一下这段动画。与此同时我们可以发现在软件右边的swf文件状态显示窗口里出现了Sound1、Sound2……Sound6等一列信息(^35060102f^),这说明我们要破解的这个swf文件里有6段声音事件,分别点选它们并用Click number to save将它们另存为.mp3文件,再用Winamp转为wave文件。   将音乐搞定后我们按一下swf文件状态显示窗口上的Movie Clips按钮,会发现该swf文件主场景下有两段电影夹组件,老规矩,将它们分别存盘。因为这段swf在输出时加了写保护,我们要点一下附加功能区里的Unprotect Movie按钮将之解锁并另存为一个swf文件。   还有些重要信息别忘了看,点击Swf Internals按钮,我们就能得知该swf文件宽762,高400,每秒播放21帧,共963帧等重要信息。好了,破解告一段落,让我们打开Flash,来重组这段动画。   打开Flash,新建一个影片,点选Modify下的Movie,将影片的宽设置为762,高设置为400,播放速度设置为每秒21帧,跟原文件一样。设置完影片属性后选择File Import,将破除了保护的swf文件导入到Flash,我们就有了一长串共963个关键帧了,和原来的那个swf文件一样长。   如果你等不及了想先播放一下的话就会发现在原来的swf中有两个动画不动了,变成了静止的图片。那是因为电影夹组件在导入Flash后只有内含的第一帧会得到保留。   别急,还记得我们前面在SWF Browser里另存为swf的两个电影夹组件吗?看看吧,它们不正是缺少的两部分动画吗。在Flash里用Insert下的New Symbol新建两个电影夹组件,分别将另存为swf的两个电影夹组件导入到新建的两个电影夹组件里,我们这样做是为了可以让它们保持自己原来的坐标位置,如果直接在主场景中导入的话它们就会跑到左上角去了。然后我们要做的就是在主场景合适的地方新建层,将电影夹组件放进去,并参考原来的swf文件作适当的大小位置调整就可以了。现在再播放的话我们就会发现自己有了个克隆版的动画了。   等等,还少了音乐。没问题,只要将转为wave的音乐文件在Flash中再导入就可以了,至于位置嘛,只能照着原来的swf文件大致调整了。   克隆版是有了,如果想修改呢?我建议大家想改的话尽量改文字,你会发现所有的文字都是独立的组件,改的工作量很小,也不影响动画,把一段1000帧的英文版swf动画全改成中文版也不过是个把小时的事情。   还有麻烦?什么?作者把Flash动画创建成了.exe文件?幸运的是已经有人想到了这点,并做出了破解的软件,下面就让我们来看看吧。   #1破解.exe文件   这款利器名叫Swifty Xena Pro,是一款标准的绿色软件,不安装,不写注册表,在Win98和Win2000下都工作良好,需要的朋友可以到http://buraks.com/swifty/去下载它,才100多KB。它可以把swf文件从Flash标准的exe文件、Aftershock的exe文件和Director文件中解出来。   需要注意的几点是它会自动将解出的swf文件存在被破解的.exe的同一目录下;破解完后会自动生成一个.bak的备份文件;它能破解的文件格式可以通过修改type.ini文件来软升级,前提是要有足够的信息哦,笔者用的这个版本本来不能解Flash5的exe文件,但下载了新的type.ini文件后就可以了。   启动Swifty Xena Pro,下面有三个按钮分别是Extract files、Try replacing和About,后两个基本没用,点一下Extract files按钮就会弹出窗口让你选择.exe文件,选择好之后按下OK按钮就可以了,马上就会跳出一个小窗口告诉你swf文件被解出来了,再按下OK按钮就完成了,这时我们可以在Swifty Xena Pro中看到被解出来的swf文件的信息,还是个Flash5的swf呢。好了,快去.exe文件所在目录去找你的swf文件吧,运行起来和原来的exe文件一模一样的!   #1剥离层结构   swf文件里还有一个重要的结构就是层,而SWF Browser并不能把层解出来,所以就会有了Swifty Zeus这款200多KB的破解利器。我们可以到http://buraks.com/swifty/去下载它。   先说明一下,Swifty Zeus所做的并不是能将swf文件在Flash中导入后还保持有层结构,它所做的是将swf文件中的每一层都分别另解为一个新的swf文件,而且它不光将主场景里的层解出来,还会将组件里的层都解出来。你要做的就是在Flash中将它们分层导入,这将会使你对整个动画的结构了解得很清楚。   打开Swifty Zeus后就会发现它的界面很简单,只有一个按钮(^35060102g^)。按下按钮后就会弹出窗口让你选择一个swf文件来破解。选一个Flash文件试试吧。按下打开后很快就会在Swifty Zeus的界面下部显示出解出了多少层swf文件。同Swifty Xena Pro一样,它会自动将新解出来的一系列swf文件存放在被破解的swf文件的同一目录下。   #1获取Action Script   大家学习Flash时感到最头痛的是什么?让前面介绍的三款破解软件都无能为力的是什么?对了,那就是Flash的Action Script。这款了不起的破解利器的名字就叫Action Script Viewer。在http://www.flashcastle.com/download/software/asv20.zip可以下载它。   顾名思义,Action Script Viewer能让我们查看内嵌入swf文件的Action Script,当然,它能做的不只是这些,当它将Flash4或Flash5的swf文件中的Action Script反编译出来并以文本形式显示出来后,你可以将它另存为新的文件,解读它,修改它。   Action Script Viewer也是个绿色软件,唯一要求的就是要安装有Shockwave Flash ActiveX以支持它对swf文件的预览显示。我们选择一个含有Action Script的swf文件打开,就有新的界面窗口出现。这个窗口叫swf窗口,如果打开多个swf文件的话就会有多个swf窗口,基本上Action Script都在这个窗口进行查看。按钮选项还是很多的哦(^35060102h^),在初始界面上则会多出Options和Utility两个下拉菜单。   #21.了解菜单功能   接下来让我们来看一看初始界面上新出现的Options和Utility两个下拉菜单里都有些什么。   首先是Options菜单,这里面的东西基本上是用来定制swf窗口的,因为打开多个swf文件的话就会有多个swf窗口,所以就可以分别针对每个swf窗口做不同的设置,使自己用起来更方便。   Show preview选项是用来设置预览窗口里是否显示组件内容的。   Move origin to centre选项是要配合预览窗口来使用的,它可以将预览窗口里的显示内容往右下方移动,也就是将swf文件中的坐标00移动到预览窗口的中央,以方便我们查看左上方的组件内容。   Show unmodified frames选项被激活后,所有帧的状况将都显示在swf窗口中,否则的话,就只有关键帧会被显示。   Show unmodified layers选项被激活后会显示每一帧中的所有的层,反之就只会显示有变化的层。   Show long action scripts选项一定要始终都处于被激活状态,否则的话Action Script Viewer将只反编译开头的一些Action Script,在swf窗口中你就可能没法看到完整的Action语句。   Word wrap action scripts 选项没什么用,用来开关Word Wrap,基本不影响查看Action语句。   Colorize action scripts选项倒是个很有用的功能,激活它后在swf窗口中显示的Action Script的不同的语法部分将用不同的颜色显示,看起来是方便了很多。   Change action script font选项可以允许你自己选择显示Action Script的字体,眼睛不好的朋友可以将字体调大一点。   Library options选项只有在swf窗口处于Library标签(请参看后文对swf窗口的详解)下时才会看出作用,可以显示各种信息。   Load default options选项是将当前的swf窗口恢复到软件的默认设置。而Save options as default选项则是将当前窗口的设置定为默认设置。   Utility下拉菜单里的选项要相对少一些,但许多重要的功能选项都在它下面哦,就让我们来看一看吧。   Change background color选项是用来改变预览窗口的背景色的,不要以为这是个华而不实的功能哦!在swf文件中包含的有些内容可能是白色的或颜色很淡,我们只要将预览窗口的背景色调整得深一些就能很好地观察他们了。   Copy action script as text选项就是将选中的Action Script复制到剪贴板中,就相当于我们按下“Ctrl+C”的功用。   Save action script as text选项就相对有用一些,它可以将当前显示的Action Script另存为一个.txt文件,以后想用可以随时打开,很方便。   Enable actions in preview window选项可以说是Action Script Viewer里最有用的功能之一,如果激活了它,一旦选中的组件中含有Action Script的话,这些Action语句产生的效果就会直接在预览窗口中显示出来,对于我们学习理解Action Script可是大大有用啊。   Force Flash5 mode选项又是一个重要的功能,如果当前打开的swf文件是Flash5以下版本的,只要激活这个选项,该swf中的Action Script就会全部以Flash5的语法格式显示。   Open selected in new window选项 是用来将某一帧,某一层,或某一组件在新的swf窗口中打开,其主要目的是用来展开组件以查看其内含的东西。   Trace selected in this window选项 主要是用来了解swf文件中各项之间的相互关系的,如果我们选中了一个层的话,激活这个选项后Action Script Viewer就会找出和这个层有关的组件。如果选中了一个组件再使用这个选项的话,软件就会找出这个组件第一次出现的帧。   Movie information选项是告诉你当前打开的swf文件的各种信息的,包括宽和高及播放速度和背景颜色等。   #22.详解swf窗口   前面讲解了菜单选项的作用,下面就让我们来仔细瞧瞧看上去最复杂的swf窗口。swf窗口由一系列列表、查看标签、选项快捷按钮和一个文字框组成(^35060102i^)。列表是用来显示swf文件里的各种组件和内容的;通过在Frame、Library、Instance Names、Action Scripts这四个查看标签中点击切换,我们能按各种方式查看swf文件的内容;标签快捷按钮就是我们上文解说过的菜单选项的快捷按钮;文字框则是用来显示swf文件内含的Action Script的。在swf窗口的列表中,只要在任何内容旁有一个Action图标(^35060102j^),就说明此处有Action Script存在,选中该内容后就可以在swf窗口的文字框中看见相关的Action Script消息。   在swf窗口处于Frame标签被激活的情况下时,列表上方会有排列表头(^35060102k^)。Frame下的是帧;Lable下的是帧的标识;Layer下每帧中包含的层;Symbol下就是每层对应的组件对象了;Name下的是组件对象的名字,请大家注意,这里所指的名字是Instance Name,一般来说是只有电影夹组件和变量框才会有的。如果我们要在Flash中重组swf文件的话,为了确保Action语句能运行,要将电影夹组件或变量框组件的Instance Name按照它上面显示的来取;Info下是组件对象的坐标位置;Effect下就是该组件对象的运动效果;Other Info下是一些附加的组件信息,如缩放等。   左边的列表中显示的内容是按照帧的先后次序从上到下依次排列的,如果帧的旁边有一个中间点的电影胶片图标(^35060102l^)的话,就说明该帧是一个关键帧。选中一个帧后,该帧所含有的层将在右边的列表中被显示出来。先前我们已经说过了,在Action Script Viewer中每一层只含有一个组件对象,所以我们可以将每一个组件对象的信息了解得清清楚楚。如果在层的旁边有个白纸中间有一黑点的图标(^35060102m^),就说明该层是有变化的层(请参看前文的说明)。   接着让我们把swf窗口切换到Library标签下,在这儿,当前swf文件中的所有组件对象都会被列出来,我们会发现在Library标签下的列表也有一行列表头(^35060102n^)。重复的就不说了,新的Uses列表头下显示的是该组件对象被使用的次数(我们都知道,在Flash中组件是能被重复利用的)。如果在组件旁有一个向外化开的黑点的图标(^35060102o^),就说明在主场景中该组件至少被使用了一次,没有的话就说明该组件是被包含在其它组件里面的。   再切换到Instance Name标签,在这个标签下,只有一个Instance Name的电影夹组件和变量框会被列出来。我们会发现标签头中又有了个新面孔--Location(^35060102p^),它下面显示的是该组件的详细位置,位于主场景的第几帧或位于其它组件中的第几帧。细心的朋友还会发现swf窗口下显示Action Script的文字框没了,取而代之的是一条搜索栏,可以用它对Instance Name进行查询(同样见图(^35060102p^))。   最后一个标签就是Action Scripts了,在这儿当前swf文件中所有的Action Script都将被显示出来,与前几个标签有所不同的是在swf窗口的右边会多出一个大大的Save All按钮,按下它后就能将当前swf文件里所有的Action Script另存为一个.txt文件,以方便查阅和使用。