нахождение всех загруженых dll

Тема в разделе "WASM.BEGINNERS", создана пользователем readme, 3 дек 2005.

  1. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    вобщем мне хочется узнать какие библиотеки загружены в маей программе, т.е. перечислить их и можно это както сделать без использования api функций?
     
  2. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    Как искать процессы и загруженные в них модули в разных версиях Windows, подробно описано тут:

    http://www.rsdn.ru/article/qna/baseserv/enumproc.xml



    От себя добавлю, что в случае с ToolHelp32 API модули перечесляются функциями Module32First и Module32Next, которые используются аналогично функциям Process32First и Process32Next



    А вот без API... Наверное, переписать код нужных функций в свою программу =), или добраться до их кода в билеотеках, прочитав статью "Поиск адресов API в win95-XP"
     
  3. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    мне нужно контролировать какие библиотеки загружены в программу, вроде мне кажется что я читал про перечисление dll'ек
     
  4. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    Ну так а я о чём? По ссылке, которую я привёл, есть пример перечисления dll'ок с помощью ЕnumProcessModules. Так же там описан способ работы с Process32First (для поиска процессов), а для поиска библиотек есть Module32First. Повторяю - используется аналогично...
     
  5. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    Вот пример поиска модулей с помощью ToolHelp32:

    [​IMG] _366523067__emod.zip
     
  6. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    спасибо канечно но в этом премере невсё почемуто видно, вот к примеру в pe tools можно увидеть есчё одну dll'ку которую подгружает Punto Switcher для сваей работы
     
  7. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    Punto Switcher подгружает её не сразу, а через некоторое время. А список библиотек формируется почти мгновенно после запуска процесса (когда она ещё не подгружена). Прикрути к моему примеру кнопку "Обновить" и увидишь в списке заветную correct.dll =)
     
  8. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    точно уже сделал всё нормально)

    щас буду разбираться
     
  9. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    чёрт выгружаю этот correct.dll а он наверна получает сообщение о выгрузке и перегружается

    чёрт как бы ему пакостное что сделать чтоб негрузился снова)
     
  10. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    чёт я совсем плохой, вот пример там по двойному нажатию библиотека должна выгружаться но у меня неодна невыгружается хотя возвращает FreeLibrary единицу, чёт я туплю, почему они невыгружаются?

    [​IMG] _1864306221__ListBox1.rar
     
  11. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    Как насчёт

    invoke GetModuleHandle, OFFSET text

    вместо

    invoke LoadLibrary, OFFSET text



    только жизненно необходимые модули всёравно не выгрузятся, зато выгруженый таким образом correct.dll больше не будет цеплятся (к другим процессам, правда, тоже)
     
  12. readme

    readme New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2005
    Сообщения:
    271
    Адрес:
    Russia
    угу помагло,вот странно удаётся к пимеру иногдаоставить минимальное количество :ntdll.dll

    kernel32.dll

    user32.dll

    gdi32.dll

    при котором программа непадает с ошибкой, некоторые дллки удаётся почемуто неспервого раза выгрузить



    както хочется чтобы выгружать внедряемые в маю программу странные dll'ки)