2012-01-12 10 views
6

Sé que puede interceptar una llamada al sistema usando ptrace. Pero lo que quiero hacer es ignorar una llamada al sistema. Entonces, ¿es posible ptrace interceptar una llamada al sistema, ver su número y si el número es de una llamada al sistema que debe ignorarse, ptrace detiene la llamada al sistema o hace que la llamada al sistema devuelva inmediatamente.Ignorando una llamada al sistema

El punto es que deberíamos tener el efecto de hacer que la aplicación ignore llamadas al sistema en particular usando ptrace.

Respuesta

3

Puede intentar PTRACE_GETREGS y PTRACE_SETREGS.
Si cambia eip después de la llamada al sistema y eax para que el valor devuelto sea válido, la llamada puede omitirse.
Pero no lo probé, y no me sorprendería si no funcionaba.

+0

¡Cambiando el eip después de la llamada al sistema! No es fácil, amigo mío :(! – MetallicPriest

+3

@MettalicPriest: no es fácil, pero para cambiar el comportamiento del programa trazado, vas a tener que rebuscar con las partes internas de su estado de máquina. –

Cuestiones relacionadas