剖析swf文件结构 探秘avm运行原理

剖析swf文件结构 探秘avm运行原理

ID:20864694

大小:474.00 KB

页数:13页

时间:2018-10-17

剖析swf文件结构 探秘avm运行原理_第1页
剖析swf文件结构 探秘avm运行原理_第2页
剖析swf文件结构 探秘avm运行原理_第3页
剖析swf文件结构 探秘avm运行原理_第4页
剖析swf文件结构 探秘avm运行原理_第5页
资源描述:

《剖析swf文件结构 探秘avm运行原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、剖析SWF文件结构探秘AVM运行原理——Bylaan2009.12.22http://www.laaan.cnWhy1.明白自己在做什么2.更底层的了解一些现象堆栈不平衡、类型错误errorlist3.优化你的程序4.加密和破解5.重构虚拟机——如果你足够NX的话SWF文件结构JustFlashplayer9++HeadTagTagTag…1.FWS

2、CWS2.PlayerVersion3.FileLength4.FrameSize(Stagesize*20)5.FrameRate6.FrameCountTagIDTagLengthTag

3、DataHeadData1.FWS

4、CWS2.PlayerVersion3.FileLength4.FrameSize5.FrameRate6.FrameCountTagFileAttributesTagas3GPUnetworkMetadataTag携带信息DoABCTagShowFrameTagEndTag携带数据,加密SymbolClassTagProtectTag防止导入ScriptLimitTag递归深度脚本运行时间SetBackgroundColorTag设置背景DoABCTagTagIDTagLengthTagData82n

5、ameAbc72TagHaxe加密AVM2ActionscriptVirtualMachineAVM21.ABCdata(ActionscriptByteCode)3.运行原理2.ABC数据结构4.指令ClassTest{privatevara:String;privateconstBIG:uint=50;privatefunctiontest():void{trace(doStr());functiondoStr():String{return“NULL”}}}ABC数据结构ScriptClassInstanceTraitMethodM

6、ethodBodypccode结构由大到小MedthodTraitSlot/ConstTraitClassTraitFunctionTraitAVM2运行原理ABCLoadLinkVerifyExecuteLoad:加载ABC数据到内存并解析,得到所有数据单元Script,Class,Instance,Trait,Strings,…Link:各单元之间的关系建立比如Class与Instance,Method与MethodBodyVerify:检查各abc数据的正确性。要是不检查正确性,player可以做很多坏事分支检查,堆栈检查,比如一个

7、MethodBody被链接到两个Method上Execute:开始执行ABC数据。官方:最后一个script结构的init方法Actually:文档类所在Script结构的init方法CallMethodMethodBodyStackScopepccodesLocaldataCallMethod0getlocal01pushscope2pushnull3coerce_s4setlocal15pushstring7setlocal18getlocal19pushstring…程序优化从pccode层面来程序优化…1.程序运行时间的消耗在哪儿

8、?2.局部变量3.Dynamic会快还是会慢?4.Swich还是ifelse,是个问题5.Trycatch的优化1.属性、方法访问时的搜索2.分支跳转局部变量一般情况下是不会编译到swf中去。所以无需考虑其长度比如vartheLengthOfArray:uintLookupswitch指令的特殊结构。动态调用会消耗更多的搜索时间。保存局部变量名称…Whereshouldwegonext?1.各自回工位2.学习更多SWF文件格式官方文档下载》》AVM2官方说明文档下载》》感谢感谢CCAV感谢Adobe提供这么优秀的产品感谢肖大侠的协助非常感

9、谢各位抽空来接受折磨

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。