Найдите, что означает _local_x или _arg_x? - PullRequest
0 голосов
/ 26 ноября 2018

Я работаю над большим проектом Flash.Я попробовал «декларацию Гото», но это не помогает.Кстати, я использую FlashDevelop.И да, я могу прекрасно скомпилировать и собрать ДО 100% работающий исходник.Вот пример кода.Я знаю, что с этим мало что можно сделать, но расскажите, как я могу с этим работать.

public function aim_(_arg_1:Vector3D, _arg_2:Vector3D, _arg_3:ProjectileProperties):Vector3D
        {
            var _local_4:Vector3D;
            var _local_5:GameObject;
            var _local_6:Vector3D;
            var _local_7:Number;
            var _local_8:Number;
            var _local_9:int;
            var _local_10:Boolean;
            var _local_11:int;
            var _local_12:Boolean;
            var _local_13:* = undefined;
            var _local_14:int = Parameters.data_.aimMode;
            var _local_15:Number = (_arg_3.speed_ / 10000);
            var _local_16:Number = ((_local_15 * _arg_3.lifetime_) + ((Parameters.data_.Addone) ? 1 : 0));
            var _local_17:Number = 0;
            var _local_18:Number = int.MAX_VALUE;
            var _local_19:Number = int.MAX_VALUE;
            aimAssistTarget = null;
            for each (_local_5 in map_.goDict_)
            {
                if (_local_5.props_.isEnemy_)
                {
                    _local_10 = false;
                    for each (_local_11 in Parameters.data_.AAException)
                    {
                        if (_local_11 == _local_5.props_.type_)
                        {
                            _local_10 = true;
                            break;
                        };
                    };

1 Ответ

0 голосов
/ 26 ноября 2018

То, что вы пытаетесь достичь, это обратный инжиниринг декомпилированный код.С переменными "_local" вам нужно выяснить, каким значениям они присваиваются, в каких алгоритмах они участвуют, и здесь вам просто нужно полностью прочитать эту единственную функцию, чтобы иметь возможность различить значение этих локальных переменных.Но вам также нужно понять многие из названных параметров, чтобы получить некоторые из этих значений.Например, _local_11 перебирает некоторый список Parameters.data_.AAException целых и сравнивается с текущим итератором внешнего цикла props.type_, поэтому «AAException» должно означать «исключение AA», а _local_10 предоставляет результат проверки, является ли текущий врагосвобожден от АА (что бы это ни было АА).И так далее.

То же самое с _arg_X переменными, вам нужно выяснить, что передается в функцию, откуда бы она ни вызывалась, и извлечь контекст этих параметров, также принимая во внимание их тип, как здесь _arg3 isтипа «ProjectileProperties», что означает, что эта функция должна относиться к некоторому снаряду, свойства которого как-то влияют на его результат.Скорее всего, он берет два вектора снаряда (или источника, который находится за пределами этого кода) и цели (или скорости, то же самое здесь) и генерирует еще один вектор с неизвестной целью.

Когда вы исследовали каждую функциютаким образом, у вас будет довольно много частей для одной головоломки, которую вы можете объединить по ссылкам, открывая для себя все алгоритмы, которые объединяют код любого приложения, которое вы декомпилировали.Тогда вы сможете делать целевые модификации любого вида, который вы хотели изначально.Но да, было бы лучше, если бы у вас был доступ к фактическим источникам от того, кто создал это в первый раз.

Короче говоря: подумайте.Думай, думай и думай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...