避免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):void
2 {
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);
原文地址:https://www.cnblogs.com/hammerc/p/3942235.html