diff --git a/hyperdbg/hprdbgctrl/sewrapper.cpp b/hyperdbg/hprdbgctrl/sewrapper.cpp index 5887c5b3..6e8100a0 100644 --- a/hyperdbg/hprdbgctrl/sewrapper.cpp +++ b/hyperdbg/hprdbgctrl/sewrapper.cpp @@ -54,6 +54,7 @@ VOID ScriptEngineWrapperTestPerformAction(PGUEST_REGS_USER_MODE GuestRegs, UINT64 g_TempList[MAX_TEMP_COUNT] = {0}; UINT64 g_VariableList[MAX_VAR_COUNT] = {0}; + ACTION_BUFFER ActionBuffer = {0}; if (CodeBuffer->Message == NULL) { PrintSymbolBuffer(CodeBuffer); @@ -61,7 +62,16 @@ VOID ScriptEngineWrapperTestPerformAction(PGUEST_REGS_USER_MODE GuestRegs, for (int i = 0; i < CodeBuffer->Pointer;) { printf("%d\n", i); - ScriptEngineExecute(GuestRegs, NULL, FALSE, (UINT64 *)g_TempList, + // + // Fill the action buffer but as we're in user-mode here + // then there is nothing to fill + // + ActionBuffer.Context = NULL; + ActionBuffer.CurrentAction = NULL; + ActionBuffer.ImmediatelySendTheResults = FALSE; + ActionBuffer.Tag = NULL; + + ScriptEngineExecute(GuestRegs, ActionBuffer, (UINT64 *)g_TempList, (UINT64 *)g_VariableList, CodeBuffer, &i); } RemoveSymbolBuffer(CodeBuffer); diff --git a/hyperdbg/hprdbghv/Debugger.c b/hyperdbg/hprdbghv/Debugger.c index 1afbd11b..a0489a14 100644 --- a/hyperdbg/hprdbghv/Debugger.c +++ b/hyperdbg/hprdbghv/Debugger.c @@ -982,14 +982,6 @@ DebuggerPerformBreakToDebugger(UINT64 Tag, PDEBUGGER_EVENT_ACTION Action, PGUEST * @param Context Optional parameter * @return VOID */ -typedef struct ACTION_BUFFER -{ - UINT64 Tag; - UINT64 CurrentAction; - BOOLEAN ImmediatelySendTheResults; - PVOID Context; -} ACTION_BUFFER, *PACTION_BUFFER; - VOID DebuggerPerformRunScript(UINT64 Tag, PDEBUGGER_EVENT_ACTION Action, PGUEST_REGS Regs, PVOID Context) { @@ -1016,7 +1008,7 @@ DebuggerPerformRunScript(UINT64 Tag, PDEBUGGER_EVENT_ACTION Action, PGUEST_REGS for (int i = 0; i < CodeBuffer.Pointer;) { - ScriptEngineExecute(Regs, Action->Tag, Action->ImmediatelySendTheResults, (UINT64 *)g_TempList, (UINT64 *)g_VariableList, &CodeBuffer, &i); + ScriptEngineExecute(Regs, ActionBuffer, (UINT64 *)g_TempList, (UINT64 *)g_VariableList, &CodeBuffer, &i); } } diff --git a/hyperdbg/include/ScriptEngineCommon.h b/hyperdbg/include/ScriptEngineCommon.h index dc2e3e5a..6ff83312 100644 --- a/hyperdbg/include/ScriptEngineCommon.h +++ b/hyperdbg/include/ScriptEngineCommon.h @@ -377,7 +377,8 @@ UINT64 GetRegValue(PGUEST_REGS_USER_MODE GuestRegs, PSYMBOL Symbol) { // TODO: Add all the register } } -UINT64 GetPseudoRegValue(PSYMBOL Symbol) { +UINT64 GetPseudoRegValue(PSYMBOL Symbol, ACTION_BUFFER ActionBuffer) { + switch (Symbol->Value) { case PSEUDO_REGISTER_TID: return ScriptEnginePseudoRegGetTid(); @@ -394,8 +395,7 @@ UINT64 GetPseudoRegValue(PSYMBOL Symbol) { case PSEUDO_REGISTER_IP: return ScriptEnginePseudoRegGetIp(); case PSEUDO_REGISTER_BUFFER: - // return ScriptEnginePseudoRegGetBuffer(); - return NULL; + return ScriptEnginePseudoRegGetBuffer((UINT64 *)ActionBuffer.CurrentAction); case INVALID: #ifdef SCRIPT_ENGINE_USER_MODE printf("Error in reading regesiter"); @@ -404,8 +404,8 @@ UINT64 GetPseudoRegValue(PSYMBOL Symbol) { // TODO: Add all the register } } -UINT64 GetValue(PGUEST_REGS_USER_MODE GuestRegs, UINT64 *g_TempList, - UINT64 *g_VariableList, PSYMBOL Symbol) { +UINT64 GetValue(PGUEST_REGS_USER_MODE GuestRegs, ACTION_BUFFER ActionBuffer, + UINT64 *g_TempList, UINT64 *g_VariableList, PSYMBOL Symbol) { switch (Symbol->Type) { case SYMBOL_ID_TYPE: @@ -415,7 +415,7 @@ UINT64 GetValue(PGUEST_REGS_USER_MODE GuestRegs, UINT64 *g_TempList, case SYMBOL_REGISTER_TYPE: return GetRegValue(GuestRegs, Symbol); case SYMBOL_PSEUDO_REG_TYPE: - return GetPseudoRegValue(Symbol); + return GetPseudoRegValue(Symbol, ActionBuffer); case SYMBOL_TEMP_TYPE: return g_TempList[Symbol->Value]; } @@ -434,8 +434,8 @@ VOID SetValue(PGUEST_REGS_USER_MODE GuestRegs, UINT64 *g_TempList, } // -VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, - BOOLEAN ImmediateMessagePassing, UINT64 *g_TempList, +VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, + ACTION_BUFFER ActionDetail, UINT64 *g_TempList, UINT64 *g_VariableList, PSYMBOL_BUFFER CodeBuffer, int *Indx) { @@ -460,7 +460,7 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src0 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal0 = GetValue(GuestRegs, g_TempList, g_VariableList, Src0); + SrcVal0 = GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0); switch (Operator->Value) { case FUNC_OR: @@ -468,7 +468,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -488,7 +489,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -508,7 +510,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -528,7 +531,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -548,7 +552,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -567,7 +572,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -586,7 +592,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -604,7 +611,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -623,7 +631,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -641,7 +650,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, Src1 = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - SrcVal1 = GetValue(GuestRegs, g_TempList, g_VariableList, Src1); + SrcVal1 = + GetValue(GuestRegs, ActionDetail, g_TempList, g_VariableList, Src1); Des = (PSYMBOL)((unsigned long long)CodeBuffer->Head + (unsigned long long)(*Indx * sizeof(SYMBOL))); @@ -661,8 +671,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordPoi( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordPoi((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -676,8 +686,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordDb( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordDb((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -690,8 +700,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordDb( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordDb((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -704,8 +714,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordDq( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordDq((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -773,8 +783,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordHi( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordHi((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -787,8 +797,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, (unsigned long long)(*Indx * sizeof(SYMBOL))); *Indx = *Indx + 1; - DesVal = ScriptEngineKeywordLow( - (PUINT64)GetValue(GuestRegs, g_TempList, g_VariableList, Src0)); + DesVal = ScriptEngineKeywordLow((PUINT64)GetValue( + GuestRegs, ActionDetail, g_TempList, g_VariableList, Src0)); SetValue(GuestRegs, g_TempList, g_VariableList, Des, DesVal); #ifdef SCRIPT_ENGINE_USER_MODE @@ -823,7 +833,8 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, // // Call the target function // - ScriptEngineFunctionPrint(Tag, ImmediateMessagePassing, SrcVal0); + ScriptEngineFunctionPrint(ActionDetail.Tag, + ActionDetail.ImmediatelySendTheResults, SrcVal0); return; case FUNC_JSON: @@ -835,8 +846,9 @@ VOID ScriptEngineExecute(PGUEST_REGS_USER_MODE GuestRegs, UINT64 Tag, sizeof(SYMBOL) + 1); - ScriptEngineFunctionJson(Tag, ImmediateMessagePassing, (char *)&Src1->Value, - SrcVal0); + ScriptEngineFunctionJson(ActionDetail.Tag, + ActionDetail.ImmediatelySendTheResults, + (char *)&Src1->Value, SrcVal0); return; } diff --git a/hyperdbg/include/ScriptEngineCommonDefinitions.h b/hyperdbg/include/ScriptEngineCommonDefinitions.h index bbfefc3e..709c9ff5 100644 --- a/hyperdbg/include/ScriptEngineCommonDefinitions.h +++ b/hyperdbg/include/ScriptEngineCommonDefinitions.h @@ -3,22 +3,28 @@ #define SCRIPT_ENGINE_COMMON_DEFINITIONS_H typedef struct SYMBOL { - long long unsigned Type; - long long unsigned Value; -} SYMBOL, * PSYMBOL; + long long unsigned Type; + long long unsigned Value; +} SYMBOL, *PSYMBOL; typedef struct SYMBOL_BUFFER { - PSYMBOL Head; - unsigned int Pointer; - unsigned int Size; - char* Message; -} SYMBOL_BUFFER, * PSYMBOL_BUFFER; + PSYMBOL Head; + unsigned int Pointer; + unsigned int Size; + char *Message; +} SYMBOL_BUFFER, *PSYMBOL_BUFFER; -typedef struct SYMBOL_MAP -{ - char* Name; - long long unsigned Type; -} SYMBOL_MAP, * PSYMBOL_MAP; +typedef struct SYMBOL_MAP { + char *Name; + long long unsigned Type; +} SYMBOL_MAP, *PSYMBOL_MAP; + +typedef struct ACTION_BUFFER { + long long unsigned Tag; + long long unsigned CurrentAction; + char ImmediatelySendTheResults; + long long unsigned Context; +} ACTION_BUFFER, *PACTION_BUFFER; #define SYMBOL_ID_TYPE 0 #define SYMBOL_NUM_TYPE 1 @@ -26,11 +32,10 @@ typedef struct SYMBOL_MAP #define SYMBOL_PSEUDO_REG_TYPE 3 #define SYMBOL_SEMANTIC_RULE_TYPE 4 #define SYMBOL_TEMP_TYPE 5 +#define SYMBOL_STRING_TYPE 6 #define INVALID -1 - - #define FUNC_OR 0 #define FUNC_XOR 1 #define FUNC_AND 2 diff --git a/hyperdbg/script-engine/parse_table.c b/hyperdbg/script-engine/parse_table.c index 2ab64ac0..ccac27bf 100644 --- a/hyperdbg/script-engine/parse_table.c +++ b/hyperdbg/script-engine/parse_table.c @@ -186,103 +186,103 @@ const unsigned int RhsSize[RULES_COUNT]= }; const char* NoneTerminalMap[NONETERMINAL_COUNT]= { -"E6'", -"E8'", -"E2", -"E8", -"S", -"E5'", -"S'", -"C'", -"E2'", -"E3'", -"E6", "E11", -"E1", +"E8'", "E5", -"E9'", -"E7", -"E4", -"E7'", -"C", +"C'", "E4'", -"E9", -"E10", -"E1'", -"E0'", "E3", -"E0" +"E8", +"C", +"S'", +"E0'", +"E10", +"E6", +"E3'", +"E9'", +"E6'", +"E1'", +"E7", +"E9", +"E2'", +"E5'", +"E7'", +"E4", +"S", +"E1", +"E0", +"E2" }; const char* TerminalMap[TERMINAL_COUNT]= { -";", -"+", -"&", -"=", -"%", -"not", -"^", -"/", -"*", -"dw", -"(", -"dq", -"wstr", -"_pseudo_register", -"_binary", -"str", -"sizeof", -"hi", -"_register", -"poi", -"$", -"db", -")", -">>", -"_octal", -"_hex", -"func", -",", "_decimal", -"_id", -"neg", -"json", -"low", -"print", +"*", +",", +"db", "<<", +"str", +"print", +"_register", "_string", -"dd", +"(", +")", +"/", +"not", +"wstr", +"hi", "-", -"|" +"func", +"json", +"neg", +"sizeof", +">>", +"$", +"_id", +"low", +";", +"dd", +"_hex", +"_octal", +"dw", +"=", +"&", +"^", +"dq", +"+", +"_pseudo_register", +"|", +"poi", +"_binary", +"%" }; const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT]= { - {27 ,27 ,27 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,27 ,27 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,26 ,27 }, - {33 ,33 ,33 ,-1 ,-1 ,-1 ,33 ,32 ,33 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,33 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,33 ,33 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 ,-1 ,13 ,13 ,13 ,13 ,13 ,13 ,13 ,13 ,13 ,13 ,13 ,-1 ,13 ,-1 ,-1 ,13 ,13 ,13 ,-1 ,13 ,-1 ,13 ,-1 ,13 ,-1 ,-1 ,-1 ,13 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,31 ,-1 ,-1 ,-1 ,31 ,31 ,31 ,31 ,31 ,31 ,31 ,31 ,31 ,31 ,31 ,-1 ,31 ,-1 ,-1 ,31 ,31 ,31 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,-1 ,-1 ,-1 ,31 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 ,-1 ,0 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {24 ,23 ,24 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,24 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,2 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,1 ,-1 ,1 ,-1 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {6 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {15 ,-1 ,14 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 }, - {18 ,-1 ,18 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,17 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,25 ,-1 ,-1 ,-1 ,25 ,25 ,25 ,25 ,25 ,25 ,25 ,25 ,25 ,25 ,25 ,-1 ,25 ,-1 ,-1 ,25 ,25 ,25 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,-1 ,-1 ,-1 ,25 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,57 ,-1 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 ,-1 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,10 ,-1 ,10 ,-1 ,-1 ,10 ,10 ,10 ,-1 ,10 ,-1 ,10 ,-1 ,10 ,-1 ,-1 ,-1 ,10 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,22 ,-1 ,-1 ,-1 ,22 ,22 ,22 ,22 ,22 ,22 ,22 ,22 ,22 ,22 ,22 ,-1 ,22 ,-1 ,-1 ,22 ,22 ,22 ,-1 ,22 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,-1 ,22 ,-1 ,-1 }, - {36 ,36 ,36 ,-1 ,35 ,-1 ,36 ,36 ,36 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,36 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,36 ,36 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 ,-1 ,28 ,28 ,28 ,28 ,28 ,28 ,28 ,28 ,28 ,28 ,28 ,-1 ,28 ,-1 ,-1 ,28 ,28 ,28 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,-1 ,-1 ,-1 ,28 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 ,-1 ,19 ,19 ,19 ,19 ,19 ,19 ,19 ,19 ,19 ,19 ,19 ,-1 ,19 ,-1 ,-1 ,19 ,19 ,19 ,-1 ,19 ,-1 ,19 ,-1 ,19 ,-1 ,-1 ,-1 ,19 ,-1 ,-1 }, - {30 ,30 ,30 ,-1 ,-1 ,-1 ,30 ,-1 ,29 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,30 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,30 ,30 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,3 ,-1 ,5 ,-1 ,4 ,-1 ,-1 ,-1 ,-1 ,-1 }, - {21 ,-1 ,21 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,21 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,21 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,34 ,-1 ,-1 ,-1 ,34 ,34 ,34 ,34 ,34 ,34 ,34 ,34 ,34 ,34 ,34 ,-1 ,34 ,-1 ,-1 ,34 ,34 ,34 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,-1 ,-1 ,-1 ,34 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,48 ,-1 ,-1 ,-1 ,40 ,49 ,41 ,43 ,56 ,54 ,42 ,44 ,46 ,50 ,37 ,-1 ,38 ,-1 ,-1 ,53 ,51 ,55 ,-1 ,52 ,-1 ,45 ,-1 ,47 ,-1 ,-1 ,-1 ,39 ,-1 ,-1 }, - {12 ,-1 ,-1 ,-1 ,-1 ,-1 ,11 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 }, - {9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,8 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 ,-1 ,16 ,16 ,16 ,16 ,16 ,16 ,16 ,16 ,16 ,16 ,16 ,-1 ,16 ,-1 ,-1 ,16 ,16 ,16 ,-1 ,16 ,-1 ,16 ,-1 ,16 ,-1 ,-1 ,-1 ,16 ,-1 ,-1 }, - {-1 ,-1 ,-1 ,-1 ,-1 ,7 ,-1 ,-1 ,-1 ,7 ,7 ,7 ,7 ,7 ,7 ,7 ,7 ,7 ,7 ,7 ,-1 ,7 ,-1 ,-1 ,7 ,7 ,7 ,-1 ,7 ,-1 ,7 ,-1 ,7 ,-1 ,-1 ,-1 ,7 ,-1 ,-1 } + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,57 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,33 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,32 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,33 ,-1 ,-1 ,-1 ,-1 ,-1 ,33 ,33 ,-1 ,33 ,-1 ,33 ,-1 ,-1 ,-1 }, + {22 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,22 ,-1 ,22 ,-1 ,-1 ,22 ,22 ,22 ,-1 ,22 ,-1 ,22 ,22 ,-1 ,-1 ,-1 ,22 ,-1 ,22 ,22 ,22 ,22 ,-1 ,-1 ,-1 ,22 ,-1 ,22 ,-1 ,22 ,22 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,6 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,20 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 ,-1 ,-1 ,21 ,21 ,-1 ,-1 ,-1 ,21 ,-1 ,-1 ,-1 }, + {16 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,16 ,-1 ,16 ,-1 ,-1 ,16 ,16 ,16 ,-1 ,16 ,-1 ,16 ,16 ,-1 ,-1 ,-1 ,16 ,-1 ,16 ,16 ,16 ,16 ,-1 ,-1 ,-1 ,16 ,-1 ,16 ,-1 ,16 ,16 ,-1 }, + {31 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,-1 ,-1 ,31 ,31 ,31 ,-1 ,31 ,-1 ,31 ,31 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,31 ,31 ,31 ,-1 ,-1 ,-1 ,31 ,-1 ,31 ,-1 ,31 ,31 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,4 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,5 ,-1 ,-1 ,-1 ,-1 ,3 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,1 ,-1 ,-1 ,-1 ,2 ,1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,9 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,8 ,-1 ,-1 ,-1 }, + {52 ,-1 ,-1 ,38 ,-1 ,42 ,-1 ,50 ,-1 ,49 ,-1 ,-1 ,48 ,43 ,46 ,-1 ,55 ,-1 ,45 ,44 ,-1 ,-1 ,-1 ,47 ,-1 ,39 ,51 ,53 ,40 ,-1 ,-1 ,-1 ,41 ,-1 ,56 ,-1 ,37 ,54 ,-1 }, + {25 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,-1 ,-1 ,25 ,25 ,25 ,-1 ,25 ,-1 ,25 ,25 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,25 ,25 ,25 ,-1 ,-1 ,-1 ,25 ,-1 ,25 ,-1 ,25 ,25 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,17 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 ,-1 ,-1 ,18 ,18 ,-1 ,-1 ,-1 ,18 ,-1 ,-1 ,-1 }, + {-1 ,36 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,36 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,36 ,-1 ,-1 ,-1 ,-1 ,-1 ,36 ,36 ,-1 ,36 ,-1 ,36 ,-1 ,-1 ,35 }, + {-1 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,-1 ,26 ,-1 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,27 ,-1 ,-1 ,-1 ,-1 ,-1 ,27 ,27 ,-1 ,27 ,-1 ,27 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,11 ,-1 ,-1 ,-1 ,12 ,-1 ,-1 ,-1 }, + {28 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,-1 ,-1 ,28 ,28 ,28 ,-1 ,28 ,-1 ,28 ,28 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,28 ,28 ,28 ,-1 ,-1 ,-1 ,28 ,-1 ,28 ,-1 ,28 ,28 ,-1 }, + {34 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,-1 ,-1 ,34 ,34 ,34 ,-1 ,34 ,-1 ,34 ,34 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,34 ,34 ,34 ,-1 ,-1 ,-1 ,34 ,-1 ,34 ,-1 ,34 ,34 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 ,-1 ,-1 ,14 ,15 ,-1 ,-1 ,-1 ,15 ,-1 ,-1 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,24 ,-1 ,-1 ,-1 ,-1 ,-1 ,24 ,24 ,-1 ,23 ,-1 ,24 ,-1 ,-1 ,-1 }, + {-1 ,29 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,30 ,-1 ,-1 ,-1 ,-1 ,-1 ,30 ,30 ,-1 ,30 ,-1 ,30 ,-1 ,-1 ,-1 }, + {19 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,19 ,-1 ,19 ,-1 ,-1 ,19 ,19 ,19 ,-1 ,19 ,-1 ,19 ,19 ,-1 ,-1 ,-1 ,19 ,-1 ,19 ,19 ,19 ,19 ,-1 ,-1 ,-1 ,19 ,-1 ,19 ,-1 ,19 ,19 ,-1 }, + {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,0 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 }, + {10 ,-1 ,-1 ,10 ,-1 ,10 ,-1 ,10 ,-1 ,10 ,-1 ,-1 ,10 ,10 ,10 ,-1 ,10 ,-1 ,10 ,10 ,-1 ,-1 ,-1 ,10 ,-1 ,10 ,10 ,10 ,10 ,-1 ,-1 ,-1 ,10 ,-1 ,10 ,-1 ,10 ,10 ,-1 }, + {7 ,-1 ,-1 ,7 ,-1 ,7 ,-1 ,7 ,-1 ,7 ,-1 ,-1 ,7 ,7 ,7 ,-1 ,7 ,-1 ,7 ,7 ,-1 ,-1 ,-1 ,7 ,-1 ,7 ,7 ,7 ,7 ,-1 ,-1 ,-1 ,7 ,-1 ,7 ,-1 ,7 ,7 ,-1 }, + {13 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,13 ,-1 ,13 ,-1 ,-1 ,13 ,13 ,13 ,-1 ,13 ,-1 ,13 ,13 ,-1 ,-1 ,-1 ,13 ,-1 ,13 ,13 ,13 ,13 ,-1 ,-1 ,-1 ,13 ,-1 ,13 ,-1 ,13 ,13 ,-1 } }; const char* KeywordList[]= { "print", diff --git a/hyperdbg/script-engine/python/parse_table_generator.py b/hyperdbg/script-engine/python/parse_table_generator.py index fec3a20d..c3545c1b 100644 --- a/hyperdbg/script-engine/python/parse_table_generator.py +++ b/hyperdbg/script-engine/python/parse_table_generator.py @@ -180,6 +180,7 @@ typedef struct SYMBOL_MAP #define SYMBOL_PSEUDO_REG_TYPE 3 #define SYMBOL_SEMANTIC_RULE_TYPE 4 #define SYMBOL_TEMP_TYPE 5 +#define SYMBOL_STRING_TYPE 6 #define INVALID -1