HyperDbg Debugger
Loading...
Searching...
No Matches
hyperdbg/script-engine/python/Grammar.txt File Reference

Macros

#define function

Functions

STATEMENT PUSH _function_id (VA2) @END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE
VARIABLE_TYPE4 START_OF_USER_DEFINED_FUNCTION (VARIABLE_TYPE5)
VARIABLE_TYPE5 eps VARIABLE_TYPE5 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE6 eps ASSIGNMENT_STATEMENT EXPRESSION VA VA eps IF_STATEMENT if START_OF_IF (BOOLEAN_EXPRESSION) @JZ
ELSIF_STATEMENT ELSE_STATEMENT END_OF_IF END_OF_IF ELSIF_STATEMENT elsif JMP_TO_END_AND_JZCOMPLETED (BOOLEAN_EXPRESSION) @JZ
FOR_STATEMENT for (SIMPLE_ASSIGNMENT ; @START_OF_FOR BOOLEAN_EXPRESSION ; @FOR_INC_DEC INC_DEC)

Variables

ThreeOpFunc1 interlocked_compare_exchange ThreeOpFunc2 event_inject_error_code memcpy memcpy_pa TwoOpFunc1 ed eb eq interlocked_exchange interlocked_exchange_add eb_pa ed_pa eq_pa TwoOpFunc2 spinlock_lock_custom_wait event_inject OneOpFunc1 poi db dd dw dq neg hi low not check_address disassemble_len disassemble_len32 disassemble_len64 interlocked_increment interlocked_decrement reference physical_to_virtual virtual_to_physical poi_pa hi_pa low_pa db_pa dd_pa dw_pa dq_pa lbr_restore_by_filter OneOpFunc2 print formats event_enable event_disable event_clear test_statement spinlock_lock spinlock_unlock event_sc microsleep OneOpFunc3 strlen TwoOpFunc3 strcmp ThreeOpFunc3 memcmp strncmp ThreeOpFunc4 wcsncmp OneOpFunc4 wcslen TwoOpFunc4 wcscmp ZeroOpFunc1 pause flush event_trace_step event_trace_step_in event_trace_step_out event_trace_instrumentation_step event_trace_instrumentation_step_in ZeroOpFunc2 rdtsc rdtscp lbr_save lbr_dump lbr_print lbr_restore lbr_check VarArgFunc1 printf OperatorsTwoOperand or xor and asr asl add sub mul div mod gt lt egt elt equal neq OperatorsOneOperand inc dec reference AssignmentOperator add_assignment sub_assignment mul_assignment div_assignment mod_assignment asl_assignment asr_assignment and_assignment xor_assignment or_assignment SemantiRules jmp jz jnz mov start_of_do_while start_of_do_while_commands end_of_do_while start_of_for for_inc_dec start_of_for_ommands end_of_if ignore_lvalue push pop call ret Registers rax eax ax ah al rcx ecx cx ch cl rdx edx dx dh dl rbx ebx bx bh bl rsp esp sp spl rbp ebp bp bpl rsi esi si sil rdi edi di dil r8 r8d r8w r8h r8l r9 r9d r9w r9h r9l r10 r10d r10w r10h r10l r11 r11d r11w r11h r11l r12 r12d r12w r12h r12l r13 r13d r13w r13h r13l r14 r14d r14w r14h r14l r15 r15d r15w r15h r15l ds es fs gs cs ss rflags eflags flags cf pf af zf sf tf if df of iopl nt rf vm ac vif vip id rip eip ip idtr ldtr gdtr tr cr0 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr6 dr7 PseudoRegisters pid tid pname core proc thread peb teb ip buffer context event_tag event_id event_stage date time S STATEMENT S S
STATEMENT CALL_FUNC_STATEMENT
STATEMENT break BREAK
STATEMENT continue CONTINUE
STATEMENT VARIABLE_TYPE3 STATEMENT S2 STATEMENT2 S2 S2
STATEMENT2 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE = EXPRESSION MULTIPLE_ASSIGNMENT
STATEMENT2 return RETURN
RETURN eps RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE RETURN EXPRESSION RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE ScriptVariableType void bool char short int long unsigned signed float double VARIABLE_TYPE1 PUSH _script_variable_type VARIABLE_TYPE2 VARIABLE_TYPE1 VARIABLE_TYPE2 VARIABLE_TYPE2 *DECLARE_POINTER_TYPE VARIABLE_TYPE2 eps VARIABLE_TYPE3 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE VARIABLE_TYPE4 VARIABLE_TYPE4 = EXPRESSION MULTIPLE_ASSIGNMENT
VARIABLE_TYPE4 ARRAY_L_VALUE ARRAY_DIMS = ARRAY_INIT @ARRAY_DECLARITION
ARRAY_DIMS[CONST_NUMBER @ARRAY_DIM_NUMBER] ARRAY_DIMS2 ARRAY_DIMS2 ARRAY_DIMS ARRAY_DIMS2 eps ARRAY_INIT
VARIABLE_TYPE5 eps VARIABLE_TYPE5 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE6
ELSIF_STATEMENT ELSIF_STATEMENT JMP_TO_END_AND_JZCOMPLETED ELSIF_STATEMENT ELSIF_STATEMENT eps ELSE_STATEMENT else

Macro Definition Documentation

◆ function

#define function

Function Documentation

◆ _function_id()

STATEMENT2 PUSH _function_id ( VA2 )

◆ for()

FOR_STATEMENT for ( SIMPLE_ASSIGNMENT ; @START_OF_FOR BOOLEAN_EXPRESSION ; @FOR_INC_DEC INC_DEC)
196{ @START_OF_FOR_COMMANDS S2 @END_OF_FOR }
STATEMENT VARIABLE_TYPE3 STATEMENT S2 STATEMENT2 S2 S2
Definition Grammar.txt:74

◆ JMP_TO_END_AND_JZCOMPLETED()

ELSIF_STATEMENT ELSE_STATEMENT END_OF_IF END_OF_IF ELSIF_STATEMENT elsif JMP_TO_END_AND_JZCOMPLETED ( BOOLEAN_EXPRESSION )
ELSIF_STATEMENT()
Definition test-case-generator.py:83

◆ START_OF_IF()

VARIABLE_TYPE5 eps VARIABLE_TYPE5 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE6 eps ASSIGNMENT_STATEMENT EXPRESSION VA VA eps IF_STATEMENT if START_OF_IF ( BOOLEAN_EXPRESSION )
END_OF_IF()
Definition test-case-generator.py:121
ELSE_STATEMENT()
Definition test-case-generator.py:104

◆ START_OF_USER_DEFINED_FUNCTION()

VARIABLE_TYPE4 START_OF_USER_DEFINED_FUNCTION ( VARIABLE_TYPE5 )
126{ S2 @END_OF_USER_DEFINED_FUNCTION }

Variable Documentation

◆ ARRAY_DIMS

VARIABLE_TYPE4 ARRAY_L_VALUE ARRAY_DIMS = ARRAY_INIT @ARRAY_DECLARITION

◆ ARRAY_INIT

ARRAY_DIMS [ CONST_NUMBER @ARRAY_DIM_NUMBER ] ARRAY_DIMS2 ARRAY_DIMS2 ARRAY_DIMS ARRAY_DIMS2 eps ARRAY_INIT
Initial value:
{ INIT_LIST } @ARRAY_LEFT_BRACKET
INIT_LIST->INIT_ITEM INIT_LIST_TAIL
INIT_ITEM->ARRAY_INIT
INIT_ITEM->EXPRESSION
INIT_LIST_TAIL->
108{ INIT_LIST } @ARRAY_LEFT_BRACKET

◆ BREAK

STATEMENT2 break BREAK

◆ CALL_FUNC_STATEMENT

STATEMENT2 CALL_FUNC_STATEMENT

◆ CONTINUE

STATEMENT2 continue CONTINUE

◆ else

ELSIF_STATEMENT ELSIF_STATEMENT JMP_TO_END_AND_JZCOMPLETED ELSIF_STATEMENT ELSIF_STATEMENT eps ELSE_STATEMENT else
Initial value:
{ S2 }
ELSE_STATEMENT->eps
END_OF_IF->eps
WHILE_STATEMENT->while @START_OF_WHILE ( BOOLEAN_EXPRESSION ) @START_OF_WHILE_COMMANDS { S2 @END_OF_WHILE }
DO_WHILE_STATEMENT->do @START_OF_DO_WHILE { S2 } while ( BOOLEAN_EXPRESSION ) @END_OF_DO_WHILE
DO_WHILE_STATEMENT()
Definition test-case-generator.py:132
187 { S2 }
189END_OF_IF->eps
190
191
192
193WHILE_STATEMENT->while @START_OF_WHILE ( BOOLEAN_EXPRESSION ) @START_OF_WHILE_COMMANDS { S2 @END_OF_WHILE }
194DO_WHILE_STATEMENT->do @START_OF_DO_WHILE { S2 } while ( BOOLEAN_EXPRESSION ) @END_OF_DO_WHILE ;
WHILE_STATEMENT()
Definition test-case-generator.py:125

◆ L_VALUE

SIMPLE_ASSIGNMENT VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE = EXPRESSION MULTIPLE_ASSIGNMENT

◆ RETURN

STATEMENT2 return RETURN

◆ S

ThreeOpFunc1 interlocked_compare_exchange ThreeOpFunc2 event_inject_error_code memcpy memcpy_pa TwoOpFunc1 ed eb eq interlocked_exchange interlocked_exchange_add eb_pa ed_pa eq_pa TwoOpFunc2 spinlock_lock_custom_wait event_inject OneOpFunc1 poi db dd dw dq neg hi low not check_address disassemble_len disassemble_len32 disassemble_len64 interlocked_increment interlocked_decrement reference physical_to_virtual virtual_to_physical poi_pa hi_pa low_pa db_pa dd_pa dw_pa dq_pa lbr_restore_by_filter OneOpFunc2 print formats event_enable event_disable event_clear test_statement spinlock_lock spinlock_unlock event_sc microsleep OneOpFunc3 strlen TwoOpFunc3 strcmp ThreeOpFunc3 memcmp strncmp ThreeOpFunc4 wcsncmp OneOpFunc4 wcslen TwoOpFunc4 wcscmp ZeroOpFunc1 pause flush event_trace_step event_trace_step_in event_trace_step_out event_trace_instrumentation_step event_trace_instrumentation_step_in ZeroOpFunc2 rdtsc rdtscp lbr_save lbr_dump lbr_print lbr_restore lbr_check VarArgFunc1 printf OperatorsTwoOperand or xor and asr asl add sub mul div mod gt lt egt elt equal neq OperatorsOneOperand inc dec reference AssignmentOperator add_assignment sub_assignment mul_assignment div_assignment mod_assignment asl_assignment asr_assignment and_assignment xor_assignment or_assignment SemantiRules jmp jz jnz mov start_of_do_while start_of_do_while_commands end_of_do_while start_of_for for_inc_dec start_of_for_ommands end_of_if ignore_lvalue push pop call ret Registers rax eax ax ah al rcx ecx cx ch cl rdx edx dx dh dl rbx ebx bx bh bl rsp esp sp spl rbp ebp bp bpl rsi esi si sil rdi edi di dil r8 r8d r8w r8h r8l r9 r9d r9w r9h r9l r10 r10d r10w r10h r10l r11 r11d r11w r11h r11l r12 r12d r12w r12h r12l r13 r13d r13w r13h r13l r14 r14d r14w r14h r14l r15 r15d r15w r15h r15l ds es fs gs cs ss rflags eflags flags cf pf af zf sf tf if df of iopl nt rf vm ac vif vip id rip eip ip idtr ldtr gdtr tr cr0 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr6 dr7 PseudoRegisters pid tid pname core proc thread peb teb ip buffer context event_tag event_id event_stage date time S STATEMENT S S
Initial value:
{ STATEMENT S }
S->eps
STATEMENT->IF_STATEMENT
STATEMENT->WHILE_STATEMENT
STATEMENT->DO_WHILE_STATEMENT
STATEMENT->FOR_STATEMENT
STATEMENT->ASSIGNMENT_STATEMENT
ThreeOpFunc1 interlocked_compare_exchange ThreeOpFunc2 event_inject_error_code memcpy memcpy_pa TwoOpFunc1 ed eb eq interlocked_exchange interlocked_exchange_add eb_pa ed_pa eq_pa TwoOpFunc2 spinlock_lock_custom_wait event_inject OneOpFunc1 poi db dd dw dq neg hi low not check_address disassemble_len disassemble_len32 disassemble_len64 interlocked_increment interlocked_decrement reference physical_to_virtual virtual_to_physical poi_pa hi_pa low_pa db_pa dd_pa dw_pa dq_pa lbr_restore_by_filter OneOpFunc2 print formats event_enable event_disable event_clear test_statement spinlock_lock spinlock_unlock event_sc microsleep OneOpFunc3 strlen TwoOpFunc3 strcmp ThreeOpFunc3 memcmp strncmp ThreeOpFunc4 wcsncmp OneOpFunc4 wcslen TwoOpFunc4 wcscmp ZeroOpFunc1 pause flush event_trace_step event_trace_step_in event_trace_step_out event_trace_instrumentation_step event_trace_instrumentation_step_in ZeroOpFunc2 rdtsc rdtscp lbr_save lbr_dump lbr_print lbr_restore lbr_check VarArgFunc1 printf OperatorsTwoOperand or xor and asr asl add sub mul div mod gt lt egt elt equal neq OperatorsOneOperand inc dec reference AssignmentOperator add_assignment sub_assignment mul_assignment div_assignment mod_assignment asl_assignment asr_assignment and_assignment xor_assignment or_assignment SemantiRules jmp jz jnz mov start_of_do_while start_of_do_while_commands end_of_do_while start_of_for for_inc_dec start_of_for_ommands end_of_if ignore_lvalue push pop call ret Registers rax eax ax ah al rcx ecx cx ch cl rdx edx dx dh dl rbx ebx bx bh bl rsp esp sp spl rbp ebp bp bpl rsi esi si sil rdi edi di dil r8 r8d r8w r8h r8l r9 r9d r9w r9h r9l r10 r10d r10w r10h r10l r11 r11d r11w r11h r11l r12 r12d r12w r12h r12l r13 r13d r13w r13h r13l r14 r14d r14w r14h r14l r15 r15d r15w r15h r15l ds es fs gs cs ss rflags eflags flags cf pf af zf sf tf if df of iopl nt rf vm ac vif vip id rip eip ip idtr ldtr gdtr tr cr0 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr6 dr7 PseudoRegisters pid tid pname core proc thread peb teb ip buffer context event_tag event_id event_stage date time S STATEMENT S S
Definition Grammar.txt:57
57{ STATEMENT S }
STATEMENT()
Definition test-case-generator.py:25

◆ S2

STATEMENT VARIABLE_TYPE3 STATEMENT S2 STATEMENT2 S2 S2
Initial value:
{ STATEMENT2 S2 }
S2->eps
STATEMENT2->IF_STATEMENT
STATEMENT2->WHILE_STATEMENT
STATEMENT2->DO_WHILE_STATEMENT
STATEMENT2->FOR_STATEMENT
STATEMENT2->ASSIGNMENT_STATEMENT
74{ STATEMENT2 S2 }

◆ VARIABLE_TYPE4

RETURN eps RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE RETURN EXPRESSION RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE ScriptVariableType void bool char short int long unsigned signed float double VARIABLE_TYPE1 PUSH _script_variable_type VARIABLE_TYPE2 VARIABLE_TYPE1 VARIABLE_TYPE2 VARIABLE_TYPE2* DECLARE_POINTER_TYPE VARIABLE_TYPE2 eps VARIABLE_TYPE3 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE VARIABLE_TYPE4 VARIABLE_TYPE4 = EXPRESSION MULTIPLE_ASSIGNMENT

◆ VARIABLE_TYPE6

VARIABLE_TYPE5 eps VARIABLE_TYPE5 VARIABLE_TYPE1 VARIABLE_TYPE2 L_VALUE FUNCTION_PARAMETER VARIABLE_TYPE6 VARIABLE_TYPE6