From 931762a070e73baf70e44bae26fde233a3d227fa Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Tue, 10 Aug 2021 20:25:23 -0700 Subject: [PATCH] fixed bugs... --- dependencies/vmprofiler | 2 +- src/main.cpp | 9 +++++++-- src/vmemu_t.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/dependencies/vmprofiler b/dependencies/vmprofiler index 0cbc83b..c231911 160000 --- a/dependencies/vmprofiler +++ b/dependencies/vmprofiler @@ -1 +1 @@ -Subproject commit 0cbc83be3fb0f4293146def0c3735f39608f646b +Subproject commit c2319117a07d95794f54db970aa7f72e8726349a diff --git a/src/main.cpp b/src/main.cpp index ddd17ee..e5d09f2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -91,8 +91,13 @@ int __cdecl main( int argc, const char *argv[] ) std::printf( "> does this code block have a jcc? %s\n", code_block.jcc.has_jcc ? "yes" : "no" ); if ( code_block.jcc.has_jcc ) - std::printf( "> branch 1 = %p, branch 2 = %p\n", code_block.jcc.block_addr[ 0 ], - code_block.jcc.block_addr[ 1 ] ); + { + if ( code_block.jcc.type == vm::instrs::jcc_type::branching ) + std::printf( "> branch 1 = %p, branch 2 = %p\n", code_block.jcc.block_addr[ 0 ], + code_block.jcc.block_addr[ 1 ] ); + else + std::printf( "> branch 1 = %p\n", code_block.jcc.block_addr[ 0 ] ); + } } std::printf( "> serializing results....\n" ); diff --git a/src/vmemu_t.cpp b/src/vmemu_t.cpp index 9bc6886..dce86be 100644 --- a/src/vmemu_t.cpp +++ b/src/vmemu_t.cpp @@ -222,13 +222,13 @@ namespace vm { case vm::instrs::jcc_type::branching: { - code_block.jcc.block_addr[ 0 ] = - ( code_block.jcc.block_addr[ 0 ] - g_vm_ctx->module_base ) + g_vm_ctx->image_base; + code_block.jcc.block_addr[ 1 ] = + ( code_block.jcc.block_addr[ 1 ] - g_vm_ctx->module_base ) + g_vm_ctx->image_base; } case vm::instrs::jcc_type::absolute: { - code_block.jcc.block_addr[ 1 ] = - ( code_block.jcc.block_addr[ 1 ] - g_vm_ctx->module_base ) + g_vm_ctx->image_base; + code_block.jcc.block_addr[ 0 ] = + ( code_block.jcc.block_addr[ 0 ] - g_vm_ctx->module_base ) + g_vm_ctx->image_base; break; } }