Load library, that compiled as position independent code, into victim process address space, then redirect host function to the library function
./gotredirect <pid> <path_to_lib.so> <original_function,replacer_function,[patch_offset]>
./gotredirect 1234 payload.so puts,pay_puts,49
Attach to the process with id 1234, load payload.so to it address space, then rewrite puts GOT entry by pay_puts address. Write real puts address to pay_puts+49
./gotredirect 1234 payload.so puts,pay_puts printf,pay_f,49
Attach to the process with id 1234, load payload.so to it address space, then rewrite puts GOT entry by pay_puts address, then rewrite printf GOT entry by pay_f address. Write real printf address to pay_f+49
- git clone https://github.com/cyberfined/gotredirect.git && cd gotredirect
- make
BSD-3-Clause. Read LICENSE file