查找_local_x或_arg_x意味着什么?

时间:2018-11-26 02:04:34

标签: actionscript-3 flash

我正在处理一个大型Flash项目。 我已经尝试过“ Goto声明”,但这似乎没有帮助。 顺便说一句,我正在使用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 :(得分:0)

您要实现的是反向工程反编译代码。使用“ _local”变量,您需要调查它们分配了哪些值,它们参与了哪些算法,在这里,您只需要完整阅读此单个函数即可辨别那些局部变量的含义。但是,您还需要了解许多命名参数才能获得其中的某些含义。例如,_local_11遍历一些Parameters.data_.AAException整数列表,并与当前外部循环迭代器的props.type_进行比较,因此“ AAException”应表示“ AA豁免”和_local_10提供检查结果,确定当前敌人是否免于AA(无论是AA)。等等。

_arg_X变量一样,您需要从调用的地方找出传递给函数的内容,并检索这些参数的上下文,并考虑它们的类型,例如此处_arg3是“ ProjectileProperties”类型的,表示此功能应与某些弹丸有关,其属性会以某种方式影响其结果。最有可能的是,它采用了两个射弹矢量(或源,不在代码中)和目标(或速度,此处相同),并生成了另一个目的未知的矢量。

研究完每个这样的函数后,您将获得很多拼图,可以通过引用将其组合起来,从而发现所有组合了已反编译应用程序代码的算法。然后,您将能够针对您最初想要的任何类型进行有针对性的修改。但是,是的,如果您可以从第一次创建此文件的人那里访问实际资源,那就更好了。

简而言之:思考。想,想,想。