I was wondering if it was possible to change the value of a register when an instruction gets executed. For example

    0x10 call eax
Say eax contains 0x20 at that point, I want to add 0x10 to it so that the address that gets called is now 0x30.

What I tried doing was set a AddVectoredExceptionHandler and put an INT3 on 0x10. When my exception handler gets called, I restore the original byte at 0x10. Then I add 0x10 to eax and jump to ExceptionInfo->ContextRecord->Eip;This obviously doesn't work well because I never return to the OS.

Is there another way or is this even possible?