Общая библиотека прокси (sharedlib, shlib, так) для ELF? - PullRequest
6 голосов
/ 20 января 2012

В Windows более или менее распространено создание «прокси-библиотек DLL», которые выполняются из исходной библиотеки DLL и пересылают вызовы к ней (после любых дополнительных действий по мере необходимости). Вы можете прочитать об этом здесь и здесь , например.

Тем не менее, культура подлого шитья в Linux совершенно иная. Он начинается с того факта, что LD_PRELOAD является встроенной функцией ld.so в Linux, которая просто вводит отдельный shlib в процесс и использует любые символы, которые он определяет как переопределение. И эта техника «инъекции», кажется, определяет целое направление мысли - вот типичный инструмент взлома ELF или этот вопрос , где джентльмен, кажется, имеет тот же вариант использования, что и я, но начинает с спрашивая, как он может исправить существующие двоичные файлы.

Нет, спасибо. Я не хочу вводить или изменять что-то, что не является моим. Все, что я хочу сделать, это создать отдельный прокси-сервер, который будет вызывать оригинал. В идеале, должен быть инструмент, который можно использовать с исходным .so и создать исходный код на C, который будет просто перенаправлять на функции оригинала, позволяя мне легко переопределять все, что я хочу. Так где же такой инструмент? ;-) Спасибо.

1 Ответ

0 голосов
/ 15 февраля 2013

apitrace - это инструмент, который охватывает детальное отслеживание вызовов графических библиотек (OpenGL, DirectX) для ряда платформ. Вероятно, он слишком подробный и сложный для общего решения, но, по крайней мере, дает некоторую справку и сходство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...