Игор Гулев
Едва ли има нужда да кажа, че компютрите са станали недвижими помощници човек и без тях не може да направи всяко търговско дружество или правителствена агенция. Въпреки това, в тази връзка, особено остър проблем на сигурността на информацията.
Вирусите са широко използвани в компютърните технологии, разбърква целия свят. Много компютърни потребители са загрижени за слуховете, че с помощта на компютърен вирус нападатели пробие в мрежата, ограбват банки, крадат интелектуалната собственост ...
Все повече и по-често в медиите има доклади за различните видове пират лудории компютърни хулигани, появата на все по-сложни самовъзпроизвеждащи се програми. Съвсем наскоро заразен текстови файлове вирус се счита за абсурдно - днес това не е изненада. Достатъчно е да се припомни, появата на "първата лястовичка", който предизвика много шум - вирус WinWord.Concept и стреля документи във формат на текстообработваща програма Microsoft Word за Windows 6.0 и 7.0.
Само искам да отбележа, че твърде много, за да се страхуват от вируси, не е необходимо, особено ако на компютъра, закупени наскоро и много информация на твърдия диск все още не е натрупани. Virus компютър не се взривят. Сега е известно, само един вирус (Win95.CIH), която е в състояние да развали "хардуера" на компютъра. Други могат да унищожат само информация, нищо повече.
Литературата е много силно се застъпва, че да се отърве от вируса е възможно само с помощта на сложни (и скъпи) анти-вирусни програми, и се предполага, че само при тяхната защита, можете да се чувстват сигурни. Това не е съвсем вярно - запознаване с особеностите на структурата и начина на въвеждане на компютърни вируси навреме, за да им помогне да открива и локализира дори ако не са на една ръка разстояние, ще бъде най-добрата антивирусна програма.
Компютърните вируси могат да "гнездо" в най-неочаквани места, като MBR зареждане запис (сектор за начално зареждане) на, по-изпълними файлове като COM и EXE, DLL файлове в споделената библиотека, а дори и в документите на текстообработваща програма Microsoft Word за Windows. Този раздел описва структурата на вируса, засягащи COM-файлове.
Структурата и процеса на зареждане на COM-програма
Какво е COM-програма, тъй като е зареден в паметта и избяга?
Структурата на COM-програмата е много проста - тя съдържа само кода и данните на програмата, без дори заглавие. COM-резолюция ограничени от размера на една програма сегмент (64 KB).
И двете концепции, които ще бъдат често срещаните:
Програма Segment Prefix (PSP) - площ 256 памет (0100h) байта, предхождащи програма, когато е зареден. PSP съдържа информация за команден ред и свързаните с програмата променливи.
COM зареждане програми в паметта и да започне да се осъществява, както следва:
2. Създава и изпълва блок от памет за променливи на средата.
3. Създаване на блок от памет за PSP и програмата (сегмент 0000 - PSP; сегмент: 0100 - програма). Полето PSP съответстващ записаните стойности.
6. Стойността на AX регистъра се определя в съответствие с параметрите на командния ред.
7. DS регистрите, ES и SS са разположени на сегмента и програми (PSP: 0000h) PSP.
8. В регистъра на SP е разположен в края на сегмента, след което стека е писано 0000h.
COM-програма винаги се състои от един сегмент и започва от 0100h офсет.
След изтеглянето на заразен файл, вирусът поема контрола. Когато приключите, вирусът възстановява първоначалната JMP и предава управлението на програмата, както е показано на фиг. 1.2.
Това, което прави въпросния вирус? След старта търсеше в текущата директория COM-програмата. За тази цел 4EH функция (открие първия файл):
; Търсим първия модел име на файла
Mov DX, офсетов fname - офсет себе си
Вирусът след това проверява (в първия байт на файла), ако намери подход COM-програма:
; Напишете първите три байта на файла (прехода към тялото на вируса)
Mov DX, офсетов себе jmpvir-офсет
След като вирусът е завършена работата си, той възстановява в първоначалното му състояние, първите три байта на програмата (в памет), и предава управлението в началото на програмата. Освен това, когато заразеният файл, вирусът получава контрол на първо място, а след това - програма източник. Благодарение на тази схема на отчитане на вируса може лесно да съществува, след като е веднъж освободени в дивата природа.
Това води до LEO.COM файл, съдържащ готови COM-вирус. За да тествате вируса, можете да създадете отделна директория и да копирате в нея файла, както и няколко други на COM-файлове. След като се започне LEO.COM вирус се въвежда в всички други COM-файлове. Не се страхувайте, че са заразени от компютърна всички наведнъж - вирусът се разпространява само в текущата директория. По-долу е на изходния код на вируса:
286; Комплект тип процесор
CheckByte тех 0F0h
; Посочва, че в регистрите съдържат CS и DS
Предполагам, CS: код, DS: код
; Код сегмент започва. В края на програмен код сегмент трябва да
; Close - "код завършва"
; Задайте пристрастия в код сегмент.
; Е задължително Това линия
; За COM-програма (всички COM-програма
; Симулиране на COM-заразен файл.
, Тялото на вируса започва с етикет ла
db 0E9h; JMP команда код
DW компенсира ла компенсират реално
Методи за въвеждане на COM-вируса
Смятан вирусът добавя към края на файла, а в началото на файла е влязъл самия преход. Има и други начини за въвеждане на вируси.
Помислете два варианта за въвеждането на COM-вируса в началото на файла. Първият вариант. Вирусът презаписва началото на програмата до края на файла, за да направи място за себе си. След вирус тяло се записва в началото на файла, а една малка част, предоставящ транспорт репресирани програма фрагмент на негово място - в края. Когато възстановяване на първоначалния вид на тялото програма на вируса, ще бъдат изтрити, така че вирусът код, възстановяване на програмата трябва да бъде на сигурно място, отделно от основното тяло на вируса. Този метод на изпълнение е показана на фиг. 1.3.
Второто изпълнение се различава от първите в това, че вирусът, освобождавайки място за себе си, се движи цялото тяло на програмата, и не се прехвърли част от файла. Този метод на изпълнение е показана на фиг. 1.5.
Има разновидности на вируси, които не са част от тялото му се добавя в края на файла. Например, вирусът може да бъде въведен в средата на файла. В този случай, алгоритъмът на вируса е смес от алгоритми една от двете наскоро описан вируса и вирусът е описано в раздела "прост COM-вирус".
COM-файлове (малки програми, написани предимно на Асемблер език) е бавно, но сигурно не е актуално. Те са заменени с техните плашещи размери EXE- «чудовища». Имаше и вируси, могат да заразят EXE файлове.
Структурата и процеса на сваляне EXE-програма
За разлика от COM-програми, EXE-програма може да се състои от няколко сегмента (код, данни, стек). Те може да отнеме повече 64Kbayt.
В началото EXE-програма система товарач (извикване на функция DOS 4Bh) извършва следните стъпки:
2. Създава и изпълва блок от памет за променливи на средата.
3. Създаване на блок памет за програма и PSP (сегмент: 0000h - PSP; сегмент + 0010h: 0000h - програма). Полето PSP съответстващ записаните стойности.
5. В работно товарач чете форматиран заглавна част ЕХЕ-файл.
6. Изчисли дължина на модула за зареждане с формула: Размер = ((PageCnt * 512) - (HdrSize * 16)) - PartPag.
7. Определяне на изместване на файла за натоварване модул, равен HdrSize * 16.
10. За всеки настройки вход таблица:
а) Прочетете Словото и I_OFF I_SEG;
б) изчислено RELO_SEG = START_SEG + I_SEG;
11. памет за програмата в съответствие с MaxMem и MinMem.
12 инициализира регистъра, програмата се изпълнява:
б) AX = резултат потвърждаване на самоличността на водача, посочен от командния ред;
в) SS = START_SEG + ReloSS, SP = ExeSP;
г) CS = START_SEG + ReloCS, IP = ExeIP.
EXE-вируси могат да бъдат разделени на групи, като се използва като функция да се разделят специално алгоритъм.
Вирусите замяна код (презапише)
Тези вируси са станали рядкост. Основният им недостатък - прекалено груба работа. Заразените програми не се изпълняват, тъй като вирусът се презаписва кода на програмата, без да го запазите. При стартиране, вирусът търси следващата жертва (или жертва), се отваря файл установено, редактирате и пише тялото му до началото на програмата, без да запазвате оригиналния код. Заразени с тези вируси не са обект на програма за лечение.
Тези вируси получили името си заради алгоритъма за умножение: за всеки заразен файл, файл-сателит. Нека разгледаме по-подробно два вида вируси от тази група:
Вирусите размножава първи тип следва. За всеки от заразяване EXE файл в същата директория можете да създадете файл с кода на вируса, като със същото име като и EXE файлове, но с разширение COM. Вирусът се активира, когато стартирате програмата от командния ред само името на изпълнимия файл. Факт е, че ако не укажете разширението на файла, за DOS първо търси файл в текущата директория с посоченото име и разширение COM. Ако не бъде намерен на COM-файл с това име, търсенето се провежда EXE файл със същото име. Ако не е намерен и EXE файлове, DOS ще се опита да намери BAT (партида) файл. При липса в текущата директория на изпълнимия файл с определения търсенето име се провежда във всички налични на променливата от каталозите. С други думи, когато потребителят иска да стартирате програмата и да спечели само името си (в общи линии всичко това) от командния ред, първият вирус получава контрол, кодът на който е в на COM-файлове. Той създава COM-файл обратно към един или повече EXE файл (версия за мазане), и след това изпълними EXE файлове с посоченото име от командния ред. Потребителят също така смята, че тя е само тичане EXE-програма. Virus сателитна неутрализира съвсем просто - достатъчно, за да се отстрани COM-файла.
Вирусите от втория вид са по-фино. Име заразяване EXE файл остава същата, както и разширението се заменя с друг, различен от изпълнимия файл (COM, EXE и BAT). Например, файлът може да получи разширение DAT (файл с данни), или OVL (наслагване на софтуер). След това на мястото на EXE файл се копира кодът на вируса. Когато стартирате програмата, заразени с вируса на код получава контрол, който се намира в на EXE файлове. Заразяване на една или повече от EXE файлове по същия начин, а вирусните се връща към първоначалното разширението на изпълним файл (но не и EXE, МС и като EXE файл със същото име, заемана от вирус), а след това да го изпълнява. Когато заразено програма работи са приключили, той се връща в изпълним файл не е изпълним разширение. Лечение на файлове заразени с този вид вирус, може да е трудно, ако сателитните вируса на криптира част или цялото тяло се превръща заразен файл, но преди екзекуцията той да се възстанови.
Вирусите се въвеждат в програмата (паразитни)
Вирусите от този тип от най-незабележим: техният код е написан на заразяване с една програма, която усложнява лечението на заразените файлове. Методите на изпълнение на EXE-вируси в EXE-файл.
Начини на заразяване на EXE файлове
Следващият начин - въвеждането на вируса в началото на файла с кода за смяна. Механизмът на заразяване е: тялото заразяване програма се чете в памет на негово място се записва вирусен код, а след това - кода на програмата от заразяване. По този начин, на програмния код, тъй като "се движи" във файла от дължината на вирусния код. Оттам идва и името на метода - ". Начин да измести" Когато стартирате заразен файл, вирусът заразява един или повече файлове. След това той чете в програмата паметта на кода, ще го напиша в специално създаден временен файл с разширение на изпълнимия файл (COM или EXE) на диск, след което изпълни файла. Когато програмата приключи, временен файл се изтрива. Ако създадете вирус не се отнася за допълнителни техники за защита, за да се излекува заразените файлове е много лесно - просто премахнете вируса на код в началото на файла и програмата ще започне да функционира отново. Недостатък на този метод е, че трябва да се чете в памет целия код заразяване с програмата (и в действителност има случаи, по-големи от 1Mbayt).
Следващият начин за заразяване на файлове - метод на предаване - изглежда да е най-съвършеният от всички по-горе. Вирусът се размножава по следния начин: когато заразено програма се стартира вирус тяло от тях, се чете в памет. След това се търси неинфектирани програма. Паметта се чете неговото начало, дължината, равна на тялото на вируса. Това място се записва на тялото на вируса. Стартирайте програмата от паметта, приложена към преписката. Оттам идва и името на метода - "метод на предаване". След като вирусът е заразил един или повече файлове, той пристъпва към изпълнението на програмата, от която е започнало. За да направите това, се чете в началото на заразеното програма, съхранена в края на файла и го пише в началото на файла, възстановяване на работата на програмата. След това вирусът изтрива началото на програмния код от края на файла, възстановяване на първоначалния дължината на файла, и изпълнява програмата. След приключване на програмата на вируса отново записва своя код в началото на файла, както и оригиналния началото на програмата - в края на краищата. Този метод може да бъде заразен дори антивирусен софтуер, който проверява кода си цялост, тъй като вирусът е задействало програмата е точно същия код, както и преди инфекция.
Вирусите замяна код (презапише)
Както вече бе споменато, този тип вирус отдавна е мъртъв. Понякога се случват повече такива вируси, създадени в Assembler език, а по-скоро, това е състезание в писмена форма най-малката презаписване-вируса. В момента най-малките познати вируси презапишете написани ReminderW (група Death създават вируси Crew) и отнема 22 байта.
Алгоритъмът на презаписване-вируса следното:
1. Отворете файла, от който вирусът получава контрол.
2. Прочетете в буфера на вирусния код.
4. Намерете маска, подходяща за заразени файлове.
5. Ако вече не е намерен файла, преминете към стъпка 11.
6. Отворете намери файла.
7. Проверете дали заразен файл намерен с вируса.
8. Ако файлът е заразен, преминете към стъпка 10.
9. Запазете файла в началото на вирусния код.
10. Затворете (при желание могат да бъдат заразени от една до всички файлове в директория или на диск) файл.
11. Издаване на екрана съобщение за грешка, например «аварийно прекъсване програма" или "Няма достатъчно памет», - дори ако потребителят не е много изненадан, че програмата не стартира.
12. Приключване на програмата.
По-долу е списък програма, която заразява файлове по този начин.
Вируси сателити сега широко разпространена - съотношението на домашни вируси и паразитни приблизително една до две.
Инфекция чрез създаване на сателитна COM-файла
Смисълът на този метод - без да докосва "чужденец котка» (EXE-програмата), създаване на "им» - COM-файл с име EXE-програма. Алгоритъмът работи този вирус е изключително лесно, тъй като няма нужда от допълнителни действия (например, освен в дължината на вируса на тялото на компилиран EXE-файл с вирусен код четец в тялото на буфера на вирус, стартирате файла, от който вирусът е управление). Не е необходимо да се запази дори и на етикета да се определи инфекцията на файла.
Инфекцията се извършва с помощта на обвивка:
1. Ако са определени параметрите на командния ред, да ги запишете на една променлива String за предаване на заразената програма.
2. Намерете EXE файл-жертва.
3. Проверете дали там не е в указателя намери EXE файл, на COM-файл със същото име като съответния файл.
4. Ако COM-файл е налице, файлът е вече заразен, преминете към стъпка 6.
5. Използване на корпуса, за да копирате файла, от който да поеме контрола, файл с името на жертвата и разширение COM.
6. Процедура Exec да свали и стартира файл с име начало, но с разширение EXE - т.е. тече заразена програма.
7. Върнете контрола на DOS.
Следващият списък показва инфекция на файла по този метод.