DotFix ::: Software protection portal
 *Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * *

DotFix Forum / Вопросы программирования и исследования защит / антивирус
Автор Сообщение
programmist
Участник


Дата: 22 Янв 2008 19:28


Скажите пожалуйста, можно ли с помощью средств visual basic создать антивирус?

SafetyRU
Участник


Дата: 23 Янв 2008 18:23


Вопрос довольно простой на первый взгляд, но в двух словах на него не ответить. Если коротко, то так: недо-антивирус - написать можно, а полноценный - нет.

programmist
Участник


Дата: 23 Янв 2008 18:30


[quote=SafetyRU]
Вопрос довольно простой на первый взгляд, но в двух словах на него не ответить. Если коротко, то так: недо-антивирус - написать можно, а полноценный - нет.
[/quote]
Мне хотябы и неполноценный, лиш бы был антивирус, который своими руками создал,
[quote=SafetyRU]
но в двух словах на него не ответить
[/quote]
если в двух словах не ответить может кто - нибудь ссылку даст? Заранее всем спасибо

SafetyRU
Участник


Дата: 24 Янв 2008 17:01


Для начала пару слов о себе: я являюсь программистом по специальности "компьютерная безопасность", так что этот вопрос напрямую относится ко мне.
Постараюсь наиболее полно ответить на Ваш вопрос.
Во-первых, интрумент написания. VB6.0 не способен обеспечить всех запросов, даже среднего, антивируса. Что должен делать антивирус? Работать в файлами, запущенными процессами и реестром - хотя бы это, а есть и много других наворов. Может ли VB хорошо работать с файлами? - нет, с тукстовыми - да, очень и очень хорошо, но вот с exe уже возникают трудности, да работает, но не так как хотелось бы. С процессами тоже не все ладно. Только пожалуй с реестром более-менее.
Итог - VB не подходит для написания хорошего антивируса (я еще ничего не говорил о быстродействии - сами понимаете).
Во-вторых, одному человеку написать хороший антивирус - почти нереально. Такие проги пишутся коллективом. Я знаю только один пример, когда в одиночку был написан антивирус - AVZ Олега Зайцева. Но и в этом случае не все ладно - AVZ был написан после чего Олег перешел в KasLab, как итог меньше времени стал уделять проге, и она стала морально устаревать, это ощущается уже сейчас. И Олег первоклассный вирусолог и программист. Да и AVZ написана не на VB.
Ссылки давать, на мой взгляд, бесполезно в данной теме - слишком все быстро это развивается: я не думаю, что DrWeb выложит технологию своих знаменитых плавающих сигнатур. Исходники 15-летней давности на Ассемблере всречал, но они мало что могут дать.
И наконец, хватит ли Ваших знаний для этого? Надо не только хорошо программировать, но и знать для этого все антивирусные и вирусные технологии...
А например, написал недо-антивируса на VB - Safety AntiVirus, которого еще на школьной скамье. Сейчас я собрал своих коллег для этой задачи, если Вы непрочь присоединиться - напишите мне, посмотрим что можно придумать в данной ситуации.

555
Участник


Дата: 25 Янв 2008 21:00


SafetyRU а ты знаеш где этот код скачать можно?

Admin
Администратор


Дата: 26 Янв 2008 15:37


Quoting: SafetyRU

Может ли VB хорошо работать с файлами? - нет


Юморист А как же по твоему я декомпиляторы и протекторы на VB пишу?

Единственный минус антивируса на бейсике - очень низкая скорость.

programmist
Участник


Дата: 27 Янв 2008 14:48


Все же почему то все затрудняются ответить на вопрос о создаии антивируса...

SafetyRU
Участник


Дата: 27 Янв 2008 15:49


Шутим, стараемся....
Тем не менее VB плохо работает с файлами, но я не спорю.
Исходники... Какие могут быть здесь исходники в принципе? Я ж говорил, ту прогу писал еще в 11 классе и то чисто на спор (в районной олимпиаде по информатике я с адептом другой школы делили в итоге 1 место, ну нас собрали и говорит мол "дополнительного тура не будет, так что напишите на VB по проге, у кого лучше, тот и победит" дали 2 дня, ну и написал что первое пришло в голову - прога в папке Windows искала скрипты и по эфристике искала скрипт-вирусы, это потом я её малость доделал... а принцип остался еще тот....)
Повторюсь опять здесь надо знать методы детектирования тварей - если сигнатуры, то какие - контрольные суммы, с плавающей запятой или обычные; эвристика - для каждого типа вируса своя; поведенческий анализ... Ну и знать как пишутся эти самые вирусы. Напомню, что написание, распространение и применение вирусов - ПРОТИВОЗАКОННО!
И конечно, свои уникальные идеи для нахождения вирусов.
Вот кусочек кода открывающего скрипты как текстовые файлы и проверяющего этот скрипт классической эвристикой (набор эвристики, конечно не весь):

Set R = fso.GetFile(BC7)
Set txt = R.OpenAsTextStream(ForReading)
R1 = txt.ReadAll
txt.Close
VBS = 0 'начальное значение счетчика
b = 0
X1 = Len(R1) ' определяем длину текстовой строки
For X = 1 To X1 ' обнаруживаем тварь!
If ((Mid(R1, X, 7) = "GetFile") Or (Mid(R1, X, 7) = "getfile") Or (Mid(R1, X, 7) = "GETFILE")) And (K0 = 0) Then
b = b + 1
K0 = K0 + 1
VBS = VBS + 0.5
End If
If ((Mid(R1, X, 7) = ".Delete") Or (Mid(R1, X, 7) = ".delete") Or (Mid(R1, X, 7) = ".DELETE")) And (K1 = 0) Then
b = b + 1
K1 = K1 + 1
VBS = VBS + 2
End If
If (Mid(R1, X, 12) = ".CreateItem(") And (K2 = 0) Then
b = b + 1
K2 = K2 + 1
End If

Т.е. мы ищем в скриптах потенциально опасные команды, т.е. те, которые чаще всего встречаютсяв в вирусах. Нашли - счетчик увеличили, после проверки файла сверяем показатели счетчика, если этот показатель превысил определенный порог (здесь надо учитывать и побочные показатели, например, размер), то это вирус.
Стоит отметить, что обычные скрипты он находит на "ура", с полной эвристикой скорость проверки - 10 файлов/cек, из 2500 проверенных файлов примерно 1 - ложное срабатывание, у AVIRA 7 ниже уровень детекта и больше ложных срабатываний при максимальной эвристике.
Не стоит придираться к правильности построения кода - писал его давно.
Но, как я уже говорил, есть масса методов, и только вместе они эффективны. Так же надо следить и за "прогрессом" вирусной индустрии, и за появлением новых зловредов, и новыми методами "прятанья" - те же новые версии упаковщиков. И самое, пожалуй, главное - где брать столько тварей? Допустим, у меня их только около 2000, а это мало! (Благо, когда стоял каспер, много нахватал - чего только не было!) Если у кого есть лишний вирус - шлите, буду очень рад ;), только пакуйте в архив, и пароль!


"Почему никто не отвечает" ... Потому что это не только хорошее знание программирования... И по-моему я Вам ответил...

programmist
Участник


Дата: 27 Янв 2008 16:00


Спасибо большое

Admin
Администратор


Дата: 2 Фев 2008 17:51 * Поправил: Admin


SafetyRU

Както ты с файлами как в VBA работаешь Потому все и сложно у тебя. Чем не устраивает:

 
sFile=FreeFile 
Open "C:\Test.txt" for binary As #sFile 
sData = Input(LOF(#sFile),sFile) 
Close #sFile 



Все Все содержимое файла в переменной sData

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль