我有一個嵌入了SWF(它本身包含AS3)一些AS3代碼:swf嵌入時會發生什麼?
[Embed(source="/assets/myas3libswf.swf", mimeType="application/octet-stream")]
protected static const MyAs3LibSwfClass : Class;
...
var loader:Loader= new Loader();
loader.loadBytes(new MySwfClass() as ByteArray);
...
在尋找如何閃光反編譯器(Trillix,所以思考,等等)看到這一點,他們只是顯示:
//MyClass_MyAs3LibSwfClass
package mypackage
{
import mx.core.*;
public class MyClass_MyAs3LibSwfClass extends mx.core.ByteArrayAsset
{
public function MyClass_MyAs3LibSwfClass()
{
super();
return;
}
}
}
他們似乎也沒有提供任何方式來提取ByteArray。
當然,它不是那麼容易混淆AS3代碼。但SWF去了哪裏?用十六進制編輯器查看它,我甚至找不到嵌入式SWF的開始標頭(「CWS」)。
我的問題是:當它嵌入爲ByteArray時,SWF會發生什麼?並且任何反編譯器都支持提取嵌入的ByteArray?
注意:我沒有嵌入此SWF以混淆(還有其他原因)。我只是對嵌入的反編譯後果感興趣。
我很確定SWF是一個zip文件。如果您將SWF上的擴展名(包含嵌入的SWF)更改爲zip;並解壓縮它你發現了什麼?我預計所有嵌入式資產都在那裏;作爲SWF zip中的元素。 – JeffryHouser 2011-04-26 19:11:58
不,a * SWC *是一個zip文件。 SWF是它自己的二進制格式。 – paleozogt 2011-04-26 19:18:54
已確認。我猜他們是相似的。 ;) – JeffryHouser 2011-04-26 20:34:04