Библиотека импорта

Discussion in 'WASM.ZEN' started by Asvald, Dec 25, 2007.

  1. Asvald

    Asvald New Member

    Blog Posts:
    0
    Joined:
    Sep 18, 2006
    Messages:
    58
    Вопрос в следующем: каков механизм/алгоритм создания импорта в PE файле с помощью линкера и библиотек импорта. В фасме структуры импорта я создаю вручную/макросами. В масме за меня все делает линкер, и вот интересно как он это делает.
     
  2. Booster

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Asvald
    Ну названия функций и библиотеки-то у него есть, почему-бы и не сделать импорт. А FASM видимо не заморачивается на поиске функций в либах. В принципе в нём из-за этого линковка должна идти пошустрее.
     
  3. Quantum

    Quantum Паладин дзена

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    Asvald
    Библиотеки импорта pe-coff состоят из обьектников практически ничем не отличающихся от обычных обьектников, за исключением одного слабодокументированного свойства. На каждый импортируемый символ приходится один обьектник + ещё несколько обьектников для создания директории импорта, директории конкретной DLL и заглушки для завершения всех этих директорий нулями. Линкер просто достаёт соответствующие обьектники из библиотеки импорта и помещает их в экзешник точно также как он поступает с любым обычным обьектником. Никакого специального алгоритма у него нет. Это справедливо для библиотек импорта pe-coff. У библиотек omf действительно существует специальный формат и алгоритм компоновки.
     
  4. drmist

    drmist New Member

    Blog Posts:
    0
    Joined:
    May 31, 2005
    Messages:
    112
    Asvald
    Алгоритм зависит от конкретного линковщика и человека, написавшего его.
    Метод очевидно следующий - для каждой подгружаемой библиотеки построить список импортируемых функций и из данных списков создать импорт. Формат таблицы импорта и откуда загрузчик узнает ее RVA есть в любом описании PE-формата.
     
  5. Mikl_

    Mikl_ New Member

    Blog Posts:
    0
    Joined:
    Nov 14, 2006
    Messages:
    907