TODO: + Добавить поддержку фильтрации открытия и создания key + Добавить поддержку фильтрации перечисления key + Добавить поддержку фильтрации перечисления value + Вынести fs filter и reg filter в отдельные файлы + Протестировать фишки с ObRegisterCallback + Стерание всех флагов + Реализовать PsMonitor со всеми вытекающими + Реализовать рабочий прототип + Для Exclude + Для Protected + Добавить флаг наследования + Реализовать интерфейс для IOCTL + Реализовать интерфейс для File & Reg мониторов + Вынести Process Table в отдельный файл + Переименовать Process Tree в Process Table + Протестировать интерфейсы + Добавить в HiddenCLI загрузку excluded и protected процессов + Добавить проект HiddenTest + Реализовать тесты в проекте HiddenTest + FS monitor + Reg filter + Ps filter + Добавить код тестирования для add\remove excluded image + Добавить в Reg filter поддержку всех возможных операций над value + set value + delete value + query value + query multiple value - Переписать Exclude List на основе AVL или других buildin generic trees - FS monitor - Reg monitor + Реализовать конвертирование пути в пути драйвера + Ps monitor + FS filter + Reg filter + Реализовать RemoveAllExcludeListEntries + Реализовать все ф-и Ps monitor + Добавить в библиотеку поддержку get\set state + Решить проблему с protected (возможно разрешить создавать такие процессы только из protected\system) + Реализовать IOCTL протокол управления + Реализовать usermode библиотеку для работы с IOCTL API + Слинковать с IOCTL API lib + Добавить поддержку флага автоприсвоение состояния существующим процессам для Hid_AddExcludedImage\Hid_AddProtectedImage + Проверить как ведёт себя файловый фильтр с файлами открытыми по ID или по короткому пути + Реализовать HiddenCLI + ignore + unignore + protect + unprotect + query + Протестировать все комманды + При выполнении /unhide с любым ID возвращается статус ок + Проверить чтобы все ObjId генерировались начиная с 1 + Реализовать функционал вкл\выкл драйвера через IOCTL - Написать тест для вкл\выкл драйвера через IOCTL + Написать тест HiddenCLITests + Портировать драйвер под архитектуру x64 + Портировать под версии Windows 8, 8.1, 10 + Залить проект на Git + Переименовать проект драйвера в Hidden + Привести в порядок все версии билда Release, Debug, ... + Добавить процесс System(4) как статически исключенный - Подумать по поводу проблемы, что HKLM\System\CurrentControlSet на самом деле берётся из CurrentControl00n - Реализовать steals mode + Реализовать поддержку загрузки дефольтных конфигов из реестра + Реализовать установку конфигов в реестр через hiddencli + Привести в порядок вывод статуса в hiddencli + Привести в порядок номер ошибки в hiddencli + Изменить логирование на DbgPrintEx - Добавить SAL на функции драйвера - Поддержка case-sensetive путей на Windows 10 - Реализовать сокрытие процессов + Сделать видимыми скрытые процессы после выгрузки и /unhide - Улучшить алгоритм поиска офсета + Добавить конфигурацию в реестр - Реализовать скрытие процесса из PspCidTable - Добавить сокрытие потоков из PspCidTable + Добавить поддержку Vista\7 - Решить проблему синхронизации доступа к ActiveProcessLinks - Добавить поддержку сокрытия из SessionProcessLinks (если в этом есть смысл) - Реализовать сокрытие сервисов через scdb патч - Добавить тест для проверки сокрытия процессов + Решить проблему с %tu принтом лога на 32-бит драйвере - Эмулировать создание reg\fs обьектов, когда обьект с таким же именем скрыт + GetProcessInProcessTable может возвращать ptr чтобы избежать UpdateProcessInProcessTable - Windows 7 x86 protect тест завален - Проверить всё на Windows Vista