Типичный способ сделать это - установить переменную окружения LD_PRELOAD
перед запуском программы.См. Например tsocks .Однако обратите внимание, что некоторые программы отключают это по соображениям безопасности (он может отслеживать пароли и т. Д.), Например, gnupg препятствует работе LD_PRELOAD
.
Если вы хотите внедрить в работающую программу, это намного сложнее.Это можно сделать с помощью ptrace
(например, присоединить с помощью gdb и вызвать dlopen).Но это ненадежно, потому что вы не знаете, в каком состоянии находится программа, когда вы подключаетесь.