首页 > 代码库 > 避免SWF被内存提取工具提取的方法

避免SWF被内存提取工具提取的方法

内存工具从内存中抓取SWF一般是依靠寻找SWF的前7个字节(3个SWF文件必有的标示字节“FWS”或“CWS”或“ZWS”+4个记录该SWF文件长度的字节),所以避免被提取我们只要在加载SWF到内存后,修改这头7个字节即可(SWF加载后修改这几个字节不影响SWF的运行)。

 

那么SWF在内存中的字节在哪儿呢?

1.对于文档类来说就是:

1 this.loaderInfo.bytes;

2.对于加载的SWF来说是:

1 loader.contentLoaderInfo.bytes;

 

所以我们只要修改这个字节数组即可,给前7个字节设定为随机的字节:

1 public function hideSWF(bytes:ByteArray):void2 {3     for(var i:int = 0; i < 7; i++)4     {5         bytes[i] = int(0xFF * Math.random());6     }7 }

 

例:

1 hideSWF(this.loaderInfo.bytes);2 hideSWF(loader.contentLoaderInfo.bytes);

 

避免SWF被内存提取工具提取的方法