




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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層面來程序優(yōu)化,1.程序運(yùn)行時(shí)間的消耗在哪兒? 2.局部變量 3.Dynamic會(huì)快還是會(huì)慢? 4.Swich還是if else,是個(gè)問題 5.Try catch的優(yōu)化,1.屬性、方法訪問時(shí)的搜索 2.分支跳轉(zhuǎn),局部變量一般情況下是不會(huì)編譯到swf中去。所以無需考慮其長度 比如 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市西城區(qū)2025年三年級(jí)數(shù)學(xué)第二學(xué)期期末監(jiān)測(cè)模擬試題含解析
- 貴州黔南經(jīng)濟(jì)學(xué)院《批判性閱讀與寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西工商學(xué)院《課堂教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江紡織服裝職業(yè)技術(shù)學(xué)院《插花藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《建筑安裝工程概預(yù)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 供應(yīng)鏈可持續(xù)性:環(huán)境與社會(huì)風(fēng)險(xiǎn)管理
- 有機(jī)蔬菜種植盒市場(chǎng)調(diào)查報(bào)告
- 許昌垂直車庫施工方案
- 2025年黃金投資分析報(bào)告:全球流動(dòng)與價(jià)格波動(dòng)中的關(guān)鍵信號(hào)
- 超長結(jié)構(gòu)廠房施工方案
- 肺結(jié)核病人的心理護(hù)理
- 2025年開封文化藝術(shù)職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫含答案
- 2025年遼寧冶金職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫有完整答案
- 2025年安徽揚(yáng)子職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫(各地真題)
- 煙草職業(yè)鑒定三級(jí)技能考點(diǎn)
- 創(chuàng)新創(chuàng)業(yè)項(xiàng)目計(jì)劃書撰寫
- 2024年上海市楊浦區(qū)復(fù)旦大學(xué)附中自主招生數(shù)學(xué)試卷
- 《汽車底盤構(gòu)造與維修》專業(yè)課程標(biāo)準(zhǔn)
- 2024年江西應(yīng)用工程職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫標(biāo)準(zhǔn)卷
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 做賬實(shí)操-建筑施工企業(yè)的收入確認(rèn)方法
評(píng)論
0/150
提交評(píng)論