Техническое задание: Модификация ELF-файла

Цель работы

Требуется программно модифицировать предоставленный исполняемый файл в формате ELF (Executable and Linkable Format). Основная задача - вставить блок данных фиксированного размера в конкретное место структуры программы.

Детали задачи

  • Исходный объект: Готовый скомпилированный ELF-файл (двоичная программа), содержащий несколько функций.
  • Действие: Между концом функции с условным названием f1 и началом функции f2 необходимо вставить блок данных размером 64 килобайта (65536 байт).
  • Содержимое блока: Блок должен быть заполнен нулевыми байтами (0x00).
  • Требования к результату: Модифицированный файл должен оставаться работоспособным исполняемым файлом. Все смещения, ссылки и заголовки внутри ELF должны быть корректно обновлены с учетом вставленного блока.

Ожидаемый результат

Исполнитель должен предоставить:

  1. Модифицированный ELF-файл, соответствующий требованиям.
  2. Краткое описание примененного метода и использованных инструментов (например, patchelf, objcopy, написанный скрипт на C/Python).
  3. Подтверждение, что целостность и работоспособность программы сохранены.

Необходимые навыки

  • Понимание структуры ELF-файлов (заголовки, секции, сегменты).
  • Опыт работы с низкоуровневыми инструментами для анализа и редактирования бинарных файлов.
  • Внимательность к деталям, чтобы не нарушить целостность исполняемого кода.