as3杂记
一、内存回收方式:
1、引用计数【没有互相引用】
2、标记清除【fp自己检测是否引用,没有引用的清除】
二、通信方式:
1、http:小型页游【charles抓包查看】
2、socket:大型页游【WPE抓包查看】
以socket 通信为例,协议采用自定义格式,一般由两部分组成,包头与包体,包头一般是固定长度,包体为可变长度。包头一般是一些基本信息,例如包长度,版本号,命令 号,用户ID,序列号等;包体就是操作命令对应的接收参数,参数个数不同,参数类型不同会导致包体长度不同。
三、加密工具:Amayeta SWF Encrypt 和 DComSoft SWF Protector ,
四、swf数据格式解析:
(1)未加密swf文件
正 常的SWF文件,文件头部是由一个三字节的标识符开始,为0×46、0×57、0×53(“FWS”)或者0×43、0×57、0×53(“CWS”)其 中之一。“FWS”标识符说明该文件是未压缩的SWF文件,“CWS”标识符则说明该文件前8个字节之后(即文件长度字段之后)的全部数据为开源的标准 ZLIB方式压缩。
(2)加密后的SWF文件
很明显,文件头部变成了无意义的符号。实现函数示例(参考http://blog.sina.com.cn/s/blog_731fdd2b01010u9k.html)
有加密就有解密,加密的SWF文件需要还原,虽然反编译不了加密后的SWF文件,但可以反编译解密文件找到解密代码来还原加密SWF文件的文件头。(参考http://www.2cto.com/Article/201211/167406.html )
很明显,这种SWF加密方法没什么作用。于是大家想着如何用一种无法反编译的实现方法来隐藏加密算法,例如利用Alchemy能够编译C/C++代码为 AS字节码但无法被反编译的特性来隐藏加密算法。其实我怀疑目前有工具将Alchemy还原成C了,例如ASV(actionscript view 2012)就号称是目前最强悍的SWF解密工具,网上都有该工具的团购消息了。我不懂SWF的加密解密,但我知道有一条万能守则,任何加密在内存中都是解 密状态的。当无法解密的时候,就从内存中查找导出吧,我们可以先使用SWF Memory Dumper从浏览器内存中导出解密并解压缩的SWF文件,再用传播程度都烂大街的硕思闪客反编译得到源码。这一方法对游戏协议安全来说,是非常非常非常 悲剧的。
http://blog.sina.com.cn/s/blog_56c9b55c0100unzp.html
http://blog.sina.com.cn/s/blog_71f1fb3701015s29.html
http://blog.sina.com.cn/s/blog_731fdd2b01010u9k.html
http://www.cnblogs.com/wonderKK/archive/2013/01/25/2877063.html
as3杂记的更多相关文章
- AS3.0杂记——Dictionary、Object与Array
来源:http://blog.csdn.net/m_leonwang/article/details/8811829 Object.Array与Dictionary都是关联数组,就是用“键”来索引存储 ...
- [Erlang 0118] Erlang 杂记 V
我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下. 做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...
- Ubuntu杂记——Ubuntu下用虚拟机共享上网
由于最近把自己电脑环境换成了Ubuntu,但学校的网络是电信的闪讯,大学里用过的人都知道这货有多坑,而且没有Linux客户端,上网都是问题,怪不得国内用Linux的人那么少,特别是高校的学生(让我瞎逼 ...
- [转]关于AS3 Socket和TCP不得不说的三两事
磨刀不误砍柴工,让我们从概念入手,逐步深入. 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络 ...
- as3正则表达式
1.新建正则表达式,有两种方式var exp1:RegExp = new RegExp("ABCD","g");var exp2 = /ABCD/g;//g g ...
- [转]AS3 int uint Number
转自:http://luhantu.iteye.com/blog/1910301 AS3 int uint Number 博客分类: AS3 flex number 类型 1) int 类可使用表示 ...
- 一个ubuntu phper的自我修养(杂记)
ubuntu使用杂记 1.flatabulous安装使用. flatabulous是一个ubuntu图标主题. 使用它,必须得安装tweak插件. sudo add-apt-repository pp ...
- AS3和js相互通信要点分析
目标:在html页面里可以使用事件来影响到swf文件的内容,swf文件也可以影响html里js代码的内容 一.新建flash文件,用Flash CC试用版新建一个TextArea.fla的源文件,不添 ...
- 关于as3调用js报“null为空或不是对象”错误
主要原因是:flash插件的object对象无ID属性. 顺便说下as3调用js的方法. as3引用: import flash.external.ExternalInterface; as3中调用 ...
随机推荐
- 浅析嵌入式C优化技巧
嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完毕一种或几种特定功能的计算机系统,具有自己主动化程度高,响应速度快等长处,眼下已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环 ...
- JS 省市两级联动(不带地区版本)
基于网上找的一个版本改造,因为项目需求不需要地区只要省.市,所以做了改版,两个input上直接取出了数据 <html> <head> <script src=" ...
- A20 Android 编译
cd lichee ./build.sh -p sun7i_android -b wing-sc3075gs cd ../android4.2 . build/envsetup.sh lunch wi ...
- jQuery AjaxUpload中文使用API和demo示例
1.AjaxUpload上传插件 浏览器迫使我们使用文件输入控件(<input type=”file” />)做上传,然而此控件的样式是不能修改的.此外,基于表单上传在流行的Ajax应用程 ...
- 循序渐进学Python2变量与输入
新建一个test.py文件,右键选择“Edit with IDLE”,编辑完成后,Ctrl+S保存,然后按下F5就可以执行代码了. 注:IDLE是Python官方提供的一个IDE工具. 目录 [隐藏] ...
- Topcoder SRM 638 DIV 2 (大力出奇迹)
水题,就是一个暴力.大力出奇迹. Problem Statement There is a narrow passage. Inside the passage there are some wo ...
- EasyRTMP实现Demux解析MP4文件进行rtmp推送实现RTMP直播功能
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52965101 前面已经介绍过EasyRTMP,这里不 ...
- 组件的详细说明和生命周期ComponentSpecs and Lifecycle
render ReactComponent render() render() 方法是必须的. 当调用的时候,会检测 this.props 和 this.state,返回一个单子级组件.该子级组件可以 ...
- ora-12170 与 Oracle lsnrctl
在startup 启动数据库后,使用plsql去连接数据库时, 出现ora-12170 错误: 在启动.关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监 ...
- 通过Chrome浏览器进行android调试/Remote Debugging on Android with Chrome
The way your web content behaves on mobile can be dramatically different from the desktop experience ...