8823 发表于 2018-1-10 10:38

小技巧破解Flash HTML5 Web Video Player

混迹52这么长时间了,总是伸手拿别人的东西,自己没有什么原创分享出来{:301_1005:} 自己还需锻炼{:301_998:}
首先需要说明的是这款软件的作用是生成在线播放视频的swf文件,最大的特点在于操作简单,自带播放列表,并且生成的播放器兼容移动端
这款软件用的人很少,目前还没有人对软件本身进行破解,官网报价39美元,可以下载试用,但是有烦人的标记!现在网上的H5播放器很多,好用的也不少,但是总觉得不是特别美观,无奈自己又不会写Action Script,所以谷歌后发现了这款傻瓜操作生成swf播放器的小软件。下图是软件打开后的样子,可以发现左上角有官网的链接,我要做的就是去掉这个链接,但是,我的做法不是破解注册软件本身,而是从生成的swf文件入手。
https://happywriting.me/usr/uploads/2018/01/3479285986.png
很自然地想到对swf文件逆向,这确实可行,用AS3 Sorcerer的确可以拿到swf的源码,并且源码看上去还很正常(这里需要说明,不是所有的swf逆向工具都对这个软件生成的swf有效,我尝试了很多,发现有些软件逆向后生成的部分AS文件是空的!)。通过对源码分析,可以发现上面说的那个标记对应如下代码。
private function InitWatermark():void
      {
            var _local_1:*;
            var _local_2:TextFormat;
            var _local_3:*;
            if (cfgObject.demo)
            {
                _local_1 = new TextField();
                _local_1.multiline = true;
                _local_1.wordWrap = false;
                _local_1.selectable = false;
                _local_1.htmlText = "<a ><font face='Arial,Verdana'>http://www.magichtml.com</font></a>";
                _local_1.autoSize = TextFieldAutoSize.LEFT;
                _local_2 = new TextFormat();
                _local_2.align = TextFormatAlign.CENTER;
                _local_1.setTextFormat(_local_2);
                _local_1.x = 8;
                _local_1.y = 8;
                _local_3 = new Sprite();
                _local_3.graphics.beginFill(0xFFFFFF);
                _local_3.graphics.drawRoundRect(0, 0, (_local_1.width + 8), (_local_1.height + 8), 8, 8);
                _local_3.graphics.endFill();
                _local_3.x = 4;
                _local_3.y = 4;
                _local_3.alpha = 1;
                watermarkMC = new MovieClip();
                watermarkMC.addChild(_local_3);
                watermarkMC.addChild(_local_1);
                this.addChild(watermarkMC);
                watermarkMC.x = 8;
                watermarkMC.y = 8;
            };
      }

主要起作用的在if语句里,本想着将这部分去掉后再编译生成swf就大功告成了,但是,事情并没有那么简单,自己尝试了很多次,虽然调用Flash SDK下的mxmlc确实可以不报错生成swf文件,但是完全不能用,浏览器调用后只会显示一块黑色区域。PS:后来发现,那个公司最成功的一款产品是swf加密软件{:301_1009:} 估计在生成swf文件过程中也加密了。
出现这种情况对我来讲基本无解了,因为完全不知道问题在哪。后来在使用ActionScriptViewer后发现,该款软件可以在不破坏swf文件的前提下直接编辑swf里的常量!看到希望了{:301_1003:}
返回之前的源码,发现在if里的判断实际就是调用了常量demo,这个值实际是软件自己加上去的,跟图1右侧播放器的相关设置在一起(类似xml文件)。所以只要一开始设置播放器时给一个false常量然后把if判断指向这个常量就好了。我这里用到的是randomPlay.
if (cfgObject.randomPlay)
之后保存就好,浏览器再调用swf就正常了。至此,结束###
关于效果,实际上跟官网展示的一样https://www.magichtml.com/flashhtml5webvideoplayer/index.html
其实也不需要这么卖力的破解。软件生成的swf文件,默认调用外部同名的xml文件,这是播放列表文件,里面规定了视频地址、缩略图以及视频介绍,从官网上吧没有标记的swf文件下载下来并自己搞个同名xml文件就好了,刚发现{:301_1004:}

虚幻魔王 发表于 2018-1-12 08:29

这东西太偏门了,现在都是自己做SWF毕竟国内闪客技术算不上多好,但是做个播放器还是没问题的。目前插件式的播放器正在被SWF替代来兼容移动和苹果设备,但是,我感觉,还是自己开发的,才是最适合自己的,否则为了使用一款播放器,就要改造一个成熟的网站,这有点蛋疼。

8823 发表于 2018-1-10 16:38

小小/ng 发表于 2018-1-10 12:00
用到的软件提供下下载地址啊,网上找半天没找到Flash HTML5 Web Video Player,最后改代码是用ActionScript ...

抱歉,我给出了官网展示地址,那个就是这个软件的出处,最后确实是用actionscriptviewer改的,只需要改个常量就好

oksjx 发表于 2018-1-10 11:32

谢谢你的分享!!!!!!!!

8823 发表于 2018-1-10 11:38

oksjx 发表于 2018-1-10 11:32
谢谢你的分享!!!!!!!!

{:301_999:}都没人回我,谢谢

e百年 发表于 2018-1-10 11:52

我没有相关的知识面,看得似懂非懂。支持一下。

小小/ng 发表于 2018-1-10 12:00

用到的软件提供下下载地址啊,网上找半天没找到Flash HTML5 Web Video Player,最后改代码是用ActionScriptViewer这个改的?

sjstudy2017 发表于 2018-1-10 12:34

没看到下载地址,这个flash也不好下载啊

六月飞雪 发表于 2018-1-10 13:00

灵光咋现,思路就来了,谢谢楼主!

8823 发表于 2018-1-10 16:39

sjstudy2017 发表于 2018-1-10 12:34
没看到下载地址,这个flash也不好下载啊

我最后给出了官网的预览页面,是可以直接保存swf的,再配合xml文件可以直接用了

thyonezhy 发表于 2018-1-10 17:48

似懂非懂
页: [1] 2 3 4
查看完整版本: 小技巧破解Flash HTML5 Web Video Player