博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【AS3】利用 ByteArray 将 SWF 重新编码加密
阅读量:4505 次
发布时间:2019-06-08

本文共 1275 字,大约阅读时间需要 4 分钟。

【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 仍是明码,仍能被破解出来,以上这作法也就只是为了更加强破解的难度罢了,只好尽量将解密的程式隐藏的复杂一点罗,骗骗君子!

转载于:https://www.cnblogs.com/mzbdadou/archive/2011/07/28/2119787.html

你可能感兴趣的文章
freemarker 数字,字符的操作
查看>>
linux 文件目录类的指令 包含查找
查看>>
如何进行git 的push操作
查看>>
Scala入门系列(四):Map & Tuple
查看>>
uni-app中onLoad不起作用
查看>>
多线程概述
查看>>
Linux_ubuntu命令-用户、权限管理
查看>>
Knowladge_网站学习_RSS 学习
查看>>
TCP/IP,Web世界的基本规则
查看>>
c++ 子类构造函数初始化及父类构造初始化
查看>>
Analysis on Human Various Emotional Expression
查看>>
DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
查看>>
SharePoint 2010 工作流解决方案:创建和调试 SharePoint 工作流解决方案
查看>>
第二周任务分配
查看>>
SignalR---服务端
查看>>
PlayerPrefs存储Vector3等结构数据
查看>>
LightOJ - 1422 Halloween Costumes (区间DP)
查看>>
OPENWRT 支持git
查看>>
Union & Find 并查集的实现
查看>>
Memcached 查看帮助
查看>>