Em (ou depois?) 2.4, o sys_call_table
símbolo não era mais exportado para dificultar o gancho de chamadas do sistema.
Ignorando que você ainda pode obter essas informações do IDT ou lendo /boot/System.map-<kernel-version>
, eu queria saber por que esse endereço parece ser constante entre reinicializações e máquinas (com a mesma versão do kernel)? Não vale a pena torná-lo dinâmico? Existe uma razão que exige que seja estático?
O que pretendo é o seguinte:
sys_call_table
não é mais exportado para módulos a fim de tornar um pouco mais difícil ligar as syscalls, mas os módulos (ou seja, programas de espaço do kernel) ainda podem facilmente obter essas informações lendo System.map
ou simplesmente adivinhando com base nas informações de lançamento do kernel, pois o endereço parece ser idêntico para todas as máquinas executando a mesma versão do kernel.