Во-первых, позвольте мне заявить, что я являюсь промежуточным разработчиком .NET, поэтому о низком уровне не может быть и речи.
По сути, я просто хочу написать программу, которая будет следить за изменениями в системе и регистрировать / сообщать об этих изменениях. Для этого не нужно блокировать какие-либо изменения, и я не верю, что смогу, даже если бы хотел учесть язык, на котором написано. Я просто не уверен, что мне нужно было бы проверить.
В голову приходят эти идеи:
- Проверьте и сохраните сумму системных файлов MD5 и все, что связано с
запуск в реестре, и если они не соответствуют доверенному MD5, то
сканировать с помощью VirusTotal или аналогичного сервиса
- Проверка запущенных процессов на наличие доверенной суммы MD5, загрузка неизвестна
VirusTotal
- Мониторинг услуг
- Мониторинг прослушивающих портов
Конечно, об обнаружении чего-либо за пределами ring3 не может быть и речи.
Любые другие идеи вещей, чтобы проверить? Это выполнимо или я должен просто придерживаться популярного антивирусного программного обеспечения?
Редактировать: Еще одна идея, которая приходит на ум, - это проверка запущенных процессов на предмет их пути и сообщение о неуместном исполняемом файле. Может быть, regex сканирует случайные имена файлов. Также возможно проверка исполняемого заголовка запущенных процессов и сообщение о неверной информации заголовка, так как я слышал, что привязка файла сделает часть заголовка (PE?) Недействительной. Проверка сертификата файла тоже, хотя я видел вредоносное ПО с поддельным сертификатом, прошедшее UAC раньше.
Время для дополнительных исследований, спасибо всем!