Ручная загрузка DLL

Тема в разделе "WASM.BEGINNERS", создана пользователем SZ, 5 янв 2011.

  1. Rel

    Rel Well-Known Member

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

    да, только ради этого))

    во-первых... в своем загрузщике я сначала отображал файл в память, а затем из образа соответствующим образом выделял и копировал память... работать с отображениями быстрее, чем читать файл по частям... кроме того, не так давно делал базу данных с шифрованием, так вот операции записи/чтения 32 мегабайт (1024 * 1024 * 2 операции записи/чтения) происходила в течении 2 секунд, а вас смущает 4 операции чтения... во-вторых... вообще грамотный программист, если выделяет память, то затем очищает ее, как только она ему становится не нужна... так вот отображение удаляется, после того как становится без надобности... тем более виртуальная память на 32-битных машинах способна вмещать достаточно данных, чтобы удержать не одну сотню ваших PE-файлов... в-третьих, код загрузки секций с учетом выравнивания имеет меньший размер чем код настройки релоков или таблицы импорта например...
     
  2. qwe8013

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    Rel
    С помощью CreateFileMapping(NtCreateSection) можно сразу отобразить PE-файл с учётом выравниваний (флаг SEC_IMAGE).
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    вот видите... вы решили все проблемы ТС))) мне же это не подходит, так как частенько бывает (обусловлено моей спецификой деятельности), что файл надо удалять после загрузки)))
     
  4. SZ

    SZ New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2010
    Сообщения:
    30
    Я вобще начинал с LoadlibraryEx ))) потом и CreateFileMapping пробовал.
    Не подходят они. У меня файл до загрузки, как бы это сказать, не много нечитабельный )
    Ну а насчёт
    там Rel уже написал.
     
  5. qwe8013

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    SZ
    Ну в таком случае либо делайте его читабельным, а потом используйте CreateFileMapping(NtCreateSection), либо
    грузите с учётом выравниваний.