From 9c5b65b103e67e0a64a7729226d68eed9bdd579f Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sun, 8 Sep 2024 15:18:57 +0200 Subject: [PATCH] Count executed instructions --- src/windows_emulator/main.cpp | 11 ++++++----- src/windows_emulator/process_context.hpp | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/windows_emulator/main.cpp b/src/windows_emulator/main.cpp index 0d22f0ab..437228f3 100644 --- a/src/windows_emulator/main.cpp +++ b/src/windows_emulator/main.cpp @@ -742,11 +742,11 @@ namespace const emulator_object machine_frame_obj{emu, new_sp + combined_size}; machine_frame_obj.access([&](machine_frame& frame) { - frame.rip = pointers.ContextRecord->Rip; - frame.rsp = pointers.ContextRecord->Rsp; - frame.ss = pointers.ContextRecord->SegSs; - frame.cs = pointers.ContextRecord->SegCs; - frame.eflags = pointers.ContextRecord->EFlags; + frame.rip = pointers.ContextRecord->Rip; + frame.rsp = pointers.ContextRecord->Rsp; + frame.ss = pointers.ContextRecord->SegSs; + frame.cs = pointers.ContextRecord->SegCs; + frame.eflags = pointers.ContextRecord->EFlags; }); printf("ContextRecord: %llX\n", context_record_obj.value()); @@ -850,6 +850,7 @@ namespace */ emu->hook_memory_execution(0, std::numeric_limits::max(), [&](const uint64_t address, const size_t) { + ++context.executed_instructions; if (!context.verbose) { return; diff --git a/src/windows_emulator/process_context.hpp b/src/windows_emulator/process_context.hpp index 515555ae..e48025d4 100644 --- a/src/windows_emulator/process_context.hpp +++ b/src/windows_emulator/process_context.hpp @@ -45,6 +45,7 @@ struct file struct process_context { + uint64_t executed_instructions{0}; emulator_object teb{}; emulator_object peb{}; emulator_object process_params{};