野蔷薇 |
2010-03-06 02:38 |
通过ByteArray加密SWF或图像
原创文章:Link标识[]http://lab.lzyy.name/blog/archives/32[/] 不清楚有没有人发过类似的文本作品,期望能听到大家的想法
假如你有一个SWF或者图像文档,其他人即使下载下来了,也不能获得其中的内容,那么ByteArray或许能帮一下忙。
原理:
假设要加密的文档是a.swf,首先经过AS3改正a.swf的ByteArray,然后发送到PHP(当然也能够是更多相关语句语言),在后台生成一个新的b.swf,这那是加密后的文档,其他人假如下载下来打开,是无法观看的。假如想经过破解道具破解,那也是徒劳(由于这已经否则一个swf了)。
然后咱们就能够在AS3里解析那个b.swf,将它还原成a.swf,这是经过URLLoader+Loader完成的,还得来看看Code吧
加密: 拷贝内容到剪贴板 Code: var Loader:URLLoader = new URLLoader(); Loader.dataFormat = URLLoaderDataFormat.BINARY; Loader.addEventListener(Event.COMPLETE,onLoaded); Loader.load(new URLRequest('t1.swf')); function onLoaded(evt) { var ba:ByteArray = Loader.data; var bytes:ByteArray = new ByteArray(); for(var i=0;i<ba.length;i++) { bytes.writeByte(ba + 13);//这里的13可替换为你想要的数字 } //bytes.compress(); var request:URLRequest = new URLRequest ('http://127.0.0.1/nowadays/t.php'); var loader: URLLoader = new URLLoader(); request.contentType = 'application/octet-stream'; request.method = URLRequestMethod.POST; request.data = bytes; loader.load( request ); }PHP 拷贝内容到剪贴板 Code: $fp = fopen( 'test.swf', 'wb' ); Fireworks CS4rite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] ); fclose( $fp );解密: 拷贝内容到剪贴板 Code: var Loader:URLLoader = new URLLoader(); Loader.dataFormat = URLLoaderDataFormat.BINARY; Loader.addEventListener(Event.COMPLETE,onLoaded); Loader.load(new URLRequest('test.swf'));//加密后的swf文档 function onLoaded(evt) { var ba:ByteArray = Loader.data; var bytes:ByteArray = new ByteArray(); //trace(ba.length);
//-------------------解密 for(var i=0;i<ba.length;i++) { bytes.writeByte(ba - 13); } //-------------------End
var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onBytesLoaded); loader.loadBytes(bytes); } function onBytesLoaded(evt) { addChild(evt.target.content); }当然,假如你的解密AS赤果果地躺在人家面前,那可就不太妙喽
Link标识无网不剩 Link标识
|
|