резидентни вируси

С термина "пребиваване" (DOS термин TSR на - Прекратяване и постоянен престой) се отнася за вируси способността да пише своето копие в системната памет, улови някои събития (като например достъп до файлове или дискове) и да предизвика инфекция, когато тя открива процедура обекти (файлове и сектори). По този начин, памет резидентни вируси са активни не само когато заразеното програма, но след завършване на програмата нейната работа. Местните копия от тези вируси остават жизнеспособни до следващото рестартиране, дори и ако всички заразени файлове унищожени на диска. Често срещу тези вируси не може да бъде отстранен чрез намаляване vsek файлове от разпределителните дискове или резервни-екземпляра. Resident копие на вируса остава активен и заразява новосъздадени файлове. Същото се отнася и за зареждане на вируси - форматирането на диска, в присъствието на вируса жител на паметта не винаги води до излекуване на диска, тъй като много памет-членка вирус заразява диска отново, след като той е форматиран.

Чуждестранните вируси, от друга страна, е доста активни за кратко време - само в момента на стартиране на заразена програма. За да се разпространи те търсят върху водещите чисти файлове и написани за тях. След като вирусът код трансфери контрол на програмата домакин, въздействието на вируса на операционната система се намалява до нула до следващото стартиране на някое от заразената програма. Поради това, файловете, много по-лесно да се отстранят заразените чуждестранни вирусите с диска и той не позволява на вируса да ги заразят отново.

ДОС вируси

Когато заразени файлове и някои чуждестранни резидентни вируси търсят в устройството (и) тези файлове с помощта на DOS FindFirst функция и FindNext (INT 21h, AH = 11h, 12h, 4EH, 4Fh). Резидентни вируси използват по-широк списък от DOS функции, въз основа на която е даден файл заразен. В действителност, този списък съдържа всички функции, от стойностите на входните или изходни параметри, които можете да укажете името на файла, който е на лечение (такива параметри включват стойностите на съответните регистри или местата на паметта). Като резултат, "virusoopasnym" функция 21h прекъсвания са функцията (EXEC, AX = 4B00), зареден в паметта (AH = 4Bh), търсене (FindFirst и FindNext, AH = 11Н, 12Н, 4EH, 4Fh) създаване (Създаване, AH = 3Ch), отваряне (Open, AH = 3DH), затваряне (Close, AH = 3EH), да промените атрибута (ChMode, AH = 43h), преименувате (преименуване, AH = 56 h), както и някои други функции за управление на файлове.

Има няколко начина, за да се провери наличието на неговото местожителство вирус копие в паметта на компютъра. Първата е, че вирусът се въвежда нова функция на известни прекъсвания, ефектът от които е да се върне стойността на "Аз съм тук." В началото на вируса се отнася до него, и ако върнатата стойност съответства на стойността на "Аз съм тук", това означава паметта на компютъра ви вече е заразен и повторно заразяване не се извършва. При проверка на втория метод вируса пише стойността "аз съм тук", в който и да е рядко използвана площ памет - в вектор на прекъсване маса, или в зоната на BIOS на данни (0040: 00 ??). При следващото стартиране на заразена програма проверява за вируси тази стойност и не причиняват инфекция рутинни памет. Разбира се, съществуват и други начини, например, някои вируси просто сканира паметта на компютъра ви.

Някои жител файлови вируси (обикновено вируси с помощта на дизайнери тип VCL и PS-MPC) определят своите TSR-нагоре неправилно и се копира в паметта, когато се изпълнява на заразен файл. Естествено, в този случай, компютърът увисва или веднага, или след известно време престава да изпълнява поради липса на програмата памет на разположение.

зареждане вируси

В бъдеще, някои вируси се "чакат" зареди DOS и да се възстанови първоначалната стойност на системната памет - в резултат те не се намират извън DOS, както и отделен блок-DOS памет. Някои вируси обувка не използват и не се променят стойността на системната памет. Те се копира и да е част от паметта, до неизползвана багажника DOS, DOS обувка изчакване и след това инсталира свой собствен код в системата по всички възможни начини за DOS.

Тези вируси използват различни начини, за да се намеси в момента на DOS обувка. Повечето "populyatny" начин - да се провери стойност INT 21h на (DOS-прекъсват функции). Ако тази стойност се променя, вируси смятат, че инсталацията DOS е завършена. Проверка на стойност INT 21h разговор се провежда в INT 8, 1 Летописи (таймер прекъсване за този вирус, в допълнение към прекъсване дискове за обработка на пресечната също прекъсване на таймера) или INT 13h повикване. По-малко популярен метод - тестови данни прочетени от диска (необходим само прихващане INT 13Н на). Ако буфера за четене се състои от заглавна EXE файл вируси вярват, че DOS като завърши зареждането, тъй като паметта за изтегленото EXE файл.

С цел да се пресече разпространението на дисковете, повечето зареждане вируси кука INT 13h - главен прекъсване за работа с дискове. По-рядко се използва, за да прихване INT 40h - прекъсване на работа с дискети. Още по-рядко, различни екзотични начини да се намеси BIOS прекъсва и DOS, възникват при работа с дискети.

В случай на залавяне INT 13h / 40h вируси, третирани с четене / запис команди сектори (Ah = 2,3), проверете диска за замърсяване и рекорд в своята обувка сектор или MBR-кода му. По-рядко се хванат другите отбори - отборът Reset Disk (AH = 0) до командата "дълъг" четене / запис (AH = 0Ah, 0Bh).

Повечето от вируса на багажника не проверява системна памет за присъствието на неговия вече установен TSR действия - те или да използвате стелт техники и рестартиране на вируса не може да бъде код, или се ръководят от факта, че вирусът код се зарежда веднъж по време на DOS обувка - тогава код зареждащия сектор CD-та вече не се извършват при никакви обстоятелства. Част от проверката за вируси за вашето копие - той не използва специални разговори INT 13h и да е нестандартно стойност или да бъдат отбелязани всички известни неизползван байт (или дума) в вектор на прекъсване маса, или в зоната на BIOS на данни (0040: 00 ??) , Има, разбира се, и други начини за откриване на своята TSR-копие.

Windows-вируси

За да излезете от изпълним код в Windows памет, има три начина, трите метода (с изключение на Windows NT) е била използвана от различни вируси.

Най-лесният начин - да се регистрират в програмата като един от приложенията, които работят в момента. За тази цел програмата открие проблем, прозорецът може да бъде скрит регистрира манипулатор на системни събития и т.н. Вторият начин - да се разпределят блок от системната памет, използвайки DPMI повикване и да копирате кода си в нея (h33r вирус). Третият начин - да остане жител като VxD-шофьор (Wnidows 3.xx и Windows95), или като Windows NT драйвер.

искания за прихващане за файлове в един от двата начина - или прихванати разговори INT 21h (Hook_V86_Int_Chain, вземи / Set_V86_Int_Vector, вземи / Set_PM_Int_Vector), или система API повикване е заловено. След това Windows-резидентни вируси са толкова добре, колкото ДОС вируси: прихващащи опити за достъп до файлове и да ги заразят.

приблизително същите методи, както е описано по-горе, с изключение на откриване на VxD-вирус вече присъства в паметта се използват местни копия. Известни VxD-вирус заредени в паметта, когато Windows стартира. За да направите това, което пишат команда за стартиране в конфигурационния файл на Windows SYSTEM.INI. Ако файлът вече има екип тичам VxD-вирус файл, вирусът не прави пререгистрация на своята VxD-файл.

Макро вирусите

При инфекция, някои макро вируси проверява за техни копия на заразени обекти и отново без самите те да копирате. Други макро вируси не го правят и да пренапише кода си при всяко инфекция. Ако заразените файлове или в областта на системата за макроси, вече дефиниран макрос име е макро-вирус е макро се изтрива.

Stealth вируси чрез различни методи, за да скрие присъствието си в системата. Известни стелт вируси от всякакъв вид, с изключение на Windows-вируса - зареждане вируси, подават вирусите DOS и макро вируси, дори. Появата на стелт вирус заразява Windows файлове, най-вероятно е въпрос на време.

зареждане вируси

Stealth вируси, за да скриете своя код се използват два основни начина. Първият от тях е, че пресечните точки на вирусни команди, за да прочете заразен сектора (INT 13h) и го заменя оригинал, без инфектиране. Този метод позволява на вируса невидима за всички програми под ДОС, включително анти-вирус, не може да "лекува" паметта на компютъра. Възможна прихващане на сектори команди за четене на по-ниско ниво от 13Н INT.

Вторият метод е насочено срещу анти-вирус, поддържа директно сектор командата за четене чрез портове диск контролер. Такива вируси, когато започват всяка програма (включително анти-вирус), заразени възстановяване на сектора, и след края на работното си заразяват диска отново. Тъй като този вирус е необходимо да се намеси в началото и края на програмата, тя също трябва да се намеси DOS-прекъсване INT 21h.

файлови вируси

Bolshinctvo файлови стелт вируси използва същите техники, които са изброени по-горе: те са или DOS пресичане призовава за достъп до файлове (INT 21h) или временно лекува файла, когато го отворите и да заразява при затваряне. Както и за зареждане на вируси, съществуват файлови вируси, като се използват за своите стелт функции да прихване прекъсне по-ниско ниво - DOS драйвери разговори, INT 25 часа, а дори и INT 13h.

Пълна файл стелт вируси, използвайки първия метод, за да скриете своя код, повечето от тях са доста тромави, защото те трябва да се хвана на голям брой на ДОС функции да работи с файлове: отваряне / затваряне, четене / запис, търсене, тичам, преименувате, и т.н. както и необходимостта да се поддържа и двете версии на някои от предизвикателствата (FCB / ASCII), а след появата на Windows 95 / NT, че е необходимо да се поеме и трети вариант - функциите за работа с дълги имена на файлове.

Някои вируси използват част от функциите на пълна стелт вирус. Най-често те се намеси функция DOS FindFirst и FindNext (INT 21h, AH = 11h, 12h, 4EH, 4Fh) и "намаляване" на размера на заразени файлове. Такъв вирус не може да се определя от промяната на размера на файла, разбира се, ако той живее в паметта. Програми, които не използват тези DOS функции (например, "Norton Utilities"), и директно се използва съдържанието на секторите, които съхраняват директория, показват правилната дължина на заразени файлове.

Макро вирусите

Изпълнение на алгоритми, се прокрадват макро вирус е вероятно най-проста задача - просто достатъчно, за да забраните призовават файл / шаблони или Tools / Macro меню. Това се постига чрез премахване на елементите на менюто от списъка, или заместването им макроси FileTemplates и ToolsMacro.

Тя може да се нарече една малка група от макро вируси частично стелт вируси, които съхраняват вашия основен код не е в макроса, както и в други области на документа - в неговите променливи или Auto-текст.

За полиморфни вируси включват тези, които откриване е невъзможно (или много трудно) да се извърши с помощта на така наречените вирусни маските - области на постоянен код, специфични за конкретен вирус. Това се постига по два основни начина - основното вирус кода криптирана с не-ключов и декриптиране sluchanym инструкция за задаване или промяна на изпълним код на вируса. Има и други, по-скоро екзотични примери polimorfizva - DOS-вирус "бомбардировач", например, не е криптирана, но последователността от команди, която предава управлението на кода на вируса, е напълно полиморфна.

Полиморфизъм на различна степен на сложност, намерени в вируси от всякакъв вид - от DOS обувка и файлови вируси към вирусите на Windows, а дори и макро вируси.

полиморфни transcribers

Най-простият пример е частично полиморфна декриптиране е следващия набор от команди, в резултат на което нито един байт на вируса код и неговото разшифроване не е постоянен по време на инфекция на различни файлове:

По-сложните полиморфни вируси използват много по-сложни алгоритми за генериране на код своите decryptors: стъпките, описани по-горе (или техните еквиваленти) пренареждат от заразяване с инфекции, разреден нищо не се променя команди като NOP, STI, CLI STC, CLC Дек неизползван регистър , XCHG неизползвани регистри и т.н.

В резултат на това, в началото на файла, заразени с подобен вирус, има набор от безсмислени на пръв поглед, инструкции, както и някои комбинации, които са доста ефективни, които не са взети дизасемблер марка (например, комбинацията от CS: CS: или CS: NOP). И сред тази "каша" на команди и данни от време на време да се измъкне MOV, XOR, LOOP, JMP - инструкции, които всъщност са "работещи".

нива polimorfizva

Има разделение на полиморфни вируси на нива, в зависимост от сложността на кода, който се намира в разшифроването на тези вируси. Такова разделение беше предложена от д-р Алън Соломон, след известно време Веселин Бончев го разширява.

Ниво 1: вируси, които имат набор от фиксиран код Decryptor по време на инфекцията и да изберете един от тях. Такива вируси са "полу-полиморфни" и са известни като "oligomorfik" (oligomorphic). Примери: "Cheeba", "Словакия", "Кит".

Ниво 2: Decryptor вирус се състои от една или повече постоянни инструкции, основната част е променлива.

Ниво 3: Decryptor съдържа неизползвани инструкции - "боклуци" като NOP, CLI STI, и т.н.

Ниво 4: Decryptor използва сменяеми инструкции и промяна поръчка (разбъркано) инструкции. Алгоритъмът за разшифроване не се променя.

Ниво 5: Използването на всички по-горе методи, разшифроването на алгоритъм нестабилен, може отново да криптирате вирусния код и дори частично шифроването на кода за декриптиране.

Ниво 6: permutating-вируси. Промяната е предмет на главното вирус код - тя е разделена на блокове, които, когато са заразени пренаредени в произволен ред. Вирусът обаче продължава да функционира. Тези вируси могат да бъдат не кодирани.

Горната разделението не е свободна от недостатъци, тъй като носи на един единствен критерий - възможността за откриване на вируса на код декриптиране с помощта на стандартен приемане вирусни маските:

Липсата на такова разделяне се демонстрира в полиморфната ниво вирус 3, който се нарича - "Ниво 3". Този вирус, който е един от най-сложните полиморфни вируси, според по-горните дивизии попада в Ниво 3, тъй като има постоянна алгоритъм rasshafrovki предшествано от голям брой komand- "боклук". Въпреки това, алгоритъма на вируса за генериране на "боклука" доведени до съвършенство: кода за разшифроването могат да се срещнат почти всички инструкции i8086 процесор.

Ако направим разделение между нивата от гледна точка на анти-вирус, като се използва системата за автоматично разшифроването на вируса код (емулатори), разделението в нива, ще зависи от сложността на емулация на вирусния код. Възможност за откриване на вируси и други методи, например, с помощта на декодиране на елементарни математически закони и т.н.

Затова ми се струва по-обективен дивизия, която включва други параметри освен критерия за вирус маска.

  1. Степен на трудност полиморфна код (процента от всички инструкции процесори, които могат да се срещнат в кода за разшифроването)
  2. Използването на анти-емулатор трикове
  3. Постоянството на алгоритъма за разшифроване
  4. Постоянството дължина декриптиране

Не бихме искали да представим тези точки в повече подробности, тъй като в резултат на това уникално насърчи авторите на вируси, за да се създаде един вид чудовища.

Промяна на изпълнимия код

Най-често използваният този начин на полиморфизъм макро вируси, които при създаването на новите си копия на произволно промяна на имената на своите променливи, поставете празни редове или промяна на кода си по друг начин. По този начин, на алгоритъма на работа на вируса остава непроменен, но вирусът код е почти напълно променен от инфекция до инфекция.

По-рядко, този метод използва усъвършенствана вирус. Тези вируси инфектират сектора за начално зареждане в достатъчно кратък процедура, която чете диска и основната вирус код и трансфери контрол към него. Код за тази процедура е избран от редица различни варианти (което също може да се разрежда с "празни" команди), команди се дейонизирана помежду си и т.н.

Още по-рядко, тази техника се намира в файлови вируси - защото те трябва да се промени напълно кода си, а това изисква доста сложни алгоритми. В днешно време има само два такива вируси, една от които ( "Слой") на случаен принцип се движат отбора си през тялото си и да ги замества с JMP или се обадете на инструкцията. Друг вирус ( "TMC") използва по-сложен начин - всеки път, когато вирусната инфекция обръща блоковете на кода и данните, вмъква "боклуци" в своите инструкции монтажен ustanavlyavaet нови стойности за съответните компенсации, променете константи и т.н. В резултат на това, въпреки че на вируса и не криптира кода си, това е полиморфен вирус - няма последователен набор от команди в кода. Нещо повече, със създаването на новите си копия на вируса се променя дължината му.