VivienneVMM
VivienneVMM copied to clipboard
Can I change RIP address by this?
I want to change RIP address using this debugger. However I can't see there are external method to do exception handler. Is it possible to do this?
This is currently not possible because the FPBREAKPOINT_CALLBACK
prototype does not allow breakpoint callbacks to modify the guest instruction pointer. This is an oversight, and I'm working on a fix now.
2700fb109dc9ccc19e06233f45c0ca2e00fd2020 allows breakpoint callbacks to modify the guest instruction pointer. If a callback modifies the guest ip parameter then the guest will be redirected to that modified address on VM entry.
You can achieve code hooking by implementing a new breakpoint callback and its driver interface. e.g., Define a breakpoint callback which uses the context parameter to store the hook destination address. The body of the callback writes the context parameter to the guest instruction pointer parameter so that execution is redirected to your hook on VM entry.
I like this idea so I will implement it in the future. I plan to include documentation which explains the process of adding new callbacks using this idea as a working example.