二、加密篇
加密方法流傳不少,此處只談我所知的較為實(shí)用的方法:
更改后綴,避開(kāi) Flash Saver 等下載工具
此方法可有效避開(kāi) Flash Saver 等下載工具。使提取者不得不從緩存中查找文件,一定程度上增加了提取難度。后綴可改為 gif、jpg、txt 等等。雖然可以更改后綴,然而在插入到網(wǎng)頁(yè)時(shí),仍然需要以 swf 的形式插入,使用此 swf 來(lái)加載改過(guò)后綴的影片。
限制 Flash 在指定域名/網(wǎng)址中播放 (Flash 防盜鏈)
url = "http://www.zhugao.cn";
/* 以下判斷網(wǎng)址的前 20 個(gè)字符(字符數(shù)根據(jù)你的網(wǎng)址作相應(yīng)修改),如果與"url"不一致則播放失敗。注:swf 可以放在任意目錄下,只要網(wǎng)址的前 20 個(gè)字符是正確的。 */
if(_url.substring(0, 20)<>url){ gotoAndStop(2);
/* 這里可以做一些東西,例如:將發(fā)布設(shè)置中的“本地回放安全性”設(shè)為“只訪問(wèn)網(wǎng)絡(luò)”,然后在這里做無(wú)數(shù)的彈窗 onEnterFrame = function(){ getURL("http://www.zhugao.cn", "_blank"); } */
}else{ gotoAndPlay(3); //跳到正常播放 }
為了便于閱讀,以下是沒(méi)有注釋的代碼:
url = "http://www.zhugao.cn"; if(_url.substring(0, 20)<>url){ gotoAndStop(2); }else{ gotoAndPlay(3); }
如果要允許多個(gè)域名,可以這樣寫(xiě): url = "http://www.zhugao.cn"; url2 = "http://zhugao.cn"; if((_url.substring(0, 20)==url) || (_url.substring(0, 16)==url2)){ gotoAndPlay(3); }else{ gotoAndStop(2); }
注意:用此方法,設(shè)計(jì)過(guò)程中導(dǎo)出時(shí)的技巧: 用IE打開(kāi)先打開(kāi)指定目標(biāo)網(wǎng)址,以避免在導(dǎo)出時(shí)頻繁彈出窗口,如果無(wú)效,請(qǐng)將默認(rèn)瀏覽器設(shè)置成IE,關(guān)閉導(dǎo)出時(shí)的player窗口即可繼續(xù)編輯。有時(shí)Flash軟件會(huì)因此發(fā)生錯(cuò)誤而被強(qiáng)行結(jié)束,導(dǎo)出前請(qǐng)保存文檔,切記!
常用加密工具
- SWF Encrypt
可有效防止目前流行的幾乎所有破解工具對(duì)其所加密作品的AS查看。2006年10月更新為3.0.12,盡管加密后文件仍然有明顯的增大(視原swf的復(fù)雜程度,增大幅度有所不同),然而令人振奮的是,已經(jīng)支持放射狀漸變,支持Flash8.0。加密技巧:分解swf逐個(gè)加密,以盡量避免加密后單個(gè)文件體積龐大的問(wèn)題。
- Flashincrypt
可輕易防止閃客精靈目前的版本對(duì)其所加密作品的AS查看,加密后的文件幾乎保持原文件大小。遺憾的是不能防止 Action Script Viewer 5.0 以上的版本。
適當(dāng)應(yīng)用與javascript結(jié)合
加密JS,從而實(shí)現(xiàn)間接加密swf。相關(guān)工具及例子:
- T4nk JS混淆工具
用于javascript的混淆加密。
- Encrypt HTML
加密網(wǎng)頁(yè)腳本,包括 HTML source code, javascript, VBScript, text, links and graphics 等。
- 從Flash到JavaScript的通訊,從JavaScript到Flash的通訊
- 控制 Flash Player 的 JavaScript 方法一覽表:
·播放動(dòng)畫(huà):Play() 例:(網(wǎng)頁(yè)中的 Flash id).Play(); ·停止動(dòng)畫(huà):StopPlay() ·動(dòng)畫(huà)是否正在播放:IsPlaying() ·跳轉(zhuǎn)到某幀:GotoFrame(frame_number) ·獲取動(dòng)畫(huà)總幀數(shù):TotalFrames() ·回傳當(dāng)前動(dòng)畫(huà)所在幀數(shù):CurrentFrame() ·使動(dòng)畫(huà)返回第一幀:Rewind() ·放大指定區(qū)域:SetZoomRect(left,top,right,buttom) ·改變動(dòng)畫(huà)大。篫oom(percent) ·使動(dòng)畫(huà)在 x,y 方向上平移:Pan(x_position,y_position,unit) ·返回動(dòng)畫(huà)被載入的百分比:PercentLoaded() ·加載動(dòng)畫(huà):LoadMovie(level_number,path) 例:(網(wǎng)頁(yè)中的 Flash id).LoadMovie(0, "***/***.swf"); ·movie_clip 跳轉(zhuǎn)到指定幀數(shù):TGotoFrame(movie_clip,frame_number) 例:(網(wǎng)頁(yè)中的 Flash id).TGotoFrame("_root.實(shí)例名.次實(shí)例名",幀數(shù)); ·movie_clip 跳轉(zhuǎn)到指定標(biāo)簽:TGotoLabel(movie_clip,label_name) 例:(網(wǎng)頁(yè)中的 Flash id).TGotoLabel("_root.實(shí)例名.次實(shí)例名","標(biāo)簽名"); ·回傳 movie_clip 當(dāng)前幀:TCurrentFrame(movie_clip) ·回傳 movie_clip 當(dāng)前標(biāo)簽:TCurrentLabel(movie_clip) ·播放 movie_clip:TPlay(movie_clip) ·停止 movie_clip 的播放:TStopPlay(movie_clip) ·獲取變量:GetVariable(variable_name) ·變量賦值:SetVariable(variable_name,value) ·call 指定幀上的 action:TCallFrame(movie_clip,frame_number) ·call 指定標(biāo)簽上的 action:TCallLabel(movie_clip,label) ·獲取 movie_clip 的指定屬性:TGetProperty(movie_clip,property) ·設(shè)置 movie_clip 的指定屬性:TSetProperty(movie_clip,property,number)
在Word中插入Flash 測(cè)試環(huán)境:WindowsXP / Office2003
可用在獨(dú)立文件給客戶看的時(shí)候,盡管可以用前述方法從word中提取swf,然而此方法仍然具有一定防范效果。
- 新建一Word文檔并保存。
- 在Word中依次單擊下拉菜單“視圖”→“工具欄”→“控件工具箱”。
- 在“控件工具箱”中點(diǎn)擊“其他控件”,選擇列表中的“Shockwave Flash Object”。
- 右鍵單擊插入進(jìn)來(lái)的Flash播放控件,選擇“屬性”。
- 在“屬性”窗口的“Movie”欄輸入Flash動(dòng)畫(huà)的路徑及文件名,需要用絕對(duì)路徑,可采用以下兩種:
file:///C:/test/test.swf http://www.zhugao.cn/test.swf
- 將“EmbedMovie”項(xiàng)設(shè)置為“True”,使Flash嵌入到Word中。“Height”和“Width”分別為Flash的高和寬。“Scale”默認(rèn)為ShowAll,為縮放模式,始終顯示Flash中的所有內(nèi)容,如果改為NoScale則始終按1:1比例,不會(huì)縮放Flash中的內(nèi)容。
- 單擊控件工具箱上的“退出設(shè)計(jì)模式”按鈕,在Word中即可播放Flash了。再次按下該按鈕則暫停播放,進(jìn)入設(shè)計(jì)模式。如當(dāng)時(shí)未顯示Flash,請(qǐng)保存退出Word,再打開(kāi)該Word文檔,點(diǎn)擊“退出設(shè)計(jì)模式”按鈕即可看到Flash。
打包成加殼exe
用Flash的默認(rèn)程序打包的exe很容易轉(zhuǎn)成swf,SWFKit是一款很不錯(cuò)的加殼打包軟件,不易被還原。
三、后記
破解時(shí)需要多種方法或工具綜合使用,加密亦然,需根據(jù)用途綜合加密。
對(duì)于網(wǎng)絡(luò)用swf的推薦加密方案: 更改后綴,限制在指定域名播放,分解成多個(gè)swf并用SWF Encrypt加密。 此方案主要依賴于SWF Encrypt,重在保護(hù)作品的AS,一旦SWF Encrypt遭到破解軟件的有效攻擊,此方案即宣告破產(chǎn)。
附:加密案例:Family Player
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2713590-1-1.html
本文鏈接:http://m.95time.cn/tech/multimedia/2007/4438.asp
出處:藍(lán)色理想
責(zé)任編輯:blue
上一頁(yè) 破解篇 下一頁(yè)
◎進(jìn)入論壇Flash專欄版塊參加討論
|