zoukankan      html  css  js  c++  java
  • 【AS3】利用 ByteArray 将 SWF 重新编码加密

    【AS3】利用 ByteArray 将 SWF 重新编码加密
    作者:6dn 日期:2009-03-18
    步骤一,随便建立一个 swf 当作要被加密的内容档案,怎么做不管,假设档名 asset.swf。

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

    程序代码

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



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

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

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


    程序代码

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


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

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

    http://bbs.9ria.com/thread-35328-1-1.html

  • 相关阅读:
    简单工厂模式、工厂模式、抽象工厂模式
    直接插入排序
    简单选择排序的陷阱
    面试3 题目二,不修改数组找到重复的数字
    二进制中1的个数(读不懂题目怎么办)
    用两个栈实现队列
    斐波那契数列
    替换空格
    python 实现杨辉三角(依旧遗留问题)
    递归实现二分查找
  • 原文地址:https://www.cnblogs.com/mzbdadou/p/2119787.html
Copyright © 2011-2022 走看看