Sothink SWF Decompiler использует ноль в странных местах - PullRequest
0 голосов
/ 25 июня 2011

Я пытался выяснить фоновую математику в Flash игре с помощью SWF-декомпилятора Sothink для просмотра файлов ActionScript.Правда, я очень мало знаю о ActionScript, но я вижу строки кода, которые выглядят следующим образом:

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

или:

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

С того места, где я стою, значение <= null </em> не имеет особого смысла, равно как и null * true или null & null .Я просто неправильно понимаю ActionScript или это ошибка в процессе декомпиляции?Если это ошибка, есть ли способ ее решить?

1 Ответ

0 голосов
/ 25 июня 2011

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 - набор локальных переменных.к истине

...