Example #1
0
        //------------------------------------------------------------------------------
        // Copy For Bake
        //------------------------------------------------------------------------------
        public void CopyFromAnimEvent(apAnimEvent srcEvent)
        {
            _frameIndex     = srcEvent._frameIndex;
            _frameIndex_End = srcEvent._frameIndex_End;

            _eventName = srcEvent._eventName;
            _callType  = srcEvent._callType;

            _subParams.Clear();
            for (int iParam = 0; iParam < srcEvent._subParams.Count; iParam++)
            {
                SubParameter srcParam = srcEvent._subParams[iParam];

                //파라미터 복사
                SubParameter newParam = new SubParameter();

                newParam._paramType = srcParam._paramType;

                newParam._boolValue  = srcParam._boolValue;
                newParam._intValue   = srcParam._intValue;
                newParam._floatValue = srcParam._floatValue;
                newParam._vec2Value  = srcParam._vec2Value;
                newParam._strValue   = srcParam._strValue;

                newParam._intValue_End   = srcParam._intValue_End;
                newParam._floatValue_End = srcParam._floatValue_End;
                newParam._vec2Value_End  = srcParam._vec2Value_End;

                _subParams.Add(newParam);
            }
        }
Example #2
0
        /// <summary>
        /// Adds the caller of the specified type.
        /// </summary>
        /// <param name="source">Address of calling function or address of pe table entry.</param>
        /// <param name="type">Whether it is a direct fixed offset call, or a pe table entry.</param>
        public void addCaller(uint source, CALL_TYPE type, string suggestedName)
        {
            switch (type)
            {
            case CALL_TYPE.FIXED_OFFSET:
                normalCallers.Add(source);
                break;

            case CALL_TYPE.PE_TABLE:
                peCallers.Add(source);
                break;

            case CALL_TYPE.JUMP_TABLE_PE:
                jumpTablePECallers.Add(source);
                break;

            case CALL_TYPE.CALLBACK_TABLE:
                callbackTableCallers.Add(source);
                break;

            case CALL_TYPE.PE_EXPORT:
                peExports.Add(source);
                break;

            default:
                MessageBox.Show("ERROR: Invalid add caller type.");
                break;
            }

            // Check if it's name has been assigned
            if (suggestedName != "")
            {
                // Decide whether to use this new name
                if (name == "")
                {
                    name = suggestedName;
                }
                else if (name.Contains("ordinal"))
                {
                    name = suggestedName; // "ordinal" is a weak name. Overwrite it with the new name.
                }
                else if (name.Contains("obfuscated"))
                {
                    name = suggestedName; // "obfuscated" is a weak name. Overwrite it with the new name.
                }
                else if (name.Contains("vtable"))
                {
                    name = suggestedName; // "vtable" is a weak name. Overwrite it with the new name.
                }
                else if (!name.Contains(suggestedName))
                {
                    name = name + "/" + suggestedName;
                }
            }
        }
Example #3
0
        // REQUEST FOR QUERY OR CRUD OPERATION
        private void request(WWW www, CALL_TYPE callType)
        {
            //set state to waiting until response is received
            rawResponse  = null;
            currentState = STATE.WAITING;

            //forward call to corresponding method
            switch (callType)
            {
            case CALL_TYPE.QUERY:
                StartCoroutine(executeQueryCall(www));
                break;

            case CALL_TYPE.CRUD:
                StartCoroutine(executeCRUDCall(www));
                break;
            }
        }
Example #4
0
        public oFunction(uint source, uint destination, CALL_TYPE type, string name)
        {
            // Initialize
            this.address         = destination;
            normalCallers        = new List <uint>(0);
            peCallers            = new List <uint>(0);
            peExports            = new List <uint>(0);
            jumpTablePECallers   = new List <uint>(0);
            callbackTableCallers = new List <uint>(0);
            this.name            = "";

            // Set the stack arguments
            arguments = new List <oArgument>(3);
            arguments.Add(new oArgument("mov ecx, ", "ecx"));
            arguments.Add(new oArgument("mov edx, ", "edx"));
            arguments.Add(new oArgument("mov eax, ", "eax"));

            // Add the first caller
            addCaller(source, type, name);
        }