//------------------------------------------------------------------------------ // 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); } }
/// <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; } } }
// 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; } }
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); }