-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IP relative memory operand is too far away and isn't currently supported
#173
Comments
My suspicion is that the original instructions in those functions contain IP-relative operands, and they're failing to assemble when copied over to the trampoline due to range issues, but it's hard to say for sure without a full stack trace. It would also be helpful if you could disassemble those functions (at run time, not statically) to verify. |
This is the stack trace from the the
I'm relatively new to injection and reverse engineering, so sorry if I'm gonna ask some dumb stuff, but for disassembling the function, do you mean disassembling the function in which |
Thanks. This is strong evidence for my suspicion that the original instructions in those functions contain IP-relative operands that are failing to be relocated.
I mean disassembling Iced (which Ruptura depends on) has a disassembly API that you can use to do so in C# code from within the target process: https://github.com/icedland/iced/blob/master/src/csharp/Intel/README.md#disassemble-decode-and-format-instructions It would also be useful to know how you're obtaining the function pointers to |
Hello, I tried using the injection library to hook the
CreateWindowExW
function of a game, but it fails with the exceptionSystem.InvalidOperationException: IP relative memory operand is too far away and isn't currently supported. Try to allocate memory close to the original instruction (+/-2GB).
. The same happens when I try to inject into theCreateDirectoryW
function for the same game.I'm not quite sure if this is something I could fix from my end, as it seems to be related to where the jump calls are inserted in the game process if I understood it correctly from the little information I could find related to that exception?
The text was updated successfully, but these errors were encountered: