剖析SWF文件結(jié)構(gòu)_探秘AVM運(yùn)行原理.ppt_第1頁(yè)
剖析SWF文件結(jié)構(gòu)_探秘AVM運(yùn)行原理.ppt_第2頁(yè)
剖析SWF文件結(jié)構(gòu)_探秘AVM運(yùn)行原理.ppt_第3頁(yè)
剖析SWF文件結(jié)構(gòu)_探秘AVM運(yùn)行原理.ppt_第4頁(yè)
剖析SWF文件結(jié)構(gòu)_探秘AVM運(yùn)行原理.ppt_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、剖析SWF文件結(jié)構(gòu)探秘AVM運(yùn)行原理,By laan 2009.12.22 ,Why,1.明白自己在做什么,2.更底層的了解一些現(xiàn)象 堆棧不平衡、類型錯(cuò)誤 error list,3.優(yōu)化你的程序,4.加密和破解,5.重構(gòu)虛擬機(jī)如果你足夠NX的話,SWF文件結(jié)構(gòu),Just Flashplayer9+,1.FWS|CWS 2.Player Version 3.File Length 4.Frame Size(Stage size * 20) 5.Frame Rate 6.Frame Count,Head Data,1.FWS|CWS 2.Player Version 3.File Length 4

2、.Frame Size 5.Frame Rate 6.Frame Count,Tag,FileAttributes Tagas3 GPU network,Metadata Tag攜帶信息,DoABC Tag,ShowFrame Tag,EndTag 攜帶數(shù)據(jù),加密,SymbolClassTag,Protect Tag防止導(dǎo)入,ScriptLimitTag遞歸深度 腳本運(yùn)行時(shí)間,SetBackgroundColor Tag設(shè)置背景,DoABC Tag,82,72 Tag Haxe 加密,AVM2 Actionscript Virtual Machine,AVM2,1. ABC data (Act

3、ionscript Byte Code),3. 運(yùn)行原理,2. ABC數(shù)據(jù)結(jié)構(gòu),4. 指令,Class Test private var a:String; private const BIG:uint = 50; private function test():void trace(doStr(); function doStr():String return “NULL” ,ABC數(shù)據(jù)結(jié)構(gòu),AVM2運(yùn)行原理,ABC,Load,Link,Verify,Execute,Load:加載ABC數(shù)據(jù)到內(nèi)存并解析,得到所有數(shù)據(jù)單元 Script,Class,Instance,Trait,Strings

4、, ,Link:各單元之間的關(guān)系建立 比如Class與Instance, Method與MethodBody,Verify:檢查各abc數(shù)據(jù)的正確性 。要是不檢查正確性,player可以做很多壞事 分支檢查,堆棧檢查,比如一個(gè)MethodBody被鏈接到兩個(gè)Method上,Execute:開始執(zhí)行ABC數(shù)據(jù)。 官方:最后一個(gè)script結(jié)構(gòu)的init方法 Actually:文檔類所在Script結(jié)構(gòu)的init方法,Call Method,Method Body,Call,Method,0 getlocal0 1 pushscope 2 pushnull 3 coerce_s 4 setloca

5、l1 5 pushstring 7 setlocal1 8 getlocal1 9 pushstring ,程序優(yōu)化,從pccode層面來(lái)程序優(yōu)化,1.程序運(yùn)行時(shí)間的消耗在哪兒? 2.局部變量 3.Dynamic會(huì)快還是會(huì)慢? 4.Swich還是if else,是個(gè)問(wèn)題 5.Try catch的優(yōu)化,1.屬性、方法訪問(wèn)時(shí)的搜索 2.分支跳轉(zhuǎn),局部變量一般情況下是不會(huì)編譯到swf中去。所以無(wú)需考慮其長(zhǎng)度 比如 var theLengthOf Array:uint,Lookupswitch指令的特殊結(jié)構(gòu)。,動(dòng)態(tài)調(diào)用會(huì)消耗更多的搜索時(shí)間。,保存局部變量名稱,Where should we go next?,1.各自回工位,2.學(xué)習(xí)更

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論