Linux впрыскивает C / C ++ dll - PullRequest
       10

Linux впрыскивает C / C ++ dll

0 голосов
/ 04 февраля 2012

Имеются ли какие-либо решения для внедрения в процесс собственной библиотеки C / C ++ и запуска с точки входа, мне нужно перехватить функции отправки через сокет процесса и вставить туда свой собственный код.Это доступно на Linux?

Спасибо!

1 Ответ

4 голосов
/ 04 февраля 2012

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

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

...