ntvdm.exe

Тема в разделе "WASM.WIN32", создана пользователем pateykin, 15 ноя 2005.

  1. pateykin

    pateykin New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    10
    Адрес:
    Kiev
    Здравствуйте, Господа!

    Возникло у меня желание ограничить запуск определенных DOS-овых программ на компьютере под WinXP SP1 и Win2000 SP4. В процессе изучения тематики определил ответственный за DOS-программы процесс ntvdm.exe. А теперь вопрос: как узнать какое приложение работает в контексте этого процесса, т.е. заметив ntvdm, я хочу знать, что кто-то запустил Borland Pascal, а кто-то Turbo C.



    Заранее всем спасибо за ответы
     
  2. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    1) По заголовку окна.

    2) Может стоит написать резидента для DOS-a? Пусть сам скажет что запущено сервисному процессу.
     
  3. Julius

    Julius New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2003
    Сообщения:
    42
    Думаю VDD может стать выходом.

    Нужно покурить VDDInstallUserHook с обработкой старта и завершения DOS приложений.

    А дальше читать PSP и смотреть что запущено. В DOS'е я не сильно силен...
     
  4. pateykin

    pateykin New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    10
    Адрес:
    Kiev
    Здравствуйте!

    Всем спасибо за ответы. К сожалению,писать драйвера пока не научился, поэтому способ с VDDInstalUserHook вряд ли подойдет. Кто знает, может, есть подход к этому делу из 3-го кольца?



    Заранее всем спасибо за ответы
     
  5. Julius

    Julius New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2003
    Сообщения:
    42
    Ну вообще то VDD это и есть 3-е кольцо. И написать его не сложнее обычной DLL коей он и является.

    Регестрируешь ее в разделе:

    [HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Control \VirtualDeviceDrivers]

    VDD = <full-path of the VDD1.DLL>\0<full-path of the VDD2.DLL>\0\0

    Когда приходит DLL_PROCESS_ATTACH регистрируешь хук. Твоей подпрограмме при возникновении события запуска/завершения программы передается селектор начала сегмента в который она загружена. Конвертишь этот селектор в 32-битный указатель. Читаешь PSP смотришь коммандную строку. Делаешь всякие "нехорошие" вещи.

    Когда приходит DLL_PROCESS_DETACH анрегистришь хук и все дела.

    Однако не проще ли будет просто настроить превилегии на доступ к файлам. Типа все позапрещать кроме нескольких программ с которыми разрешено работать.
     
  6. pateykin

    pateykin New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    10
    Адрес:
    Kiev
    Здравствуйте!

    Спасибо за совет. К сожалению, привилегии настроить не проще : желание прикрыть ntvdm - мое личное и начальством весьма не одобряемое, а посему начальству знать об этом совсем не обязательно. Поэтому придется, видно, идти по пути, указанному Julius'ом, за что ему огромное спасибо.