You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am encountering an issue with the Unicorn Engine where setting the PC (Program Counter) in the uc_cb_insn_sys_t callback does not appear to take effect. Despite writing a new value to the PC register within the callback, the emulation continues to execute from the original PC value.
Notice that the emulation continues executing from the original PC address, not the updated one.
The text was updated successfully, but these errors were encountered:
@wtdcode
I'm using the C API and I have added the following hook with the type UC_HOOK_INSN. When I try to modify the value of the PC in the callback, it doesn't take effect. This issue can be easily reproduced with the following code:
uc_hook_add(uc, &hook_INSN_MRS, UC_HOOK_INSN, (void*) instruction_handler, nullptr, 1, 0, UC_ARM64_INS_MRS)
This should clearly convey your issue with modifying the PC within the UC_HOOK_INSN callback.
@wtdcode The prototype of this hook is as follows:
uint32_t instruction_handler(uc_engine *uc, uc_arm64_reg reg,
const uc_arm64_cp_reg *cp_reg,
void *user_data)
I am encountering an issue with the Unicorn Engine where setting the PC (Program Counter) in the uc_cb_insn_sys_t callback does not appear to take effect. Despite writing a new value to the PC register within the callback, the emulation continues to execute from the original PC value.
Notice that the emulation continues executing from the original PC address, not the updated one.
The text was updated successfully, but these errors were encountered: