1

Тема: Слияние секций

Рассматривается реализация слияния секций в PE Tool. Соответствующий ключ командной строки будет называться -merge. Возможность будет полезна как для разработки на Delphi, так и для некоторых других применений.

PE Tool собирается Delphi 2007, создающим дополнительную секцию кода по сравнению с Delphi 6/7 — .itext. В ней хранится код модуля System, компонуемый с программой. Тем самым количество секций на одну больше, и замена заглушки DOS не дает ожидаемого выигрыша.

Чтобы слияние сократило размер программы, сливаемая секция должна быть перебазирована на конец предыдущей секции в цепочке, для чего нужны перемещаемые символы. После перебазирования перемещаемые символы не нужны и могут быть вырезаны (если обрабатывается программа, а не библиотека). Если не выполнять перебазирование, сливаемая секция должна быть дополнена нулями на разницу размера выравнивания секций в файле и в памяти, что увеличит размер программы и сведет на нет выигрыш от сокращения числа секций.