MCPcopy Create free account
hub / github.com/HyperDbg/HyperDbg / SetValue

Function SetValue

hyperdbg/script-eval/code/ScriptEngineEval.c:184–223  ·  view source on GitHub ↗

* @brief Set the value * * @param GuestRegs * @param ScriptGeneralRegisters * @param Symbol * @param Value * @return VOID */

Source from the content-addressed store, hash-verified

182 * @return VOID
183 */
184VOID
185SetValue(PGUEST_REGS GuestRegs,
186 SCRIPT_ENGINE_GENERAL_REGISTERS * ScriptGeneralRegisters,
187 PSYMBOL Symbol,
188 UINT64 Value)
189{
190 switch (Symbol->Type)
191 {
192 case SYMBOL_GLOBAL_ID_TYPE:
193 ScriptGeneralRegisters->GlobalVariablesList[Symbol->Value] = Value;
194 return;
195 case SYMBOL_REGISTER_TYPE:
196 SetRegValueUsingSymbol(GuestRegs, Symbol, Value);
197 return;
198
199 case SYMBOL_STACK_INDEX_TYPE:
200 ScriptGeneralRegisters->StackIndx = Value;
201 return;
202
203 case SYMBOL_STACK_BASE_INDEX_TYPE:
204 ScriptGeneralRegisters->StackBaseIndx = Value;
205 return;
206
207 case SYMBOL_RETURN_VALUE_TYPE:
208 ScriptGeneralRegisters->ReturnValue = Value;
209 return;
210
211 case SYMBOL_TEMP_TYPE:
212 ScriptGeneralRegisters->StackBuffer[ScriptGeneralRegisters->StackBaseIndx + Symbol->Value] = Value;
213 return;
214
215 case SYMBOL_DEREFERENCE_TEMP_TYPE:
216 *(UINT64 *)ScriptGeneralRegisters->StackBuffer[ScriptGeneralRegisters->StackBaseIndx + Symbol->Value] = Value;
217 return;
218
219 case SYMBOL_FUNCTION_PARAMETER_ID_TYPE:
220 ScriptGeneralRegisters->StackBuffer[ScriptGeneralRegisters->StackBaseIndx - 3 - Symbol->Value] = Value;
221 return;
222 }
223}
224
225/**
226 * @brief Get the operator name

Callers 1

ScriptEngineExecuteFunction · 0.85

Calls 1

SetRegValueUsingSymbolFunction · 0.85

Tested by

no test coverage detected