Техническое задание: Модификация ELF-файла
Цель работы
Требуется программно модифицировать предоставленный исполняемый файл в формате ELF (Executable and Linkable Format). Основная задача - вставить блок данных фиксированного размера в конкретное место структуры программы.
Детали задачи
- Исходный объект: Готовый скомпилированный ELF-файл (двоичная программа), содержащий несколько функций.
- Действие: Между концом функции с условным названием
f1 и началом функции f2 необходимо вставить блок данных размером 64 килобайта (65536 байт). - Содержимое блока: Блок должен быть заполнен нулевыми байтами (
0x00). - Требования к результату: Модифицированный файл должен оставаться работоспособным исполняемым файлом. Все смещения, ссылки и заголовки внутри ELF должны быть корректно обновлены с учетом вставленного блока.
Ожидаемый результат
Исполнитель должен предоставить:
- Модифицированный ELF-файл, соответствующий требованиям.
- Краткое описание примененного метода и использованных инструментов (например,
patchelf, objcopy, написанный скрипт на C/Python). - Подтверждение, что целостность и работоспособность программы сохранены.
Необходимые навыки
- Понимание структуры ELF-файлов (заголовки, секции, сегменты).
- Опыт работы с низкоуровневыми инструментами для анализа и редактирования бинарных файлов.
- Внимательность к деталям, чтобы не нарушить целостность исполняемого кода.