В некоторых версиях ядра можно добавить или изменить systemcall
, изменив таблицу sys_call_table. Но поскольку эта таблица не предназначена для изменения во время выполнения, она не имеет защиты. Изменение таблицы приведет к условиям гонки. Даже без условий гонки существуют проблемы, связанные с удалением модулей, когда они используются или уложены друг на друга. Из-за проблем с изменением sys_call_table
из модулей, символ больше не экспортируется в новые ядра. Другими словами, если вы получаете "unresolved symbol sys_call_table"
при попытке загрузить модуль, это означает, что в модуле есть ошибка, и ядро больше не принимает такие ошибочные модули.