Здравствуйте, Господа! Возникло у меня желание ограничить запуск определенных DOS-овых программ на компьютере под WinXP SP1 и Win2000 SP4. В процессе изучения тематики определил ответственный за DOS-программы процесс ntvdm.exe. А теперь вопрос: как узнать какое приложение работает в контексте этого процесса, т.е. заметив ntvdm, я хочу знать, что кто-то запустил Borland Pascal, а кто-то Turbo C. Заранее всем спасибо за ответы
1) По заголовку окна. 2) Может стоит написать резидента для DOS-a? Пусть сам скажет что запущено сервисному процессу.
Думаю VDD может стать выходом. Нужно покурить VDDInstallUserHook с обработкой старта и завершения DOS приложений. А дальше читать PSP и смотреть что запущено. В DOS'е я не сильно силен...
Здравствуйте! Всем спасибо за ответы. К сожалению,писать драйвера пока не научился, поэтому способ с VDDInstalUserHook вряд ли подойдет. Кто знает, может, есть подход к этому делу из 3-го кольца? Заранее всем спасибо за ответы
Ну вообще то 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 анрегистришь хук и все дела. Однако не проще ли будет просто настроить превилегии на доступ к файлам. Типа все позапрещать кроме нескольких программ с которыми разрешено работать.
Здравствуйте! Спасибо за совет. К сожалению, привилегии настроить не проще : желание прикрыть ntvdm - мое личное и начальством весьма не одобряемое, а посему начальству знать об этом совсем не обязательно. Поэтому придется, видно, идти по пути, указанному Julius'ом, за что ему огромное спасибо.