許久不發文了,2018年第一篇文章,寫點乾貨——關於網頁播放器的問題。嗯,實際上我是在52破解首發的,當作新人貼。
目前來講,網頁播放器很多,隨便找找都能找到一大堆,然而好用的就那麼幾個,好比ckplayer什麼的。2017年末,本身想給這個小博客增長視頻播放功能,以前也發過幾篇關於typecho視頻播放器的帖子,奈何都是別人的成果,總想本身搞一個,而且同時支持PC+移動端+播放列表的功能,要想完成仍是要費一番功夫的,巧的是當時逛谷歌的時候真的讓我找到了一個這樣的播放器,固然也是付費的!接下來的工做想必都能猜到O(∩_∩)O哈哈~html
先放出實驗對象——Flash HTML5 Web Video Player我以爲一個正常的公司不會起一個這麼直白的名字 -_-|| 還賣39美圓!實際賣的是一個十幾兆的小軟件,自定義後可自動生成swf格式的播放器,只要在網頁上引用就能夠實現播放功能了。官方提供試用版,可是播放視頻會在左上角帶有一個官網地址的標記,很是煩人,詳細見下圖。我要作的就是去掉這個連接,可是,個人作法不是破解註冊軟件自己,而是從生成的swf文件入手。很天然地想到對swf文件逆向,這確實可行,用AS3 Sorcerer的確能夠拿到swf的源碼,而且源碼看上去還很正常,AS3 Sorcerer在不少地方均可如下載到,我嘗試了其餘的逆向工具,無奈都失敗了,有些工具逆向出來的部分AS文件是空白的。逆向後會發如今全部文件架最外層有一個主文件,打開這個AS3文件真的算是大開眼界,代碼很是工整,很容易就找到了咱們要找的地方:html5
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判斷裏,本想着只要不進入if裏就能夠,修改後再編譯成swf就行。可是,事情並無那麼簡單,本身嘗試了不少次,雖然調用Flash SDK下的mxmlc確實能夠不報錯生成swf文件,可是徹底不能用,瀏覽器調用後只會顯示一塊黑色區域。PS:後來發現,那個公司最成功的一款產品是swf加密軟件,估計在生成swf文件過程當中也加密了。
出現這種狀況對我來說基本無解了,由於徹底不知道問題在哪。後來在使用另外一款軟件ActionScriptViewer後發現,該款軟件能夠在不破壞swf文件的前提下直接編輯swf裏的常量!看到但願了\(^o^)/~
返回以前的源碼,發如今if裏的判斷實際就是調用了常量demo,這個值實際是軟件本身加上去的,跟第一張圖右側播放器的相關設置在一塊兒(相似xml文件)放在主文件開頭出,至關於一個全局常量。因此只要一開始設置播放器時給一個false常量而後把if判斷指向這個常量就行了。我這裏用到的是randomPlay。只要在ActionScriptViewer裏將demo換成randomPlay就完成了。以後保存就好,瀏覽器再調用swf就正常了。至此,結束。至於調用的視頻,swf播放器會調用一個同名的xml文件,裏面指明瞭視頻地址和縮略圖。web
我把本身修改好的播放器文件放出來:https://files.cnblogs.com/files/liuke-note/player.zip 至於使用方法,很簡單看看裏面的html文件就懂了瀏覽器