Я ищу простой способ изменить порядок разделов файла ELF.У меня есть последовательность пользовательских разделов, которые я бы хотел, чтобы все были выровнены в определенном порядке.
Единственный способ, который я нашел, - это использовать скрипт Linker.Однако в документации указано, что указание пользовательского сценария компоновщика переопределяет значение по умолчанию.Скрипт компоновщика по умолчанию содержит много контента, который мне не нужно дублировать в моем собственном скрипте, просто чтобы три секции всегда были вместе в определенном порядке.Кажется, не очень удобно жестко кодировать поведение компоновщика.
Почему я хочу это сделать?У меня есть раздел данных, который мне нужен, чтобы знать расположение памяти во время выполнения (начало и конец).Итак, я создал два дополнительных раздела и поместил в них переменные дозорного.Затем я хочу использовать ячейки памяти этих переменных, чтобы узнать размер неизвестного участка в памяти.
.markerA
int markerA;
.targetSection
... Lots of variables ...
.markerB
int markerB;
В приведенном выше примере я бы знал, что данные в .targetSection находятся между адресомmarkerA и markerB.
Есть ли другой способ сделать это?Существуют ли библиотеки, которые позволили бы мне прочитать образ исполняемого ELF и определить местоположение и размер раздела?