zoukankan      html  css  js  c++  java
  • [AS3]as3用ByteArray来对SWF文件编码加密实例参考

    [AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档。这个作业当然也可能应该是由 Server 进行

    步骤一,随便建立一个 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(); //CuPlayer.com提示:这里要代换成一个复杂的加工作业 
    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(); //cuplayer.com提示:这里要代换成一个复杂的加工作业 
    10. loader.loadBytes(ba); 


    解密的部分,要参考加密的过程,反向进行。

    不过,我想聪明如你也会知道,这个main.swf 仍是明码,仍能被破解出来,以上这作法也就只是为了更加强破解的难度罢了,只好尽量将解密的程式隐藏的复杂一点罗,骗骗君子!

    轉載:http://www.cuplayer.com/player/PlayerCodeAs/2013/09271019.html

  • 相关阅读:
    软件设计师经验分享
    数据库设计基本规范
    UEditor上传文件的默认地址修改
    mongoDB简单介绍及安装
    链表中倒数第k个结点
    一入python深似海--对象的属性
    stl--vector 操作实现
    android5.x加入sim1,sim2标识
    leetCode 27.Remove Element (删除元素) 解题思路和方法
    java8新增特性(一)---Lambda表达式
  • 原文地址:https://www.cnblogs.com/602147629/p/3822380.html
Copyright © 2011-2022 走看看