抓取网页flash视频(混迹52这么长时间了,总是伸手拿别人的东西,自己没有什么)
优采云 发布时间: 2021-12-05 17:02抓取网页flash视频(混迹52这么长时间了,总是伸手拿别人的东西,自己没有什么)
混52这么久了,总是伸手去摸别人的东西,也没什么好原创分享的{:301_1005:}我还要锻炼一下{:301_998:}
首先需要说明的是,这个软件的功能是生成swf文件,用于在线播放视频。最大的特点是操作简单,自带播放列表,生成的播放器兼容移动端。
使用这个软件的人很少,也没有人破解过软件本身。官网售价39美金,可以下载试用,但是有烦人的痕迹!网上有很多H5播放器,好用的也有很多,但是总觉得不是特别漂亮,就是不知道怎么写Action Script,所以后来google了发现了这个傻瓜生成swf播放器的小软件。下图是软件打开后的外观。可以发现左上角有官网链接。我所要做的就是删除此链接。不过我的做法不是破解注册软件本身,而是从生成的swf文件入手。
很自然地想到要反转 swf 文件。这确实是可行的。确实可以用AS3 Sorcerer获取swf源码,而且源码看起来正常(这里需要说明,并不是所有的swf逆向工具都对这个软件生成的swf有效。,我试了很多,发现有些逆向工程生成的 AS 文件的一部分是空的!)。通过对源码的分析,可以发现上面提到的标签对应下面的代码。
[Actionscript3] 纯文本视图复制代码
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 >http://www.magichtml.com</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。
[Actionscript3] 纯文本视图复制代码
if (cfgObject.randomPlay)
之后保存,浏览器再次调用swf就正常了。至此,结束###
关于效果,其实和官网是一样的。
其实没必要破解的那么厉害。软件生成的swf文件默认调用外部同名xml文件。这是一个播放列表文件,指定了视频地址、缩略图和视频介绍。从官网栏下载未标记的swf文件,创建一个同名的xml文件。就是这样,刚刚发现 {:301_1004:}