Как в настройках проекта VS2005 задать FILE_ALIGN 0x1000?

Тема в разделе "WASM.BEGINNERS", создана пользователем dyn, 15 дек 2010.

  1. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Привет
    Как в настройках проекта VS2005 задать FILE_ALIGN ?

    Опция линкера /ALIGN:0x1000 устанавливает SECTION_ALIGN
    А мне нужно сделать так, чтобы секции физически были выровнены на 4кб.
    Где это можно сделать? Каким ключом?
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    это вообще говоря бессмысленная задача, то есть имеет смысл лишь выравнивание в памяти... поэтому она видимо не предусмотрена... можешь сам программу написать и поставить в пост-билд ивент... можешь канеш на мсдн в линкер оптионс поискать... но чет я очень сомневаюсь насчет этой задачи...
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    dyn
    в смысле физически ??? в файле что-ли ??? для исполняемых файлов это бред -- загрузчику все равно откуда из файла ему главное куда (с какого адреса памяти)
     
  4. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Физически. В файле.
    Нужно для того, чтобы не нужно было размещать секции в памяти вручную (убрать лишний код).
    Во всех секциях PhysicalSize > VirtualSize.
    Поэтому смысл есть.

    Ну и интересно, реально ли где-то в настройках изменить FileAlignment
    Судя по всему нет, т.к. в интернете нигде нет об этом упоминания.
     
  5. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
  6. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    dyn
    Ключ линкера /FILEALIGN:4096
    Опция недокументированная, правда.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    dyn
    я все равно не понимаю смысл твоей затеи - допустим ты прикручиваешь к своей программе нестандартный дос стуб - соответственно в заголовке прописываются новые значения начала бинарного образа от начала файла - а твой образ как грузился по адресу (ну допустим image_base) так и грузится
     
  8. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    green
    Спасибо огромное! Помогло!
     
  9. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Rockphorr
    Обобщу и упрощу задачу.
    Нужно в свое АП вручную загрузить длл, которая хранится в ресурсах.
    В длл виртуальный размер всех секций равен физическому.
    Чтобы не заморачиваться с размещением секций в памяти, делаем FILE_ALIGN == SECTIONS_ALIGN
    Тогда физическое смещение секции равно виртуальному. И двигать секции не нужно, тем самым убираем лишний код.
    Думаю, теперь понятно?
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    ого... запомним...

    это странно... во-первых, выравнивание по секциям - это наверное наименьшая часть из работы PE-загрузщика, настройка релоков и таблицы импорта выглядит помассивнее... во-вторых, в плане размера вы проигрываете больше в размере выходной DLL, чем выигрываете в размере кода, всетки выравнивание одной секции на 4кб - это как то жестко... в-третьих, по хорошему вам все равно придется настраивать права доступа к страницам секций, исходя из атрибут секций, можно канеш этого не делать, поставив всем страницам PAGE_EXECUTE_READWRITE, но это не красиво...

    ЗЫ кстати по последним вашим темам и вопросам на форуме можно с 90% вероятности сказать, что вы занялись написанием малвари... дедуктивный метод так сказать)))
     
  11. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    тогда классы сабклассы видимо чтобы с толку сбить