Изменение функции в бинарнике, чтоб она возвращала определенное значение.

Статус рабочей области:Поиск исполнителя
Стоимость:Договорная
Срок выполнения:3 дня
Варианты оплаты:По договоренности
Дата публикации:2024-10-28 06:23
Обновлено:2024-10-29 08:51
Был(а) на сайте:2024-11-03 02:27

Изменение функции в бинарнике, чтоб она возвращала определенное значение.

 
Задача

Есть бинарник, линуксовская библиотека .so.
Что функция вызывается из нее вроде определил, через ida pro.
Надо ее поменять чтоб возвращала
Определенное значение.

Оставлять заявки могут только авторизованные пользователи.
Исполнитель по этому заданию выбран.
Abak Barama
Специализация: Программирование и IT
  • 1 000 руб3 дня
Напишите подробности, если задача ещё актуальна.

Сроки и стоимость указаны "с потолка", для реалистичной оценки нужно увидеть программу.
Изменение функции внутри скомпилированной динамической библиотеки (.so файла) для возврата определенного значения может быть сложной задачей, особенно без исходного кода. Вот несколько общих подходов, которые вы можете рассмотреть:

Использование LD_PRELOAD для переопределения функции:

Создайте обертку-библиотеку: Напишите новую динамическую библиотеку, в которой вы реализуете функцию с тем же именем, что и та, которую хотите переопределить.
Возвращайте необходимое значение: В вашей функции просто верните нужное вам значение.
Предварительная загрузка вашей библиотеки: Используйте переменную окружения LD_PRELOAD, чтобы загрузить вашу библиотеку перед оригинальной, так что ваша функция переопределит исходную.
export LD_PRELOAD=/путь/к/вашей/библиотеке.so

Бинарное патчинг:

Дизассемблируйте библиотеку: Используйте такие инструменты, как IDA Pro или Ghidra, чтобы дизассемблировать библиотеку и найти нужную функцию.
Измените возвращаемое значение: Измените код ассемблера так, чтобы функция возвращала требуемое вам значение.
Соберите библиотеку заново: Сохраните изменения и убедитесь, что бинарный файл корректно пропатчен.
Примечание: Бинарный патчинг рискован и может повредить библиотеку, если сделать что-то неправильно. Всегда делайте резервные копии.

Перехват функции:

Трюки с динамическим линковщиком: Если функция динамически связывается, вы можете перехватить вызовы к ней, используя возможности линковщика.
Реализуйте пользовательскую функцию: Для таких функций, как malloc, вы можете предоставить собственную реализацию, которая будет вызываться вместо оригинальной.
Использование отладчика для модификации во время выполнения:

Подключитесь с помощью отладчика: Используйте gdb, чтобы подключиться к процессу, использующему библиотеку.
Установите точку останова и измените поведение: Когда функция вызывается, вручную измените возвращаемое значение.
Примечание: Это больше временное решение для тестирования.
 
Alex Z
Специализация: Программирование и IT
  • 2 000 руб3 дня
Доброго времени суток!
Задача достаточно сложная, реализация зависит от многих факторов. Скорее всего придётся писать библиотеку-обертку или патчить бинарник.
К счастью, есть опыт выполнения подобных задач, так-что справлюсь быстро. От вас потребуется библиотека и подробности (что именно надо поменять).

Telegram: @alex_industrial

До связи!
Дамир Викторович Радионов

Делаю как себе, - старательно и до самого конца.

Специализация: Программирование и IT
  • 10 000 руб10 дней
Здравствуйте. С радостью выполню Ваш проект 'Изменение функции в бинарнике, чтоб она возвращала определенное значение.'. У меня есть опыт в этой области. Давайте обсудим детали.

Оставлять заявки могут только авторизованные пользователи.