- Я не могу использовать LD_PRELOAD, потому что я нужна статическая связь.
- Я не могу использовать ftrace/модуль ядра Linux для перехвата вызова, поскольку для этого потребуется, чтобы функция находилась в пространстве ядра и это невозможно. Это C++ и довольно много кода.
Можно ли перезаписать таблицу системных вызовов в последних ядрах Linux?Раньше вы могли найти таблицу с помощью kallsyms_lookup_name и изменить значение CR0, чтобы предоставить разрешения. Однако я думаю, что ядро Linux 5 или 6 внесло изменения, чтобы остановить это. Однако я не до конца понимаю, насколько изменения остановили это. Я думаю, они прекратили экспортировать kallsyms_lookup_name, так что, может быть, это все еще возможно, просто более сложно?
(Я знаю, что редактирование таблицы не одобряется, но это не для клиентов использования нет никаких последствий для безопасности/это закрытая система).
Подробнее здесь: https://stackoverflow.com/questions/786 ... -version-6