FASM & DLL, exporting by ordinal

Тема в разделе "WASM.ASSEMBLER", создана пользователем minlexx, 27 сен 2009.

  1. minlexx

    minlexx New Member

    Публикаций:
    0
    Регистрация:
    15 мар 2009
    Сообщения:
    4
    в общем, можно ли с помощью fasm организовать экспорт из ДЛЛ не только по имени, но и по ординалу (указать ординал явно)? не устраивает последовательная нумерация, из 118 имен нужно чтобы вместо 117го было 151, вместо 118 - 500 :)

    в .def-файлах vc можно указать ординал после имени, наподобие
    Код (Text):
    1. EXPORTS
    2.     accept @ 1
    3.     bind @ 2
    4.     closesocket @ 3
    5.     connect @ 4
    6.     getpeername @ 5
    7.     getsockname @ 6
    8.     __WSAFDIsSet @ 151
    9.     WEP @ 500
    или как подправить ординалы экспортируемых функций в скомпиленной длл? всякие PE Tools, Lord PE не помогли, или я криворук (после изменения NameOrdinal начинаются глюки, экспорт пропадает, появляется какой-то noname экспорт, ...) я так понимаю, NumberOfFunctions в директории экспорта не совпадает с максимальным значением ординала) :unsure:
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    я бы написал в фасме свой макрос export

    как-то так
    Код (Text):
    1. macro export dllname,[label,string,ordinal]
    2.  { common
    3.     local module,addresses,names,count
    4.     count = 0
    5.    forward
    6.     count = count+1
    7.    common
    8.     dd 0,0,0,RVA module,1
    9.     dd count,count,RVA addresses,RVA names,RVA ordinal
    10.     addresses:
    11.    forward
    12.     dd RVA label
    13.    common
    14.     names:
    15.    forward
    16.     local name
    17.     dd RVA name
    18.    common
    19.     ordinal:
    20.    forward
    21.     dw ordinal
    22.    common
    23.     module db dllname,0
    24.    forward
    25.     name db string,0
    26.    common
    27. }
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    наверн метка ordinal и параметр макроса ordinal должны иметь разные имена
    вобщем надо скомпилить и проверить
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    http://wasm.ru/forum/viewtopic.php?id=10439
     
  5. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    по данному линку импорт, а не експорт.
    интересует сабж, как сделать експорт по ординалам.
     
  6. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    помогли решить, ответ тут:
    http://www.wasm.ru/forum/viewtopic.php?pid=359642#p359642