Изменение секции data

Тема в разделе "WASM.WIN32", создана пользователем protein, 8 авг 2007.

  1. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    Есть программа, а точнее инсталятор. В секции data, которой находитятся файлы. Работа с ними ведется одинаково. Хотелось бы написать программу, в которой пользователь выбирал бы необходимые ему файлы, а программа создавала бы новый exe, в секции data которой находились бы заархивированные файлы. Пока приходиться делать все через компилятор. Просто пока не нашел инфы как расширить секцию с данными программно в exe???
     
  2. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    Смотри формат PE и сорсы от вирей )
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    если она посередине файла, расширить будет проблематично) ПРидется скорее всего забить старую секцию нулями, а новую перенести в конец файла.
     
  4. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    Да собственно уже читаю про PE 8) Секцию я сам изначально могу разместить где угодно, т.к. программа мной написана. Просто я хочу опять же программно изменять данные в своем exe, т.е. есть движок и есть данные. Подсовываю новые данные и уже новый exe. И делать это хочется через специальную утилиту, а не с помощью компилятора.
     
  5. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    А почему бы просто не прилеплять архивы в конец экзешника, а в секцию данных кидать имя, размер и очередность ?
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    protein
    Ну а какие проблемы. Делаешь секцию data последней, потом просто дописываешь данные в конец и расширяешь размер в заголовке секции - SizeOfRawData, VirtualSize

    PS. SizeOfRawData, PointerToRawData должны быть кратны IMAGE_OPTIONAL_HEADER.FileAlignment
     
  7. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    protein
    То, что предложил Aspire - самый легкий вариант. Примерно так устроены раровские SFX-архивы.

    Пример, добавляющий новую секцию можно взять на страничке http://twister.orgfree.com/projects/ - VeRa v0.01 (+ src). Исходники достаточно не плохо прокомментированы...
     
  8. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    Спасибо за ответы 8) With regard to all