MalwareBytes хранит локальную базу данных на компьютере и это база данных SQLite.
В ней содержатся настройки различных параметров: лицензия, обнаруженные вредоносные программы, списки известных хороших и известных плохих файлов/процессов. Всё это стандартный набор функций для антивирусного/анти-малварного ПО.
База данных с названием «ThankYouForChoosingMalwarebytes» — это менее интересная база, она в основном содержит настройки (хотя и её теоретически можно использовать для злоупотреблений).
Тем не менее, MalwareBytes делает несколько важных вещей с помощью этих SQLite-баз:
MalwareBytes устанавливает мини-фильтр в режиме ядра (mbam.sys). Они настраивают функции обратного вызова (callback routines) мини-фильтра для обработки событий в системе: создание процесса, загрузка исполняемого образа, изменение реестра (Изображение 1).
Другими словами, MalwareBytes получает уведомление мгновенно, как только создаётся процесс или загружается исполняемый образ. При создании процесса или загрузке образа MalwareBytes имеет специальный механизм, который временно «замораживает» выполнение, чтобы успеть его проанализировать.
Однако эта «заморозка» происходит быстрее, чем мы с вами успеваем моргнуть. Компьютеры очень быстрые.
mbam.sys создаёт внутреннюю таблицу всех запущенных процессов. Когда появляется новый процесс — он добавляется в эту таблицу. Когда программа закрывается — удаляется из неё. Это делается для того, чтобы случайно не анализировать и не «замораживать» один и тот же процесс дважды.
Когда процесс добавляется в этот список, компонент режима ядра связывается с компонентом в пользовательском режиме, который, в свою очередь, обращается к локальной базе данных SQLite. База выполняет поиск и определяет — известен данный процесс или неизвестен (Изображение 2).
Важное замечание: база на Изображении 2 — это не та интересующая нас SQLite-база. Это другая база, которую MalwareBytes тоже использует (и общается с ней из режима ядра). Но суть остаётся той же.
- Если процесс известен — компонент ядра получает ответ.
- Если известен и вредоносный → MalwareBytes сразу блокирует запуск программы.
- Если известен и чистый → MalwareBytes помечает его внутренне как «уже виденный» и оставляет в своей таблице.
Изображение 3 — это уже из внутренней базы, которую они используют. Она довольно большая и в основном содержит настройки.
Но я до сих пор не нашёл, где лежит та самая большая, важная и интересная база данных, которую они используют.
src
Post #1176
42


