Hola a todos,
Tengo una biblioteca dinámica que intercepta algunas llamadas al sistema como fopen, sendto, recvfrom, etc. Por ahora me las arreglo usando LD_PRELOAD para cargarla, pero me preguntaba si no hay alguna técnica más "limpia" de hacer esto. Es decir: el programa que estoy modificando de por sí usa LD_PRELOAD para compatibilidad entre distribuciones, y no me gustaría arruniar algo de esto, preferiría modificar el binario en sí.
Si sirve de algo, el binario es un ELF 32bits ARMv7 y es relativamente fácil de parchear.
Saludos y muchas gracias.
Puedes hacerlo con gdb: https://aixxe.net/2016/09/shared-library-injection (https://aixxe.net/2016/09/shared-library-injection).
O en C: https://stackoverflow.com/questions/24355344/inject-shared-library-into-a-process (https://stackoverflow.com/questions/24355344/inject-shared-library-into-a-process), en esta hay varias opciones, la primera la de preload y la segunda con ptrace.
Un saludo
Hola y gracias por tu respuesta,
El método ptrace era lo que estaba buscando.
Saludos.