Структура COM та EXE файлів

Структура COM файлу

Напевно, всім відомі файли з розширеннямCOM. ГоловнимCOM файлом наПК є всюдисущийcommand.com (командний файлDOS ). Що ж такеCOM файл, як він працює та запускається? СтруктураCOM - файлу проста. У файлах даного типу, які зазвичай не мають навіть заголовка файлу, містяться тільки машинний код і дані програми. РозмірCOM - файл обмежений 64 кб, тобто. розміром одного сегмента пам'яті

В основному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 "My first COM programms",13,10,"$" ;Надаємо значення змінної message

Використовую визначення переривання можна сказати, як діє ця програма.

mov ah,09h int 21h

У першому рядку в регістрah заноситься значення09, деh означає, що це число в шістнадцятковій системі обчислення, у другому рядку вказується переривання, в даному випадку це21, (h те саме, що у першому рядку) тобто. перериванняDOS. Отримавши таку команду, процесор на якийсь час перестає виконувати поточні операції і передає управління програмі, що знаходиться в оперативній пам'яті, обробнику функції09h.Після виконання всіх цих операцій процесор повертається до виконання раніше виконуваної операції.

Нижче наведено два варіанти кодуCOM - файлу до "інфікування" вірусом і після:

jmp coob ; Тіло програми починається з міткиcoob

mov ah,4Ch int 21h

message db "Файл не інфікований", 13,10, "$" ; Рядок з текстом для виведення на екран

mov ah,4Ch ; Виходимо з програмиint 21h ; Переривання 21h

ends code ; Кінець сегмента коду програми

jmp virus ; JMP змінено таким чином, щоб вірус отримав управління

mov ah,4Ch int 21h coob:mov ah,09hmov dx,offset messageint 21hmessage db "Файл не інфікований", 13,10, "$" ; Рядок з текстом для виведення на екранmov ah,4Chint 21h

virus:

mov. .> Вірус розмножується і виконує свої руйнівні дії. int 21h

jmp coob

ends code ; Кінець сегмента коду програми

Нижче наведено структуру інфікованого файлу

Хвіст COM програми

Тіло вірусу

Оригінальний початок COM програми

Структура файлу EXE

Орієнтовна структураEXE файлу:

Тіло програми

Кінець програми

Заголовок EXE файлу - містить дані необхідні для завантаження програмиТіло програми - основна частина програми, яка виконує якісь корисні діїКінець програми - завершальна частина програми, яка зберігає потрібні та видаляє непотрібні дані зОЗУ, закриває всі відкриті даною програмою файли і т.п.

Перша і остання частина програми є обов'язковими всімEXE файлів, а друга частина не обов'язкова. Ви можете просто взяти її та пропустити.

Наводити види "інфікованого" і "не інфікованого" файлуEXE я не буду, т.к. на відміну відCOM вірусів, уEXE вірусів є безліч способів зараження. Детально про кожен з них я розповім Вам у наступних випусках розсилки, а зараз лише перерахую назви основних з них:

OVERWRITE - віруси, які замінюють програмний код

COMPANION - віруси-супутники

PARASITIC - віруси, що впроваджуються у програму

метод перейменування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 секторах диска і в файлах на цьому диску.

СПОСОБИ ЗАРАЖЕННЯ СЕРЕДОВИЩА ПРОЖИВАННЯ

Віруси можуть "імплантуватися" в такі місця:

- кінець файлу - початок файлу - середина файлів - хвостової частини файлів (вільної)