宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3下利用ByteArray加密

2016-10-13 00:16:48 点击量:17 标签: 收藏本文

步骤一,随便建立一个 swf 当作要被加密的内容档案,怎么做不管,假设档名 asset.swf。

步骤二,做一个用来进行加密工作的 flash:

程序代码

  1. var ul:URLLoader = new URLLoader(); 
  2. ul.dataFormat = URLLoaderDataFormat.BINARY; 
  3. ul.addEventListener(Event.COMPLETE, onComplete); 
  4. ul.load(new URLRequest("asset.swf")); 
  5. function onComplete(e:Event):void{ 
  6. var ba:ByteArray = (e.target as URLLoader).data; 
  7. ba.compress(); //这里要代换成一个复杂的加工作业 
  8. var fr:FileReference = new FileReference(); 
  9. fr.save(ba, "asset_c.swf"); 

 

简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档。这个作业当然也可能应该是由 Server 进行,至於要对 ByteArray 做甚么样的资料改变,都可以。

步骤三,可以用破解软件对刚存好的 asset_c.swf 作业看看,就可以发现没有效果,因为本质上他已经不是 swf format 了。

步骤四,另外开发一个读取用的 flash,也就是未来真正要将 asset_c.swf 动态载入进来播放的 main.swf:


程序代码

  1. var ul:URLLoader = new URLLoader(); 
  2. ul.dataFormat = URLLoaderDataFormat.BINARY; 
  3. ul.addEventListener(Event.COMPLETE, onComplete); 
  4. ul.load(new URLRequest("asset_c.swf")); 
  5. var loader:Loader = new Loader(); 
  6. addChild(loader); 
  7. function onComplete(e:Event):void{ 
  8. var ba:ByteArray = (e.target as URLLoader).data; 
  9. ba.uncompress(); //这里要代换成一个复杂的加工作业 
  10. loader.loadBytes(ba); 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室