C/C++ Замена библиотечной функции, вызываемой в библиотеке ⇐ C++
C/C++ Замена библиотечной функции, вызываемой в библиотеке
Контекст:
[*]С/С++ [*]исполняемый файл, работающий на Linux-64 с 32-битной компиляцией [*]он связан с библиотекой без исходного кода и с ошибками, связанной с libc.
Чтобы избежать ошибки, я бы обошел функцию localtime из libc и использовал функцию mine. Исходное локальное время работает хорошо, но оно вызывается один раз и используется плохо. Неправильная функция местного времени может помочь найти способ обойти ошибку.
Как я могу связать мою новую функцию localtime с моим исполняемым файлом, чтобы обойти исходную функцию, вызываемую в libc библиотекой с ошибками? Основная программа не вызывает localtime явно.
Я написал новую функцию localtime в основном исходном коде (и в независимой библиотеке, загруженной сначала с помощью LD_PRELOAD), но при успешной компиляции она не заменяет функцию libc, вызванную статической библиотекой.
Выгружая библиотеку с ошибками с помощью xxd, я вижу, что localtime находится в списке общих функций libc после явной строки «libc.so.6».
Контекст:
[*]С/С++ [*]исполняемый файл, работающий на Linux-64 с 32-битной компиляцией [*]он связан с библиотекой без исходного кода и с ошибками, связанной с libc.
Чтобы избежать ошибки, я бы обошел функцию localtime из libc и использовал функцию mine. Исходное локальное время работает хорошо, но оно вызывается один раз и используется плохо. Неправильная функция местного времени может помочь найти способ обойти ошибку.
Как я могу связать мою новую функцию localtime с моим исполняемым файлом, чтобы обойти исходную функцию, вызываемую в libc библиотекой с ошибками? Основная программа не вызывает localtime явно.
Я написал новую функцию localtime в основном исходном коде (и в независимой библиотеке, загруженной сначала с помощью LD_PRELOAD), но при успешной компиляции она не заменяет функцию libc, вызванную статической библиотекой.
Выгружая библиотеку с ошибками с помощью xxd, я вижу, что localtime находится в списке общих функций libc после явной строки «libc.so.6».
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение