闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   请大家多多关注[Flex应用案例],更希望大家[推荐好的案例]给我们
当前位置 :首页>Flex-AIR>Flex资料>列表

FLEX程序初始化及此解密过程

[来源:闪无忧 | 作者:闪无忧 | 时间:2010-02-01 | 点击:  | 收藏本文  【 】]
5uflash文章摘要:原文地址: http://www.gridlinked.info/how-to-encrypt-flex-rsls/ 这里截取并尝试翻译了一段FLEX程序初始化及此解密过程. 应用启动过程: 1. 首先, 为第1帧加载足够的数据. 2. Flash Player通过创建SystemManager实例执行加载数据. 3. SystemManager命令Flash Player

原文地址:

http://www.gridlinked.info/how-to-encrypt-flex-rsls/

这里截取并尝试翻译了一段FLEX程序初始化及此解密过程.
应用启动过程:
1. 首先, 为第1帧加载足够的数据.
2. Flash Player通过创建SystemManager实例执行加载数据.
3. SystemManager命令Flash Player停止在第一帧.
4. SystemManager创建Preloader,
通过它创建DownloadProgressBar控件并显示在客户界面上.
5. Preloader开始从FLEX SWF(或外部SWF)加载其余数据.
一旦FLEX框架及程序代码数据加载, System Manager跳到第2帧并初始化Application实例.
1) 所有的RSL及相关类现在已加载[到ApplicationDomain];
注意加载的顺序就是app编译时定义的顺序.
2) 所有应用程序使用的类定义(视图, 逻辑等)先加载到第2帧.
注意这里, 在第一帧的preloader代码甚至可以在FLEX框架类加载前, 安装补丁到其中.
3) 这种技术就被叫做”monkey-patching”, 会被用在后面提到的解密过程中.
6. 一旦Application实例创建, SystemManager设置
Application.systemManager指向自己,
之后你就可以访问SystemManager了.
7. Application在初始化处理开始前派发预初始化(preinitialize)事件.
8. Application继续创建内部实例.
application调用createChilden()方法.
这时每个应用的组件被构造并调用自己的createChilden()方法.
具体情况参考组件生命周期章节.
9. Application派发初始化(initialize)事件,
指明所有的组件已被初始化.当然, 此时所有的组件尚未布局.
10.最后,所有的子控件及容器被创建并设置大小及位置后,
Application就会派发creationComplete事件.
11.creationComplete事件派发后,
Preloader移除DownloadProgressBar 控件,
SystemManager将Application实例加到Flash Player的
显示列表中(Flash Player display list基本上是个树结构,
包含着可视及潜在可视对象,构成整个应用.
当向应用中添加或移除组件时,
基本上就是将它们从显示列表(display list)中添加或移除掉).
12.Application一旦添加到Flash Player显示列表中,
Application派发applicationComplete事件.
13.Application此时已被创建好并显示到屏幕上准备与用户交互了.
这种RSL的解密过程如下:
1.Flash Player加载已加密的RSL/SWF并同时派发RSLError事件;
这会停止预加载过程使程序”挂起”.
2.中断掉这个事件防止由于冒泡机制被其他监听器捕获;
这能有效的阻止加载序列中的其他RSL.
3.使用Nitro-LM,异步请求RSA解密密钥.
4.重新加载加密的RSL(清除已加载的SWF字节码).
5.解密数据.
6.将已经解密的数据加载到AVM中.
7.通知Preloade恢复加载其他等待的RSL.
很巧妙的一个方法


文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:Flex Builder编译错误An internal build error has occurred的解决方法
下一篇:FLEX文本高亮类HighlightBlock
Tags:    FLEX程序解密过程
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  Flex及AIR分类
  Flex资料   Flex动态
  Flex案例   Flex源码
  AIR资讯
  搜索本站资料
Google
  Flex相关
  寻找Flex工作机会
  发布Flex工作机会
  相关文章
·Flex 4 Spark DockBar 浮动工具
·Visual Studio中使用Adobe的Flex
·Flex 4实现分页
·利用flixel和Flash Builder 4创
·Flex辅助产品-扩展工具包 1.X
·Flex控制对主机网页中脚本的访问
·flex应用中如何关闭浏览器
·基于Flex的免费在线的家庭设计装
·Flash Builder 4添加数据可视化
·Flex 4设置Spart Button控件的强
  热门文章
·Flex 3 AdvancedDataGrid的使用(第二
·Flex中文官方帮助教程下载
·如何从零开始编写一个flex组件
·用Adobe Flex 2和Java创建富Internet
·FLEX地图应用教程之一
·Flex 3 发现之旅:AdvancedDataGrid的
·基于Flex的在线图片编辑器
·学习Flex几个值得研究的例程代码
·FlexUnit 的用法
·Flex 3 dvancedDataGrid的使用(第一部
·Flex 入门教程
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号