diff --git a/dependencies/vmprofiler b/dependencies/vmprofiler index c231911..f06bf5f 160000 --- a/dependencies/vmprofiler +++ b/dependencies/vmprofiler @@ -1 +1 @@ -Subproject commit c2319117a07d95794f54db970aa7f72e8726349a +Subproject commit f06bf5f6b72b1d52a6156d6828675c77ceaee7e2 diff --git a/src/vmemu_t.cpp b/src/vmemu_t.cpp index dce86be..5b18a7b 100644 --- a/src/vmemu_t.cpp +++ b/src/vmemu_t.cpp @@ -307,6 +307,14 @@ namespace vm return false; } + if ( instr.mnemonic == ZYDIS_MNEMONIC_INT1 || instr.mnemonic == ZYDIS_MNEMONIC_INVALID ) + { + obj->cc_block->code_block.jcc.has_jcc = false; + obj->cc_block->code_block.jcc.type = vm::instrs::jcc_type::none; + uc_emu_stop( uc ); + return false; + } + // if the native instruction is a jmp rcx/rdx... then AL will contain the vm handler // table index of the vm handler that the emulator is about to jmp too... if ( !( instr.mnemonic == ZYDIS_MNEMONIC_JMP && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_REGISTER &&