blog.Ring.idv.tw

利用swfdump反組譯ActionScript 3.0

利用swfdump反組譯ActionScript 3.0


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! ^^

參考資源

Disassembling a SWF with swfdump

2008-02-25 23:18:22

2 comments on "利用swfdump反組譯ActionScript 3.0"

  1. 1. 宗諺 說:

    哇~還在想說AS3.0不會反組譯怎麼辦 學長果然超猛(大拇指)

    2008-02-26 00:15:58

  2. 2. Shen 說:

    ㄎㄎ~ 一起來研究研究吧~ ^^

    2008-02-26 10:24:02

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment