Міністерство Освіти і Науки України
Національний Технічний Університет
Лабораторна робота № 6
по курсу “Системне програмування”
на тему:
“Аналіз комп’ютерних вірусів”
Виконав:
студент групи КІТ-11А
Ткаченко С. М.
Мета роботи:
Проаналізувати роботу фрагменту вірусу. Виявити основні аспекти, що властиві вірусам.
Індивідуальне завдання:
Модуль taipan.exe. Фрагмент cs:0250 0287
Лістінг фрагменту віруса:
-u cs:0250 0287
10B8:0250 B80242 MOV AX,4202
; (AX) = 4202
; Функция DOS 42h - установить указатель файла
; Подфункция 02h - установить указатель в конец файла + (CX):(DX)
; (BX) - file handle
; В (DX):(AX) возвращается новая позиция указателя
; ( в нашем случае (DX):(AX) - размер файла )
10B8:0253 33C9 XOR CX,CX
; (CX) = 0
10B8:0255 33D2 XOR DX,DX
; (DX) = 0
10B8:0257 CD21 INT 21
; вызываем функцию DOS 42h
10B8:0259 3D41FD CMP AX,FD41
; сравнить (AX) и число FD41h
10B8:025C 7719 JA 0277
; если (AX) > FD41h, то (IP) = 0277
10B8:025E 0BD2 OR DX,DX
; (DX) = (DX) or (DX)
10B8:0260 7515 JNZ 0277
; если (DX) <> 0, то (IP) = 0277
; т.е. если размер файла > FD41h, тогда файл закрывается и
; вирус в него не записывается
10B8:0262 50 PUSH AX
; (SP) = (SP) – 2
; (SS):[SP] = (AX)
10B8:0263 8B16BE01 MOV DX,[01BE]
; (DX) = (DS):[01BE]
10B8:0267 B104 MOV CL,04
; (CL) = 04
10B8:0269 D3E2 SHL DX,CL
; сдвиг (DX) на 4 бита влево
10B8:026B 2BC2 SUB AX,DX
; (AX) = (AX) – (DX)
10B8:026D 2DB601 SUB AX,01B6
; (AX) = (AX) – 01B6h
10B8:0270 3B06CA01 CMP AX,[01CA]
; сравнить (AX) и содержимое ячейки (DS):[01CA]
10B8:0274 58 POP AX
; (AX) = (SS):[SP]
; (SP) = (SP) + 2
10B8:0275 7502 JNZ 0279
; если (AX) <> (DS):[01CA], то (IP) = 0279
; возможно, вирус проверяет, заражен файл или нет.
; если файл заражен, он закрывается; если нет – выполняются
; определенные действия
10B8:0277 EB6F JMP 02E8
; (IP) = 02E8
; переход на закрытие файла и выход
10B8:0279 52 PUSH DX
; (SP) = (SP) – 2
; (SS):[SP] = (DX)
10B8:027A 50 PUSH AX
; (SP) = (SP) – 2
; (SS):[SP] = (AX)
10B8:027B B80057 MOV AX,5700
; (AX) = 5700
; функция DOS 57h, подфункция 00 – получение даты и времени последней
; модификации открытого файла
10B8:027E CD21 INT 21
; вызываем функцию DOS 57h
10B8:0280 890EAB00 MOV [00AB],CX
; (DS):[00AB] = (CX) = время последней модификации файла
10B8:0284 8916AD00 MOV [00AD],DX
; (DS):[00AD] = (DX) = дата последней модификации файла
Висновки:
Поданий фрагмент вірусу виконує такі дії:
- аналізує розмір відкритого файлу, щоб перевірити, чи є місце для запису вірусу у файл;
- аналізує, заражений файл цим вірусом, чи ні. Якщо файл вже заражений або його розмір надто великий, файл закривається;
- отримує час та дату останньої модифікації файлу. Після зараження файлу отримані час та дата записуються назад на свої місця, щоб по цим даним було неможливо виявити факт зараження вірусом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.