Структура на COM и EXE файлове

COM файлова структура

Вероятно всеки знае файлове с разширениеCOM. ОсновниятCOM файл наPC е вездесъщиятcommand.com (комаден файлDOS ) . Какво еCOM файл, как работи и се изпълнява? Структурата на файлаCOM е проста. Файлове от този тип, които обикновено нямат дори заглавка, съдържат само машинен код и програмни данни. РазмерCOM - файлът е ограничен до 64 kb, т.е. размера на един сегмент от паметта

ПовечетоCOM файлове са написани на асемблер, но това не е задължително. Можете да напишете файл на всеки език, който след това да компилирате.

Пример за малъкCOM файл, който показва съобщение:

.286 ; Задайте тип процесорmov ah,09h ;DOS функция (прекъсване 21h) 09hmov dx,offset message ; Въведете в dx стойността на променливата messageint 21h ; Задайте прекъсването, което трябва да обработи функцията 09h

mov ah,4Ch ;DOS функция (прекъсване 21h) 4Chint 21h ;Задайте прекъсването, което трябва да обработва функцията 00h

message db "Моите първи COM програми",13,10,"$" ;Дайте стойност на променливата на съобщението

Използвайки определението за прекъсване, можете да кажете как работи тази програма.

mov ah,09h int 21h

В първия ред стойността09, се въвежда в регистъраah, къдетоh означава, че това число е шестнадесетично, вторият ред показва прекъсването, в този случай е21, (h е същото като в първия ред), т.е. прекъсванеDOS. След като получи такава команда, процесорът спира да изпълнява текущи операции за известно време и прехвърля управлението на програмата, разположена в RAM, на манипулатора на функции09h.След извършване на всички тези операции, процесорът се връща към изпълнението на извършената преди това операция.

По-долу има два варианта наCOM код - файл преди и след "заразяване" с вирус:

jmpcoob ; Тялото на програмата започва с етикетаcoob

mov ah,4Ch int 21h

съобщение db "Файлът не е заразен",13,10,"$" ; Низ с текст за показване

mov ah,4Ch ;Изход от програматаint 21h ; Прекъсване 21ч

завършва кода ; Край на сегмента на програмния код

jmpvirus ; JMP се промени, така че вирусът да получи контрол

mov ah,4Ch int 21h coob:mov ah,09hmov dx,offset messageint 21hсъобщение db "Файлът не е заразен",13,10,"$" ; Низ с текст за показване на екранаmov ah,4Chint 21h

вирус:

mov . .> Вирусът се размножава и върши своята разрушителна работа. int 21h

jmpcoob

завършва кода ; Край на сегмента на програмния код

По-долу е структурата на заразения файл

Опашката на COM програмата

Тяло на вируса

Оригинално стартиране на COM програма

EXE файлова структура

Примерна файлова структураEXE :

Тяло на програмата

Край на програмата

EXE файл заглавка - съдържа данните, необходими за зареждане на програматаТяло на програмата - основната част на програмата, която изпълнява някои полезни действияКрай на програмата - последната част на програмата, която записва необходимите и изтрива ненужните данни отRAM, затваря всички файлове, отворени от тази програма и т.н.

Първата и последната част на програмата са необходими за всичкиEXE файлове, докато втората част изобщо не е необходима. Можете просто да го вземете и да го пропуснете.

Няма да посочвам типовете "заразен" и "незаразен"EXE файл, т.к. За разлика отCOM вирусите,EXE вирусите имат различни начини за заразяване. Ще ви разкажа подробно за всеки от тях в следващите бюлетини, а сега ще изброя само имената на основните:

OVERWRITE - вируси, заместващи програмния код

COMPANION - сателитни вируси

ПАРАЗИТНИ - вируси, които проникват в програмата

метод за преименуване наEXE файл

изпълнение на трансфера

срязващо инжектиране

EXE заглавка
?Как да компилирате програма, написана на асемблер, в COM файл За да компилирате, трябва да имате подходящия софтуер на вашия компютър. За да направите това, е достатъчен набор от програмиTurbo Assembler. Този набор съдържа файловетеtasm.exe иtlink.exe, необходими за компилиране вCOM. Програмата за асемблер, която сте написали, трябва да бъде съхранена в обикновен текстов файл, след което: - копирайте файла си в директорията с файловетеtasm иtlink - напишете командатаtasm.exe leo.asm (leo.asm е името на файла с вашата програма) ако всичко е минало добре, тогава ще има още файлове със същото име, но с разширениеobj , ако не, тогава на екрана ще се появят съобщения, указващи вида на грешката и номера на реда с грешката. -tlink leo.obj/t - И сега вашиятCOM файл е готов, можете да го стартирате. Но внимавайте да не попаднете в капана, който сте поставили.

Стандартен вирус

Чудя се кой е създал първия вирус?

ОтС появата на компютърните технологии програмистите и инженерите по електроника се интересуват от една тема: самопроизвеждащи се и саморазпространяващи се механизми. Първият, който се опита да реализира тази идея през 1951 г., беше Й. фон Нойман. Но на Нойман дори не му хрумна да използва тези материали за някакви разрушителни цели, а други хора, използвайки неговите материали и знания в тази област, започнаха да създават различни злонамерени програми - компютърни вируси. Но какво е накарало тези хора да го направят. Учените смятат, че хората са мотивирани да създават компютърни вируси от няколко фактора:

- пакост и в същото време неразбиране на всички последици от разпространението на вируса - желанието да навредиш на някого - неестествена нужда от извършване на престъпления - желанието да се самоутвърдиш - невъзможно е да използваш знанията си в правилната посока

Подобно на биологичните вируси, компютърните вируси имат определени етапи на "развитие":

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

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

ФАЙЛ

Вирусите могат да заразят следните компоненти на системата:

- файлове с компонентиDOS- COM изпълними файлове - EXE изпълними файлове - драйвери на външни устройства (SYS- и BIN-файлове) - обектни модули (OBJ-файлове) - програмни файлове, преди да бъдаткомпилирани,с надеждата, че някой ден ще бъдат компилирани и стартирани - пакетни файлове (BAT-файлове) - библиотечни файлове (LIB, DLL и други файлове) - файлове с наслагване (PIF, OV? и други файлове) - файлове на текстови процесори, поддържащи макроси (DOC, XLS и други файлове)

Този списък нараства всеки ден.

Най-често вирусите заразяват файловеCOM, EXE иDOC

СТАТУРА

Вирусите за зареждане се разпространяват в BOOT секторите на дискове и флопи дискове

- BR - на флопи дискове - MBR - на твърд диск

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

ФАЙЛОВО-ЗАРЕЖДАЩИ ВИРУСИ

Вирусите от този тип са по-заразни, защото се разпространяват в BOOT секторите на диска и във файловете на този диск.

МЕТОДИ НА ЗАМЪРСЯВАНЕ НА ХАБИТАТ

Вирусите могат да се "имплантират" в следните местоположения на файлове:

- край на файл - начало на файл - среда на файлове - опашка на файлове (безплатно)