Как переназначить символ для вызова другой функции - PullRequest
3 голосов
/ 31 августа 2010

У меня есть общий объект ELF, и я хочу изменить его так, чтобы вызовы системной функции memcpy фактически перенаправлялись в пользовательскую версию memcpy.

Я занимался исследованиями и прочитал о PLT Перенаправлении и ELF Инфекции, но я все еще не уверен, как мне достичь своей цели

Может кто-нибудь дать мне несколько советов и советов, или подробно рассказать о PLT Перенаправлении и ELF Инфекции

Привет

Пол

1 Ответ

1 голос
/ 31 августа 2010

Вы пробовали опцию -wrap для ld, когда вы связываете свой исполняемый файл?Он должен перенаправить символ так, чтобы все вызовы исходной функции, включая те, что были внутри библиотек, были заменены.

См. этот пример .

[Редактировать:Приведенный выше комментарий является правильным указанием на то, что если библиотека встраивает вызовы memcpy, у вас нет иного пути, кроме перестройки библиотеки.]

...