Título: Entrada __NR_getdents de la sys_call_table del kernel Publicado por: 4v1dy4 en 2 Enero 2023, 15:50 pm Hola,
Contexto: Preguntaba por la funcion kallsyms_lookup_name en tema anterior ya que la estaba usando para atravesar la sys_call_table luego de investigar sobre la programacion de modulos en linux. Ahora me encuentro con un problema cuando me puse a jugar con la tabla: El valor de la syscall __NR_getdents es 141. Sin embargo, para mi sistema (x86_64) se supone que el valor es 78 y no 141. ¿Alguien tiene idea de que pasa auqui? (https://pbs.twimg.com/media/DOErJpDU8AASjY3.jpg) (perdon por el tamaño del meme, busque como ajustar el tamaño y no tengo idea) Título: Re: Entrada __NR_getdents de la sys_call_table del kernel Publicado por: MCKSys Argentina en 2 Enero 2023, 17:21 pm Hola!
No soy experto en kernel de linux; pero en windows los valores de las syscalls cambian con las versiones. Imagino que en linux pasa lo mismo... Saludos! Título: Re: Entrada __NR_getdents de la sys_call_table del kernel Publicado por: 4v1dy4 en 3 Enero 2023, 15:10 pm Hola, gracias por contestar.
Linux funciona diferente. Citar [...] Each system call has a fixed number. Linux persistently guarantees backward compatibility, thus once a number was assigned to a system call it will never change. Ever. The numbers differ between int $0x80 and syscall ! [...] La pregunta viene a caso por algo que vi en un modulo del kernel (lkm): Código
Para empezar, no se como la syscall podria no estar definida... pero bueno. |