I have an address and I want to byte-patch it because there is a JMP that I want to block. But when I NOP it, the game just crash because it corrupt the function. So, I don't know what to do for block the JMP with a byte-patch. There is a screen of the address below. Thanks in advance !
Your problem is that you change the expected flow of the program - By patching the
JMP you completely change the flow - it's not a
call so the original flow doesn't get back to the
push rdi instruction, but after patching it does, so the behavior is not expected. Try to look for what happens in
7FFCAE2A0F13, and maybe to patch inside.
There are two issues here. One, as macr0controller notes, is that the jump might be to essential code that runs before the routine.
The second is that the jump might not be a fixed address, meaning that there's a relocation item that points to it, so any NOPs that you write will be replaced with what becomes garbage instructions if you replace the 0xE9 instruction with a NOP as well.
Instead, you could change the 0xE9 (JMP) to an instruction of equivalent length such as 0x3D (CMP EAX, imm32) which alters no registers and will not be affected by the following values.