Доброго времени суток! Решил создать отдельную тему для своей утилиты SystemResearch Проект на ранней стадии, много чего задумано и реализуется по мере свободного времени. Сборки с новым функционалом буду выкладывать в этой теме. Основной упор на код и оптимизацию сделан для Windows 10/11, но также тестирую работу программы в Windows 7. Поддерживаются только 64 битные ОС. Среда разработки и компилятор - Pelles C (версия 12.00.2) Состав программ: 1. SystemResearch.exe - основная программа 2. UI0Detect.exe - сервис (служба) для перехода в терминальную сессию (SessionId = 0) 3. Wls0wndh.dll - вспомогательная подпрограмма для возврата из терминальной сессии 4. FDUI0Input.sys - драйвер для устройств ввода-вывода в терминальной сессии Инструкция по установке для Windows 10/11: 1. Файлы UI0Detect.exe и Wls0wndh.dll необходимо поместить в папку Windows\System32 2. В SystemResearch.exe нажать кнопку Create UI0Detect Service 3. Установить драйвер FDUI0Input.sys через FDUI0Input.inf 4. Перезагрузить компьютер Перечислять все функции думаю смысла нет, всё интуитивно понятно. Списки с процессами и сервисами активируются по двойному щелчку мыши. Правой кнопкой мыши осуществляется обновление списков из контекстного меню. Также в программе реализованы всплывающие подсказки при наведении на определенные строки с выведенной информацией. Язык программы - английский. Из необычных особенностей - специально реализовывал открытие дескрипторов с минимально возможным набором прав. Интересно наблюдать как на это реагируют различные процессы. Например процесс csrss.exe - единственный процесс, который не показывает идентификатор сессии если не включена привилегия SeDebugPrivilege у вызывающего процесса. В свою очередь для юзермодных процессов можно включать привилегию SeSecurityPrivilege (т.к. используется флаг ACCESS_SYSTEM_SECURITY) заместо SeDebugPrivilege. Помимо прочего, при включении в Windows 10/11 изоляции ядра, подключаются гипервизор и два безопасных процесса - Secure System и LsaIso.exe с соответствующим уровнем доверия (Virtual Trust Level). Если Secure System является защищенным процессом, то LsaIso.exe спокойно отдаёт свои дескрипторы вызывающему процессу уровня системы. Это создаёт некоторое поле для маневра. В общем пока так. По мере свободного времени буду обновлять функционал программы.
С релизом Windows 11 23H2 (build 22631) драйвер FDUI0Input.sys перестал работать (как и предыдущие на предыдущих обновлениях ОС). Проблема ребят из FireDaemon в том, что они продолжают упорно привязывать свой драйвер к рабочему столу Default. При этом механизм переключения в терминальную сессию (winsta.dll) устроен таким образом, что переход осуществляется на рабочий стол Winlogon. Отсюда и все беды. Ждём следующего обновления драйвера. Пришлось переделать сервис UI0Detect под современные реалии: теперь подпрограмма для возврата из терминальной сессии Wls0wndh.dll запускается на рабочем столе Winlogon. При переключении в терминальную сессию вы увидите окно с кнопкой, но взаимодействовать с ним не сможете через клавиатуру и мышь. Сами клавиатура и мышь активируются ровно через 180 сек. (заложено в самой системе в драйвере win32kfull.sys), но взаимодействовать всё равно нельзя. Чтобы вернуться нужно: либо делать хардресет с кнопки и перезагружать ПК, либо написать программу с таймером, по истечение которого автоматически сработает механизм возврата. Загрузить такую программу можно через SystemResearch.exe (соответствующие коррективы для создания системных процессов в терминальной сессии я внёс). Данное обновление небольшое, немного нового функционала, оптимизация кода и исправление небольших багов. Теперь можно добавлять права Sacl и Dacl в вызывающий процесс для получения доступа к информации, содержащийся в этих Acl (будет реализовано позже). Также следует учитывать - Dacl для защищённых процессов получить пока что невозможно. Доработал механизм снятия защиты с сервисов. Обратите внимание: для снятия защиты с сервиса нужно, чтобы владельцем (owner) вызывающего процесса была СИСТЕМА (соответственно запуск с токеном Trusted Installer Token). Если у вас Windows 11 22H2 (build 22621) и более старые ОС новый (временный) файл сервиса UI0Detect.exe качать не нужно.