2010年8月17日 星期二

使用ByteArray做一些基本的檔案保護


這一篇的概念很簡單,應該也已經有許多人都這樣在用了。基本上只是一種做心安的保護動作。

不知道為什麼只要遇到bytearray的東西我都覺得很有興趣,雖然這東西說穿了就是直接改binary,沒什麼太大的學問,但是我總覺得光改binary就可以玩很多東西。例如AS3Swf、LivePDF、FZip等等的東西,都是用bytearray玩出來的。

以上說的那些都需要詳讀相關的specification,才能知道哪一種檔要在binary的哪一個地方塞入什麼值,要自己去寫一個的話是很耗時跟耗工的,感謝國外的強者們。

這一篇要說的相反,要保護一個檔案,最簡單的方法就是把它binary搞亂,亂到電腦看不懂,其它人就很難直接把你的檔案拿去用。
因為把binary搞亂了,自然無法直接在電腦上跑,因此如果flash裡要使用的話,就還得先把檔案讀進來重新還原到原本的狀態才可以使用,這是比較麻煩的部份,因為寫code時就要多加一道decode的程序。一般來說會這樣搞的機率不大,swf也都有現成的軟體可以加密保護,但是像mp3這種東西就沒有了。
之前遇到的案子是客戶希望在網站上播放的音樂要保護起來,但是又沒錢買FMS,那怎麼辦?
那就只好把mp3的binary搞亂了。

點下面這裡看範例:
Demo
原始檔下載:
Source


在Encode的地方選檔案並另存後,可以試播看看,基本上會是聽不到什麼的,用其它player播放即使聽得到聲音也只會是一些怪聲音。
在Decode的地方選擇剛剛編碼過的檔案後再另存,就可以發現檔案已經回覆到原來的狀況可以直接播放。
我這個範例裡只是純粹的將mp3每100個binary互相倒置,把binary的順序搞亂而已。
如果要用更複雜的編碼也是可以,同樣的道理而已。

這種方法只是做心安的,只要被人crack到原本的編碼方式,對方又會寫程式的話,也是會被還原回來的。
但我想這樣已經可以擋掉大多數的網路使用者用現成的工具抓取mp3回去聽了。






This is an example how to protect your mp3 on your site by using bytearray.
The concept is quite simple. I just change the sequence of the segments in the binary every 100 bits.
To play the encoded mp3 in flash, just change the sequence again.
Very simple but useful for most situations.

Try demo here:
Demo
Source:
Source

沒有留言:

張貼留言