Volga, семейство


Этот вариант самого распространенного загрузочного вируса "Stoned"

впервые обнаружен в Волгоградском государственном университете. Первая версия вируса из семейства "Volga" датирована июлем 1991, последняя - апрелем 1992. На диске вирус занимает один сектор, в памяти в зависимости от версии - 1 или 2Kb. Первоначальный загрузочный сектор дискет при заражении не сохраняется.

Как и стандартный "Stoned", этот вирус после загрузки с дискеты инсталлируется в верхние адреса оперативной памяти, после чего проверяет зараженность MBR винчестера. Если винчестер не был заражен - заражает его, причем сохраняемая копия MBR зашифровывается. Методы шифровки MBR в разных версиях различны. После заражения винчестера (или сразу после загрузки, если винчестер уже был заражен) вирус считывает зараженный MBR и передает управление ему.

В вирусах применен новый вид пакости на дисках, который при лечении вирусов в памяти делает невозможным дальнейшую работу с диском без дополнительного его исправления. Вирусы перехватывают прерывание INT 13h (обращение к диску) и следят за операциями чтения/записи.

Вирус использует тот факт, что команды стандартного и длинного чтения/записи имеют практически совпадающий формат. При записи сектора или секторов через обычную функцию (AH=03h) вирус записывает сектора по одному с помощью функции "запись длинных секторов" (AH=0Bh). Посекторная запись сделана потому, что для чтения нескольких секторов (число секторов чтения/записи указывается в регистре AL) потребовался бы соответствующих размеров буфер, равный числу байт в секторе, умноженному на число секторов. При чтении секторов с помощью обычной функции чтения (AH=02h) вирусы также меняют функцию на "чтение длинных секторов" (AH=0Ah), которая читает как сектора, записанные функцией AH=02h, так и записанные функцией AH=0Bh. В результате часть секторов диска (те, в которые произошла запись) оказываются в формате LONG, а остальные - в стандартном формате.

Содержание раздела