Статическая lib из DLL

Тема в разделе "WASM.ASSEMBLER", создана пользователем zdacom, 29 июл 2009.

  1. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Собственно сабж. Как из уже имеющейся DLL сделать статическую lib. Потом её собственно подключить используя

    Код (Text):
    1. include example.inc
    2. includelib example.lib
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    implib
     
  3. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    а лучше юзай фасм или динамическую линковку.
     
  4. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    спс.
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    dll2lib есть такая прога, платная
     
  6. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Да её та я установил )) Проблема в том, что она платная.

    Там после вызова функции выпрыгивает окошко. Перетирать все je не хочется. Хотя там один вроде бы прыжок.
     
  7. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    я вот только не понимаю чем implib32 не угодил. бесплатный. делает либы. все работает. не понимаю.
     
  8. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Код (Text):
    1. ImpLib32 Version 1.02 - ImpLib for Win32
    2. Copyright (c) 1996-97 by Markus Seger (mseger@kagi.com)
    3.  
    4. Usage: ImpLib32 [-d] srcfile[.dll] [outfile[.lib]]
    5.  
    6.         -d: Create DEF-file with exported symbols
    7.  
    8.  
    9. C:\~\lib>implib32 example.dll example.lib
    10. ImpLib32 Version 1.02 - ImpLib for Win32
    11. Copyright (c) 1996-97 by Markus Seger (mseger@kagi.com)
    12.  
    13. Creating example.lib...
    На выходе либа с нулевым размером.. Что не так?
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    max7C4
    Иди поспи) имплиб тут не при чем. все равно линковка динамическая
     
  10. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Вот и я об этом тоже... Впринципе тоже, что и ... можно пользоваться lib.exe

    Код (Text):
    1. C:\masm32\bin\dumpbin /EXPORTS  example.dll  >  example.def
    2. C:\masm32\bin\lib /OUT:examplel.lib /DEF:example1.def
     
  11. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    а так вы под масм. пора переходить на фасм и забыть про этот древний подход. такое годится ну разве что для ЯВУ и то это большой нехороший пережиток.
     
  12. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    max7C4 вылезай из танка :)
    ты все посты читаешь, или через один?
    Автору темы надо из dll сделать статическую библиотеку с полным кодом, а не *.lib с описанием импорта из этой dll.
     
  13. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    это я понял. я не понял зачем
     
  14. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    А чего тут не понять?! Приятно распространять exe с "барахлом" в виде DLL и потом каждый раз загружать её?

    А если это еще одна библиотека? Давайте будем загружать импорт библиотеки в библиотеку...

    А подгружать из ресурсов совсем не то.
     
  15. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ну а прилепить в конце оверлеем и при загрузки извлекать в темп. а что плохово в нескольких dll вместе с exe
     
  16. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    вот как раз этого не надо. Нужно именно получить статическую либку. Все равно рано или поздно вопрос этот подымется, иба "прилепить в конце оверлеем" не есть "чисто"
     
  17. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    max7C4
    Этот термин присущ *com, для виндоз не имеет смысла.
    В целях защиты следует применять статический импорт.
     
  18. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    защиты от кого. себя самого? это старо как мир. уж лучше пару dll с собой потаскать.
     
  19. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    max7C4
    А как отлаживается приложение ?
    Мы поставим останов на LdrpRunInitializeRoutines(), но кто есчо это сделает. Классический пример:
    > Захватываем InitRoutine() ntdll, дабы ловить удалённые потоки(1).
    > Хватаем KiUserApcDispatcher() для мониторинга внедрения посредством апк и удалённых потоков.
    > Хватаем функции создающие поток в текущем процессе, далее обработчик помечает TEB треда и этот флаг проверяется в двух предыдущих обработчиках. В случае сброшенного флага поток удалённый.
    > Хватаем /KiUserCallbackDispather()/apfnDispatch для мониторинга GUI-хуков, оконных сообщений и тп.
    > Ставим нотификаторы на загрузку модулей.
    > Защищаем проекции всех модулей.
    > Используем последовательность хардварных точек останова, которые загружаем из (1).
    Используем NtRemoveProcessDebug/ThreadHiddenFromDebugger для отклячения отладочного порта.
    > Хватаем диспетчер исключений, до защиты модулей.
    > Не используем VEH, ибо хип доступен из других процессов.
    ...
    Простоя защита, но лесом пойдут все классический перехваты, инжекты и остальной мусор.
     
  20. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    да. но если такое ставить, то зачем через откомпилированный lib, когда можно взять исходник иначе у нас весь отлом защиты сведется к препятствованию ее вызова т.е. снятию дополнительных плюшек навешанных (кстати такими же методами на готовые PE) и изменению кода инициализации в пользу обхода вызова кода защиты.