反編譯Flash簡介
反編譯Flash是指用Flash反編譯軟體把AdobeFlash ,Flex或第三方工具生成的SWF檔案,重新生成對應(或等效)的源檔案的過程.以再次編譯生成的SWF和原來功能(甚至大小)完全或基本一致作為反編譯成功的標誌.原SWF中包含的所有代碼必須在新生成的SWF有對應的版本.需要注意的是由於受編譯器及反編譯器的工作原理所限,新編譯的SWF里有時會包含額外的代碼以使編譯通過.
源檔案格式分類
最終得到的源檔案分為以下幾種格式:Fla(xfl),Flex工程,其他第三方工程檔案.
Flash IDE編譯的SWF
可以100%地反編譯為Fla(xfl).
Flex編譯的SWF
部分可以反編譯為Fla(xfl),部分可以在手工修改後反編譯為Fla,部分則只能反編譯為Flex工程.
第三方軟體編譯的SWF
簡單的如Swish生成的SWF可以直接反編譯為Fla(xfl).
複雜一些的往往需要大量手工修改後才能生成等效的源檔案(Fla(xfl)/Flex/第三方工程檔案).使用工具軟體如 Action Script Viewer(ASV2013)進行反編譯的結果往往無法直接再次編譯通過.因為第三方軟體使用的可能不是標準的ActionScript語法,反編譯獲得的代碼無法通過Adobe官方Flash編譯器的檢查,如Mtasc,Haxe等生成的SWF.