#pragma once #include #include namespace vm::calc_jmp { /// /// extracts calc_jmp out of vm_entry... you can learn about calc_jmp here. /// /// pass by reference vm entry... /// zydis_routine_t filled up with native instructions by this routine... /// returns truee if no errors happen... bool get( zydis_routine_t &vm_entry, zydis_routine_t &calc_jmp ); /// /// gets the advancement of the virtual instruction pointer... iterates over calc_jmp for LEA, MOV, INC, DEC, SUB, /// ADD, ETC instructions and then decides which way VIP advances based upon this information... /// /// /// std::optional< vmp2::exec_type_t > get_advancement( const zydis_routine_t &calc_jmp ); } // namespace vm::calc_jmp