mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-23 07:54:39 +00:00
update symbol structure and stack buffer in script engine
This commit is contained in:
parent
8edd118a40
commit
211295bf81
7 changed files with 636 additions and 681 deletions
|
|
@ -1064,7 +1064,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
|
|||
for (int i = MatchedStack->Pointer; i > 0; i--)
|
||||
{
|
||||
Op1 = Top(MatchedStack);
|
||||
if (Op1->Type == TEMP || Op1->Type == HEX || Op1->Type == OCTAL || Op1->Type == BINARY)
|
||||
if (Op1->Type == TEMP || Op1->Type == HEX || Op1->Type == OCTAL || Op1->Type == BINARY || Op1->Type == PSEUDO_REGISTER)
|
||||
{
|
||||
*Error = SCRIPT_ENGINE_ERROR_SYNTAX;
|
||||
Pop(MatchedStack);
|
||||
|
|
@ -1183,7 +1183,7 @@ CodeGen(PTOKEN_LIST MatchedStack, PSYMBOL_BUFFER CodeBuffer, PTOKEN Operator, PS
|
|||
break;
|
||||
}
|
||||
|
||||
Op1Symbol->VariableType = (unsigned long long)VariableType;
|
||||
//Op1Symbol->VariableType = (unsigned long long)VariableType;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2604,7 +2604,6 @@ NewSymbol(void)
|
|||
Symbol->Value = 0;
|
||||
Symbol->Len = 0;
|
||||
Symbol->Type = 0;
|
||||
Symbol->VariableType = 0;
|
||||
return Symbol;
|
||||
}
|
||||
|
||||
|
|
@ -2618,7 +2617,7 @@ PSYMBOL
|
|||
NewStringSymbol(PTOKEN Token)
|
||||
{
|
||||
PSYMBOL Symbol;
|
||||
int BufferSize = (3 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
|
||||
int BufferSize = (SIZE_SYMBOL_WITHOUT_LEN + Token->Len) / sizeof(SYMBOL) + 1;
|
||||
Symbol = (PSYMBOL)calloc(sizeof(SYMBOL), BufferSize);
|
||||
|
||||
if (Symbol == NULL)
|
||||
|
|
@ -2632,7 +2631,6 @@ NewStringSymbol(PTOKEN Token)
|
|||
memcpy(&Symbol->Value, Token->Value, Token->Len);
|
||||
SetType(&Symbol->Type, SYMBOL_STRING_TYPE);
|
||||
Symbol->Len = Token->Len;
|
||||
Symbol->VariableType = 0;
|
||||
return Symbol;
|
||||
}
|
||||
|
||||
|
|
@ -2646,7 +2644,7 @@ PSYMBOL
|
|||
NewWstringSymbol(PTOKEN Token)
|
||||
{
|
||||
PSYMBOL Symbol;
|
||||
int BufferSize = (3 * sizeof(unsigned long long) + Token->Len) / sizeof(SYMBOL) + 1;
|
||||
int BufferSize = (SIZE_SYMBOL_WITHOUT_LEN + Token->Len) / sizeof(SYMBOL) + 1;
|
||||
Symbol = (PSYMBOL)malloc(BufferSize * sizeof(SYMBOL));
|
||||
|
||||
if (Symbol == NULL)
|
||||
|
|
@ -2660,7 +2658,6 @@ NewWstringSymbol(PTOKEN Token)
|
|||
memcpy(&Symbol->Value, Token->Value, Token->Len);
|
||||
SetType(&Symbol->Type, SYMBOL_WSTRING_TYPE);
|
||||
Symbol->Len = Token->Len;
|
||||
Symbol->VariableType = 0;
|
||||
return Symbol;
|
||||
}
|
||||
|
||||
|
|
@ -2679,7 +2676,7 @@ NewWstringSymbol(PTOKEN Token)
|
|||
unsigned int
|
||||
GetSymbolHeapSize(PSYMBOL Symbol)
|
||||
{
|
||||
int Temp = (3 * sizeof(unsigned long long) + (int)Symbol->Len) / sizeof(SYMBOL) + 1;
|
||||
int Temp = (SIZE_SYMBOL_WITHOUT_LEN + (int)Symbol->Len) / sizeof(SYMBOL) + 1;
|
||||
return Temp;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue