При старте вирус первым делом расшифровывает свое тело. Для расшифрования используется довольно простой алгоритм, основанный на команде самой распространенной в вирусных расшифровщиках команде XOR: на каждом шаге работы расшифровщика очередное слов вируса XORится с ключем, который, в свою очередь, изменяется при каждом очередном шаге.
Затем вирус устанавливает новые Disk Transfer Address и адрес INT 24h. Для начала вирус заражает файл, отмеченный в ENVIRONMENT строкой COMSPEC=. В большинстве случаев этим файлом является COMMAND.COM. Итак, COMMAND.COM поражен. После этого вирус ищет сначала EXE файлы текущего каталога, а затем и COM файлы и пытается внедриться в них. При поиске и поражении файлов вирус использует функции DOS FindFirst/Next ASCII (INT 21h, AH=4Eh/4Fh). Он ищет не более 8-ми файлов, из которых поражает не более 5. Итого, после успешной работы вируса, зараженными могут оказаться только первые 8 COM или EXE файлов в текущем каталоге и файл COMMAND.COM. Особенности
-----------
Вирус перехватывает INT 24h - Fatal Error Handler, но это не все, что он делает для того, чтобы избежать попыток заражения файлов на защищенном от записи диске: перед тем, как перейти к заражению файлов, вирус пытается создать, а затем уничтожить временный файл в каталоге, в котором лежит заражаемый файл. Если при создании файла произошла ошибка - вирус считает, что диск не доступен для записи и не пытается записываться в файлы этого диска.
Вирус также запоминает и восстанавливает атрибуты заражаемого файла. Для хорошего тона осталось только запомнить и восстановить время и дату последней модификации файла - что и проделывается вирусом, за исключением того, что значение секунд в дате файла устанавливается в 22. При поиске файлов вирус проверяет это значение и не заражает такие файлы. Итак, если значение секунд в дате файла - 22, то файл может быть заражен вирусом Todor. Однако команда DIR из DOS не показала мне секунд, не сделали этого и другие имеющиеся у меня утилиты... Только Windows File Manager честно высветил: