Structura programelor SO M și EXE
Programul COM este o secțiune de cod și date începând cu
cu o comandă executabilă și ocupând nu mai mult de 64K octeți. De exemplu, a
structura are un procesor de comandă COMMAND.SOM sistem de operare
MSDOS, versiuni până la 6.22 inclusiv.
Programul EXE are o structură mult mai complexă. La începutul dosarului
Programul EXE este o lungime a titlului. 28 octeți conținând
# 61623; MZ w - un semn al fișierului EXE;
# 61623; PartPag - lungimea fișierului modulo 512;
# 61623; PageCnt - lungimea fișierului în pagini de 512 octeți;
# 61623; ReloCnt - dimensiunea tabelului de configurare;
# 61623; Dimensiune HdrSize-header;
# 61623; MinMem - memorie minimă necesară;
# 61623; MaxMem - memorie maximă necesară;
# 61623; Relo-SS este segmentul relativ al stivei;
# 61623; ExeSP - decalarea indicatorului stack;
# 61623; ChkSum este suma de control a fișierului;
# 61623; ExelP - compensarea punctului de intrare;
# 61623; ReloCS este segmentul relativ al punctului de intrare;
# 61623; TablOff - compensarea tabelului de configurare;
# 61623; Suprapunerea este numărul segmentului suprapus.
Câmpurile ReloCS și ExelP determină locația punctului de intrare în
program, câmpurile ExeSP și ReloSS - locația stivei, câmpurile PartPag și
PageCnt - dimensiunea segmentului rădăcină al programului.
Dimensiunea calculată a programului pentru PartPag și PageCnt poate să nu coincidă
real
dimensiune
fișier.
astfel de
programul
sunt numite
"Segmented" sau "care conține suprapuneri interne". competent
După titlu, poate fi plasată o masă specială, exactă
a căror locație este determinată de câmpul TablOff. și dimensiunea de câmp
care sunt modificate de sistemul de operare la momentul încărcării
Metode standard de infecție.
Cazul programului COM. Corpul virusului este atribuit la sfârșitul dosarului, undeva
Mai mulți (de obicei, trei) octeți ai originalului
începerea programului, în locul lor comenzile de tranziție spre început
virus. Când virusul se termină îndeplinirea intenției sale
acționează, restabilește octeții originali ai începutului programului și
transferă controlul acolo.
Cazul unui program EXE. Corpul virusului este atribuit sfârșitului dosarului, în
Antetul său modifică valorile câmpurilor care definesc
locația punctului de intrare și mărimea programului (uneori chiar și -
localizarea stivei). Ca rezultat, controlul primește un cod de virus.
La sfârșitul virusului, folosind stocate în infecție
valori ale câmpurilor modificate, comută la original
Cum funcționează virusul
Să luăm în considerare schema de funcționare a celui mai simplu virus de boot,
infectând o dischetă. Când porniți computerul, controlul este transferat
un program de boot care este stocat permanent
memorie (ROM).
Acest program testează echipamentul și finalizează cu succes
verifică încercarea de a găsi o unitate de dischetă A:
Fiecare dischetă este alocată sectoarelor și liniilor, sectoarele sunt combinate
Printre sectoare există mai multe birouri, care funcționează
sistem pentru nevoile lor (în aceste sectoare nu pot fi localizate
datele utilizatorilor). Printre sectoarele de servicii este de interes
una - așa-numita. sectorul boot (sectorul de boot).
Sectorul de pornire stochează informații despre dischetă -
Numărul de suprafețe, numărul de piste, numărul de sectoare și
etc Dar aceste informații nu este interesant, ci un mic program inițial
(PNZ), care ar trebui să încarce sistemul de operare însuși și
dă-i controlul.
Astfel, schema normală de bootstrapping este după cum urmează:
ПНЗ (ROM) - ПНЗ (disc) - SISTEMUL
Acum ia în considerare virusul. În virușii de boot se disting două părți:
t. n. cap și așa mai departe. coada. Coada, în general, poate fi goală.
Să fie o dischetă curată și un calculator infectat, sub care
înseamnă un computer cu un virus rezident activ. Odată ce
virusul va detecta faptul că a apărut un mediu adecvat în drive - in
Cazul în cauză nu este protejat de scriere și nu a fost încă infectat
floppy disk, începe să infecteze. Prin infectarea unei dischete, virusul produce
# 61623; selectează o anumită regiune a discului și o marchează ca fiind inaccesibilă
sistemul de operare, acest lucru se poate face în moduri diferite, în cel mai simplu și cel mai mult
În cazul tradițional, sectoarele ocupate de virus sunt etichetate ca sectoare necorespunzătoare
# 61623; își copiază coada și originalul
(sănătoasă);
# 61623; înlocuiește programul bootstrap în sectorul de încărcare
(prezent) cu capul;
# 61623; organizează lanțul de transfer al controlului conform schemei. prin urmare
Astfel, capul virusului este acum primul care primește controlul, virusul
este setat în memorie și transferă controlul la original
sectorul de boot. În lanț
ПНЗ (ROM) - ПНЗ (disc) - SISTEMUL
apare un nou link:
PNZ (ROM) - VIRUS - PNZ (disc) - SISTEM
Sa considerat schema de funcționare a unui virus simplu butovirus,
care trăiește în sectoarele de boot a dischetelor. De regulă, virușii sunt capabili de
nu numai boot sectoare de dischete, dar bootabile
sectoarele hard disk-urilor - hard disk-uri. În acest caz, spre deosebire de dischetele de pe disc
Există două tipuri de sec-
cu programele de bootloader care primesc
de management. Când porniți computerul de pe hard disk, primul îl preia
gestionarea programului de boot în MBR (Master Boot Record -
master boot record). Dacă hard disk-ul este împărțit în mai multe
partiții, atunci numai unul dintre ele este marcat ca boot.
Programul de boot din MBR găsește partiția de boot
și transferă controlul la programul de boot
din această secțiune. Codul acestuia din urmă coincide cu codul programului inițial
boot pe dischete convenționale, și corespunzătoare
Sectoarele de boot diferă numai în tabelele de parametri. prin urmare
Există două tipuri de viruși atacați pe hard disk
- Programul de boot MBR și programul de bootstrap în
sectorul de boot al discului de boot.
Cazul descris de răspândirea virușilor este cea mai frecvent înregistrată companie antivirus. Nu este neobișnuit ca un document de fișiere infectat sau tabelul Excel să fie inclus în listele de corespondență a informațiilor comerciale ale unei companii mari din cauza unei supravegheri. În acest caz, nu cinci, ci sute sau chiar mii de abonați ai unor astfel de corespondențe suferă, ceea ce va trimite fișiere infectate la zeci de mii de abonați.
File-serverele "publice" și conferințele electronice servesc, de asemenea, ca una dintre principalele surse de viruși. Aproape în fiecare săptămână există un mesaj în care un utilizator a infectat computerul cu un virus care a fost eliminat de pe serverul BBS, ftp sau de la orice conferință electronică.
În cazul virusului mass-mail pentru serverele de fișiere ftp / BBS afectate aproape simultan pot fi mii de computere, dar în majoritatea cazurilor „sunt stabilite» DOS- sau pentru Windows viruși, viteza de propagare a care, în condiții moderne, este semnificativ mai mic decât virușii macro. Din acest motiv, astfel de incidente nu se termină aproape niciodată în epidemiile de masă, care nu pot fi spuse pentru virușii macro.
Al treilea mod de "infecție rapidă" este rețelele locale. Dacă nu iau măsurile necesare de protecție, stația de lucru infectate, atunci când vă conectați pentru a infecta unul sau mai multe fișiere de serviciu pe server (în cazul Novell NetWare - LOGIN.COM)
A doua zi, când utilizatorii se conectează la rețea, pornesc fișierele infectate
În loc de fișierul de serviciu LOGIN.COM, pot exista și diverse programe instalate pe server, documente standard de șablon sau foi de calcul Excel utilizate în companie.
Copiile ilegale ale software-ului, așa cum a fost întotdeauna, sunt una dintre principalele "zone de risc". Adesea, copiile piratate pe dischete și chiar pe CD-ROM-uri conțin fișiere infectate cu o mare varietate de tipuri de virusuri.
Pericolul este prezent și în calculatoarele instalate în instituțiile de învățământ. Dacă unul dintre studenți a adus un virus pe dischetele lor și a infectat orice calculator de antrenament, dischetele tuturor celorlalți studenți care lucrează pe acest computer vor primi și o altă "infecție".
Același lucru este valabil și pentru computerele acasă, dacă mai multe persoane lucrează la acestea. Mai puțin frecvente pentru elev-fiul (sau fiica), care lucrează pe un computer multi-utilizator la institut, trage un virus pe computerul de acasă, astfel încât virusul intră în rețeaua companiei Pope calculator sau mama.
Este rar, dar este încă destul de realist să infectați un computer cu un virus atunci când acesta este reparat sau examen preventiv. Reparații sunt, de asemenea, oameni, iar unii dintre ei tind să nu ia în considerare regulile elementare ale securității informatice. Odată ce a uita pentru a închide protecția la scriere pe unul dintre discurile sale floppy, un „maestro“ destul de repede se va răspândi infecția pe mașinile clienților săi și este probabil să-l (clientela) pierd.
Iată un exemplu generalizat al structurii unui program de virusi. Se compune din
pseudo-comenzile DOS și subrutine - mici programe interne
(componentele instrucțiunilor acestora sunt stocate separat de programul principal);
îndeplinind anumite funcții speciale ori de câte ori sunt
loc: = căutare (aceasta)
O subrutină numită findfile se referă la executabilul directorului
fișiere sau programe de pe disc, ia un nume de fișier arbitrar și
atribuie numele acestui fișier variabilei (aceasta). În următorul
Linia de program utilizează pseudo-comanda DOS LOAD (descărcare), cu
Prin intermediul căruia fișierul este plasat în memoria operativă a computerului.
Un alt subprogram numit numai căutări de căutare
că programul descărcat în căutarea unei instrucțiuni care ar putea
servi ca un loc potrivit pentru a aduce virusul. când
Procedura de căutare constată o astfel de instrucțiune, aceasta determină
numărul corespunzător de rând și îl atribuie ca valoare
loc variabil. Acum totul este gata pentru virusul subrutinei
ar putea pătrunde într-un program ales arbitrar din catalog.
Subrutina de inserare înlocuiește instrucțiunea selectată cu alta
(de exemplu, cum ar fi apelarea unei subrutine). Instrucțiunea înlocuită
transferă controlul către un bloc de comenzi care alcătuiesc
corpul principal al subprogramului de virus care se alătură sfârșitului
Program. Apoi, la sfârșitul subrutinei adăugate,
O instrucțiune care readuce controlul asupra unui program "infectat"
instrucțiune urmând introducerea. Astfel, când
se execută subrutina de virus, execuția subrutinei
instruirea programului infectat. Programul original funcționează astfel,
ca și cum nu s-ar fi întâmplat nimic special. Cu toate acestea, de fapt
virusul subrutinei a profitat de câteva momente
să profite de puterea sistemului de operare
copiați în alt program stocat pe disc. Exemplul dat
În prezent, experții au identificat alte tehnici care diferă
unul de celălalt prin idei și sofisticare a realizării.