Есть программа, а точнее инсталятор. В секции data, которой находитятся файлы. Работа с ними ведется одинаково. Хотелось бы написать программу, в которой пользователь выбирал бы необходимые ему файлы, а программа создавала бы новый exe, в секции data которой находились бы заархивированные файлы. Пока приходиться делать все через компилятор. Просто пока не нашел инфы как расширить секцию с данными программно в exe???
если она посередине файла, расширить будет проблематично) ПРидется скорее всего забить старую секцию нулями, а новую перенести в конец файла.
Да собственно уже читаю про PE 8) Секцию я сам изначально могу разместить где угодно, т.к. программа мной написана. Просто я хочу опять же программно изменять данные в своем exe, т.е. есть движок и есть данные. Подсовываю новые данные и уже новый exe. И делать это хочется через специальную утилиту, а не с помощью компилятора.
А почему бы просто не прилеплять архивы в конец экзешника, а в секцию данных кидать имя, размер и очередность ?
protein Ну а какие проблемы. Делаешь секцию data последней, потом просто дописываешь данные в конец и расширяешь размер в заголовке секции - SizeOfRawData, VirtualSize PS. SizeOfRawData, PointerToRawData должны быть кратны IMAGE_OPTIONAL_HEADER.FileAlignment
protein То, что предложил Aspire - самый легкий вариант. Примерно так устроены раровские SFX-архивы. Пример, добавляющий новую секцию можно взять на страничке http://twister.orgfree.com/projects/ - VeRa v0.01 (+ src). Исходники достаточно не плохо прокомментированы...