Энциклопедия компьютерных вирусов

         

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, а остальные - в стандартном формате.
То есть карта секторов винчестера выглядит как черно-белая шахматная доска: один или несколько стандартных секторов, затем один или несколько 'длинных', затем опять несколько стандартных и так далее.

В зараженной системе диски читаются как обычно, но после удаления вируса из памяти или после удаления вируса из MBR и загрузке с чистого диска начинает твориться невесть что: все пораженные сектора перестают читаться средствами DOS. Диск становится недоступным после удаления вируса! Перестают читаться все сектора диска, которые были перезаписаны под активным вирусом. Первые 63 сектора диска вирус не портит. В большинстве случаев эти сектора занимает таблица размещения файлов (FAT) - но FAT без файлов (файлы записаны long'ом) все равно, что компьютер без процессора.

Для исправления таких секторов требуется специальная программа, которая должна читать подряд все сектора на диске с помощью обычной функции чтения (INT 13h AH=02h), пока не найдется сбойный сектор. Сбойный сектор читается функцией "чтение длинных секторов" (INT 13h, AH=0Ah). Если чтение прошло успешно, записывается обратно через обычную функцию записи (INT 13h AH=02h). На исправление пораженного таким образом диска требуется значительное время: от нескольких минут до часа и более (в зависимости от объема диска и его времени доступа).


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