在测试我自己的 DoABC 标签解析器(Actionscript 字节码)实现时,我遇到了一个 swf 文件,其中有一些奇怪的东西。有一种使用字节码的方法几乎没有任何意义(即使是未定义的操作码!)。
我发现了更多具有这种方法的 swf 文件。奇怪的是,这个方法似乎总是具有相同的长度,并且总是最后一个定义的,但字节码因文件而异。然而,swf 文件似乎不受此方法的任何影响,因为它工作正常。我想也许这个方法没有被调用,但目前我无法验证。
有人知道这个方法的目的是什么吗? 作为引用,这里有一个这样的文件:http://swf.tubechop.com/tubechop.swf
最佳答案
这个 swf 有一些非常奇怪的东西,我很确定它被混淆了。 例如,这出现在每个方法的开头:
#1 pushbyte byteValue: 37
#2 pushbyte byteValue: 34
#3 ifne reference: #6
反编译成
if(37 != 34)
至于你找到的方法,看起来完全是胡言乱语。没有对它的引用,因此验证者永远不会查看代码。绝对是阻止反编译的好技术。
我用我自己的应用程序检查了它:http://swfwire.com/inspector
关于flash - ActionScript DoABC 标签中的奇怪方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5078741/