Как написать базу данных подписей для Антивируса? - PullRequest
3 голосов
/ 17 марта 2011

я написал небольшой код на C для сканирования всех файлов и папок на моем жестком диске ... и он также может прочитать верхнюю часть двоичного кода исполняемых файлов (например, .exe) и сравнить его со встроенным одиночным двоичным файлом подпись (в шестнадцатеричном представлении). Может отображать сообщение, если подпись соответствует коду бина любого отсканированного файла.

Мы заметили, что я сохранил образец подписи в массиве, потому что это всего лишь одна подпись. Что мне нужно сделать, если я хочу добавить много других подписей! Мне нужно использовать базу данных! Но какая база данных мне нужна? и мне нужно использовать SQL-запрос, чтобы получить и сравнить подписи! какую базу данных используют коммерческие антивирусы (Kaspersky, Symantic, ..etc)? Есть идеи, плз?

Ответы [ 3 ]

2 голосов
/ 17 марта 2011

Berkeley DB - это встроенная библиотека базы данных с открытым исходным кодом, которая в основном является хранилищем значений ключей на диске (дерево поиска или хэш-таблица, в зависимости от настроек).Это даже проще, чем SQLite, потому что он избегает идеи реляционных данных и SQL.

Вы можете использовать вирусные сигнатуры в качестве ключей и их имена в качестве значений, например.

1 голос
/ 07 апреля 2011

профессиональные avs не используют sql для сопоставления сигнатур вирусов.это гораздо более сложный процесс.взгляните на http://sourceforge.net/projects/clamwin/, если вы заинтересованы в этом вопросе.Или на Касперском 2008 просочились источники ...

1 голос
/ 17 марта 2011

SQLite может быть хорошим выбором для вашего приложения.Это легковесный движок SQL по сравнению с полноценными системами СУБД, такими как SQL Server / Oracle и т. Д.

Примечание: вы могли бы рассмотреть возможность хранения этой базы данных в другом месте, чем рассматриваемая система.Кажется, что вы обеспокоены тем, что злоумышленники изменяют содержимое вашего диска.Если это так, те же пользователи могут легко узнать о вашей схеме и убедиться, что любые файлы, которые они изменяют, также будут отражены с новым значением хеш-функции в вашей базе данных, поэтому при выполнении сравнения они всегда будут совпадать.Если вместо этого вы запустите свою программу, сохраните значения хеш-функции в базе данных, находящейся в другой системе, вам будет удобнее, если ваша база данных не будет скомпрометирована, поскольку обе системы должны были бы быть приняты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...