diff --git a/src/windows_emulator/main.cpp b/src/windows_emulator/main.cpp index 0d22f0a..437228f 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 515555a..e48025d 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{};