2012-02-04 2 views
0

Если у вас есть какие-либо решения для инъекций в процессе разработки собственной C/C++ dll и начать с точки входа, мне нужны функции отправки сокетов процесса hook и вставьте туда свой собственный код. Доступно ли это в Linux?Линукс для инъекций C/C++ dll

Спасибо!

+1

Вы ищете 'export LD_PRELOAD = your_so' или что-то совсем другое? –

+0

@skwllsp: Я думаю, что PO спрашивает о введении в существующий процесс. Kracken, чтобы изменить вывод в сокет, вы можете использовать библиотеку PCap –

+0

Для инъекций во время выполнения проверьте PIN-код Intel. Это структура DBI, которая скрывает детали архитектуры. Помимо этого вы могли видеть Вальгринда. – gon1332

ответ

4

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

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

Смежные вопросы