diff --git a/src/backends/icicle-emulator/icicle_x64_emulator.cpp b/src/backends/icicle-emulator/icicle_x64_emulator.cpp index 06622586..d6296d76 100644 --- a/src/backends/icicle-emulator/icicle_x64_emulator.cpp +++ b/src/backends/icicle-emulator/icicle_x64_emulator.cpp @@ -326,7 +326,7 @@ namespace icicle return wrap_hook(id); } - emulator_hook* hook_memory_read(const uint64_t address, const size_t size, + emulator_hook* hook_memory_read(const uint64_t address, const uint64_t size, memory_access_hook_callback callback) override { auto obj = make_function_object(std::move(callback)); @@ -342,7 +342,7 @@ namespace icicle return wrap_hook(id); } - emulator_hook* hook_memory_write(const uint64_t address, const size_t size, + emulator_hook* hook_memory_write(const uint64_t address, const uint64_t size, memory_access_hook_callback callback) override { auto obj = make_function_object(std::move(callback)); diff --git a/src/backends/unicorn-emulator/unicorn_x64_emulator.cpp b/src/backends/unicorn-emulator/unicorn_x64_emulator.cpp index 955fca63..6c449b13 100644 --- a/src/backends/unicorn-emulator/unicorn_x64_emulator.cpp +++ b/src/backends/unicorn-emulator/unicorn_x64_emulator.cpp @@ -556,16 +556,16 @@ namespace unicorn return this->hook_memory_execution(address, 1, std::move(callback)); } - emulator_hook* hook_memory_read(const uint64_t address, const size_t size, + emulator_hook* hook_memory_read(const uint64_t address, const uint64_t size, memory_access_hook_callback callback) override { auto read_wrapper = [c = std::move(callback)](uc_engine*, const uc_mem_type type, - const uint64_t address, const int size, + const uint64_t address, const int length, const uint64_t value) { const auto operation = map_memory_operation(type); - if (operation == memory_operation::read && size > 0) + if (operation == memory_operation::read && length > 0) { - c(address, &value, std::min(static_cast(size), sizeof(value))); + c(address, &value, std::min(static_cast(length), sizeof(value))); } }; @@ -581,7 +581,7 @@ namespace unicorn return container->as_opaque_hook(); } - emulator_hook* hook_memory_write(const uint64_t address, const size_t size, + emulator_hook* hook_memory_write(const uint64_t address, const uint64_t size, memory_access_hook_callback callback) override { auto write_wrapper = [c = std::move(callback)](uc_engine*, const uc_mem_type type, const uint64_t addr, diff --git a/src/emulator/hook_interface.hpp b/src/emulator/hook_interface.hpp index 96ae6195..3d268bbb 100644 --- a/src/emulator/hook_interface.hpp +++ b/src/emulator/hook_interface.hpp @@ -55,8 +55,8 @@ class hook_interface virtual emulator_hook* hook_memory_execution(memory_execution_hook_callback callback) = 0; virtual emulator_hook* hook_memory_execution(uint64_t address, memory_execution_hook_callback callback) = 0; - virtual emulator_hook* hook_memory_read(uint64_t address, size_t size, memory_access_hook_callback callback) = 0; - virtual emulator_hook* hook_memory_write(uint64_t address, size_t size, memory_access_hook_callback callback) = 0; + virtual emulator_hook* hook_memory_read(uint64_t address, uint64_t size, memory_access_hook_callback callback) = 0; + virtual emulator_hook* hook_memory_write(uint64_t address, uint64_t size, memory_access_hook_callback callback) = 0; virtual emulator_hook* hook_instruction(int instruction_type, instruction_hook_callback callback) = 0;