Jackson Mackson Ответов: 2

Антивирус, Сканирование Файлов C#


Я пытаюсь изучить некоторые основы создания антивирусов. Я знаю, что для этого нужно много времени и опыта, но как новичок я пришел к этой идее и этому вопросу:

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

Теперь я могу сканировать папку и снова читать все файлы в шестнадцатеричном формате, так что если содержимое одного файла совпадает с одним из моих сохраненных шестнадцатеричных кодов, то я могу сказать, что это вирус.

Теперь я хотел бы знать, действительно ли я могу судить о таком файле, и если да, то как я могу действительно читать много файлов в шестнадцатеричном формате и делать сравнения таким образом, чтобы это не занимало много времени ?

CHill60

На самом деле я не могу комментировать с каким-либо авторитетом, но вы также можете посмотреть здесь http://www.codeproject.com/Questions/295195/building-anti-virus-software-with-Csharp
а здесь (упоминает сканирование файлов) http://www.codeproject.com/Questions/190853/How-to-create-an-antivirus-in-C

2 Ответов

Рейтинг:
19

Richard MacCutchan

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


Pete O'Hanlon

Мой 5.

Richard MacCutchan

Спасибо.

Рейтинг:
10

Pete O'Hanlon

Короткий ответ заключается в том, что вы не можете проверить такие файлы. Фактически, ваше описание просто говорит вам, что файл идентичен другому - но это слишком упрощенный тест. Вирус обычно представляет собой шаблон, а не целый файл, поэтому он может попытаться заразить любой exe-файл (например). Это, конечно, означает, что вы найдете только один exe-файл с этой техникой.