Open-Source Flex SDK project 提供了一個命令列的小工具,稱為:「swfdump」,我們可以用它來反組譯包含ActionScript 3.0的SWF檔案,不過要利用此工具之前~ 必須先做一些相關的處理。
swfdump建置步驟
Step 1. 請設置好你的Apache Ant,並設好「Path」環境變數。
Step 2. 確認你的「JAVA_HOME」環境變數已經指到你的JDK目錄夾位置。
Step 3. 請下載Flex SDK的原始碼,可參考「Flex 3 is Now Open Source !!」。
Step 4. 切換工作目錄至Flex SDK原始碼中的「trunk\modules\swfutils」,並輸入「ant」來編譯swfutils底下所有的Java程式並打包。
cd c:\flexsrc\trunk\modules\swfutils ant
Step 5. 切換至「trunk\bin」,然後進行反組譯「helloworld.swf」。
(這裡我們用Flash CS3開發一個含「trace("Hello World");」的測試檔案)
cd c:\flexsrc\trunk\bin swfdump -abc helloworld.swf
接著你就可以看到反組譯後的結果了~
………………… 01 02 01 0A 0B 0A function helloworld_fla:MainTimeline::helloworld_fla:frame1(): maxStack:2 localCount:1 initScopeDepth:10 maxScopeDepth:11 D0 getlocal0 30 pushscope 5D 04 findpropstrict :trace 2C 09 pushstring "Hello World" 4F 04 01 callpropvoid :trace (1) 47 returnvoid 0 Extras 0 Traits Entries 02 03 01 0A 0B 0F function helloworld_fla:MainTimeline::helloworld_fla:MainTimeline(): maxStack:3 localCount:1 initScopeDepth:10 maxScopeDepth:11 D0 getlocal0 30 pushscope D0 getlocal0 49 00 constructsuper (0) 5D 05 findpropstrict :addFrameScript 24 00 pushbyte 0 60 03 getlex helloworld_fla:frame1 4F 05 02 callpropvoid :addFrameScript (2) 47 returnvoid 0 Extras 0 Traits Entries …………………
Good luck! ^^
參考資源
哇~還在想說AS3.0不會反組譯怎麼辦 學長果然超猛(大拇指)
2008-02-26 00:15:58
ㄎㄎ~ 一起來研究研究吧~ ^^
2008-02-26 10:24:02