"Игорь Коваль. Как написать вирус" - читать интересную книгу автора ;Расчитаем сме-
;щение для пере- ;хода на код ви- ;руса ... sub ax,3 ;Сама команда ;перехода зани- ;мает три байта! mov byte ptr new_bytes[1],al ;Смещение найде- mov byte ptr new_bytes[2],ah ;но ! mov ax,di ;Сколько пара- mov cl,4 ;графов содержит shr ax,cl ;заражаемая про- ;грамма ? dec ax ;Учитываем дейс- ;твие директивы ;ORG 110h ... mov byte ptr add_to_ds,al ;Корректирующее mov byte ptr add_to_ds+1,ah ;число найдено ! Вы уже, конечно, поняли,что вирус будет округлять размер заражаемой программы до целого числа параг- длину 401 байт .Тогда вирус запишет в DI значение 416 ( 25 целых параграфов, и еще один байт даст округленное значение 416 ).В " new_bytes " запише- тся число : 416 - 3 = 413, а в " add_to_ds " будет помещено значение : 26 - 1 = 25 . Чтобы лучше понять работу фрагмента,рекомендую вам посмотреть пункт 1.6 . И еще - подумайте, за- чем нужна команда " dec ax " .Надеюсь,вы без труда в этом разберетесь ! 1.12 Проверяем файл на зараженность Мы, кажется, слишком увлеклись работой и не заме- тили одной очень важной детали.Ведь может случить- ся, что найденный нами файл уже заражен предлагае- мым вирусом, а мы об этом даже не догадываемся ! Поэтому наш вирус заразит эту программу еще раз .В принципе,количество заражений ничем не ограничено. Программа будет расти, пока не достигнет размера более 65535 байт, а после этого перестанет рабо- тать.Чтобы такого не произошло, введем проверку на зараженность .Например, в конец каждого заражаемо- го файла будем записывать цифру " 7 ", а при за- |
|
|