Установить новую версию WinPCap поверх старой

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

  1. AlwaysAlone

    AlwaysAlone New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2011
    Сообщения:
    20
    Привет!
    Подскажите, как можно это сделать?

    Проблема в том, что файлы старой версии могут использоваться существующими приложениями (вроде запущенного Wireshark, или приложением, находящимся в Autorun). В таком случае установщик WinPCap выдает ошибку - не возможно заменить *.DLL файлы старой версии.
    [​IMG]
    Как я могу освободить dll от процессов которые ее используют? Или, наверное, более правильный вопрос: как узнать какие процессы используют библиотеки WinPCap'а? (при установке моего прилождения буду предупреждать user'a о том что все использующие приложения будут закрыты).
    У меня админские права

    Спасибо
     
  2. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    В принципе, можно так (не знаю, по-моему коряво):
    Toolhelp функциями перечисляете процессы, в них внедряетесь (CreateRemoteThread т.е через DLL), потом копаете таблицу импорта внутри.
    Есть уже готовое решение (что неудивительно). Как раз для этих целей. Unlocker что ли обзывается...
     
  3. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Деинсталлировать в safe mode?
     
  4. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Перебирать процессы и в каждом искать промапленные файлы: VirtualQueryEx - GetMappedFileName

    Но лучше использовать другой метод: при обнаружении, что wpcap.dll занята - переименовать ее wpcap_tmp.dll (MoveFile) и записать новую wpcap.dll...
    в конце установки - запросить у юзера перезагрузку компа

    + еще смотрите в сторону MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT ..
     
  5. AlwaysAlone

    AlwaysAlone New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2011
    Сообщения:
    20
    Я думал зделать вот так: попросить пользователя перезагрузить компютер и сразу после загрузки запустить инсталлятор WinPCap, когда его библиотеки еще никем не используются.
    Но тогда возникает такой вопрос: как запустить инсталлятор winpcap раньше чем запуститься любой процесс из авторанов?
     
  6. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    AlwaysAlone
    Анлокнуть файлы Unlocker'ом
     
  7. AlwaysAlone

    AlwaysAlone New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2011
    Сообщения:
    20
    Всем спасибо, как оказалось, RunOnce блокирует загрузку всех "Run" компонетов системы вместе с эксплорером пока процесс указанный в RunOnce не завершится.