I have patched a loadable object (an .so file) from this:

xor eax,0x304b7c0

to this:

mov eax,0x0

When I try to run my binary with these modifications, the application loads the .so file and then it adds the base address of the .so file to every memory address in the binary so that instruction ends up looking like this in my gdb debugger (intel flavor):

0xf463cd95: mov    eax,0xf44ae000

How do I make it not do that? Thanks in advance for the help!

  • You can try to disable ASLR on the main executable then your patched so file should always be loaded to the same address.
    – Robert
    Sep 25, 2022 at 20:24
  • I think you may have not replaced the correct number of bytes in the instruction - maybe try mov eax,0x00000000 ? Sep 25, 2022 at 21:11


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.