Как мне во время выполнения (без LD_PRELOAD
) перехватить/перехватить функцию C, например fopen()
в Linux, а-ля Detours для Windows? Я хотел бы сделать это из Python (следовательно, я предполагаю, что программа уже запускает виртуальную машину CPython), а также перенаправить на код Python. Я в порядке, просто подключая функции общей библиотеки. Я также хотел бы сделать это, не меняя способ запуска программы.
Одна из идей состоит в том, чтобы развернуть мой собственный инструмент на основе ptrace()
или переписать код, найденный с помощью dlsym()
или в PLT, и ориентироваться на функции, вызываемые C, сгенерированные ctypes
, но я решил сначала спросить здесь. Спасибо.
fopen
не является функцией ядра - person Matt Joiner   schedule 23.01.2012