0

我一直试图通过使用 Sothink SWF 反编译器查看 ActionScript 文件来找出Flash 游戏中的背景数学。诚然,我对 ActionScript 知之甚少,但我看到的代码行如下所示:

_loc_2 = null * (null * true) <= null;

或者:

_loc_3 = null & null << (null === false);

从我的立场来看,value <= null没有多大意义,null * truenull & null也没有。我只是没有正确理解 ActionScript,还是反编译过程中的错误?如果是错误,有什么办法可以解决吗?

4

1 回答 1

0

swf 可能已使用混淆器加密,这就是为什么您会看到这样的废话。您可以自己测试此代码(尽管您必须在非严格模式下编译):

trace( "null & null: " + ( null & null ) ); // traces 0
trace( "null === false: " + ( null === false ) ); // traces false
trace( "null & null << (null === false): " + (null & null << (null === false)) ); // traces 0
trace( "null * true: " + ( null * true ) ); // traces 0
trace( "null * null * true " + ( null * ( null * true ) ) ); // traces 0
trace( "null * (null * true) <= null: " + (null * (null * true) <= null) ); // traces true

所以基本上_loc_2是将局部变量设置为0,而_loc_3将局部变量设置为true

于 2011-06-25T16:43:16.217 回答