Tato služba může obsahovat Google překlady. Společnost Google odmítá veškerou odpovědnost za překlad, doslovný i předpokládaný, včetně veškerých záruk aktuálnosti, spolehlivosti a veškerých záruk předpokládané zobchodovatelnosti, vhodnosti pro daný účel a neporušení práv.

Web Kaspersky Lab byl přeložen překládacím softwarem založeným na Google Translate. Bylo vynaloženo přiměřené úsilí, aby byl zajištěn přesný překlad, avšak žádný automatický překlad není dokonalý a není určen k nahrazení lidských překladatelů. Překlady jsou poskytovány jako služba uživatelům webových stránek a jsou poskytovány „tak jak jsou“. Neexistuje žádná záruka jakéhokoliv druhu, na vyjádřený nebo předpokládaný překlad, na přesnost nebo správnost překladů. Některý obsah (například obrázky, videa, Flash atd.) Nemusí být přesně přeložen z důvodu omezení překladového softwaru.

Virus.DOS.Zhengxi

Třída Virus
Platfoma DOS
Popis

Technické údaje

Jedná se o rodinu velmi nebezpečných, polymorfních a tajných parazitických virů. Tyto viry jsou delší než 7K, velmi složité a možná i nejsložitější DOS-viry. Tyto viry infikují soubory EXE, OBJ a LIB a připojují COM-droppers k archivům ZIP, ARJ a RAR. Viry obsahují interní textové řetězce:


Abnormální ukončení programu
Virus / DOS 0.54 Autorská práva (c) 1995 Zhengxi Ltd
Varování! Tento program je určen pouze pro interní použití!

Instalace

Kód viru získá kontrolu z různých bodů v závislosti na způsobu infekce, ale ve všech případech je cílem polymorfní rutina dešifrování. V systémech EXE (připojování) rutina dešifrování obdrží ovládací prvek okamžitě, když je soubor EXE načten do paměti pro provedení, v souborech EXE (vložení) – z kódu načíst (viz infekce EXE) do souborů spojených s infikovanými OBJ / Soubory LIB – z instrukce CALL (viz OBJ / LIB infekce), kapátka COM mají instrukce JMP v jejich počátcích, že JMP přináší kontrolu do rutiny dešifrování.

Dešifrován, instalační rutina viru obdrží ovládací prvek. Virus háčky INT 1 (One Step Tracing) a stopy INT 21h. Během sledování virus vyhledá nějaký konkrétní kód v rámci obslužného programu INT 21h (tento kód je přítomen v DOS 5.x a DOS 6.x). Pokud je tento kód nalezen, virus kontroluje několik podmínek a v některých případech ukončí instalaci.

Virus ukončí instalaci, pokud:

  • MS Windows je nainstalován
  • bootovací jednotka je A: nebo B:
  • INT 8, 13h, 28h ukazuje na stejný segment (ukončení instalace, pokud je nainstalován antivirový monitor?)
  • den hostitelského souboru (datum a časová razítka) je stejný nebo v blízkosti aktuálního dne (dva nejvyšší bity současného čísla dne XORed s datem souboru se rovnají nule)
Poté virus přidělí blok systémové paměti pro kopii viru TSR, uloží v jeho těle 11 bajtů z adresy INT 21h handler a opravy INT 21h kódu s instrukcí FAR CALL (2F FF 1E ???), která přináší ovládací prvek k obsluze INT 25h (absolutní čtení disku). Poté virus uchovává prvních pět bajtů obslužného programu INT 25h a zapíše tam pět bajtů FAR JMP na kód viru. Výsledek vypadá následovně:

INT 21h handler:
… …
+ ——- 2E FF 1F ???? CALL FAR CS: Int25
� C7 06 ???? ; kouzelné slovo?
� Int25: ???? ???? ???? ???? ; daleko addr INT 25h
� … …

+> INT 25h handler:
+ ——– EA ???? ???? JMP FAR VirusHandler
� … …

+> Virus handler:
2E 8F 06 … POP CS: Caller_IP
… …
Výsledkem je, že virus má stejného obslužného programu, který zachycuje volání INT 21h i INT 25h. Chcete-li tyto hovory oddělit, virus kontroluje adresu volajícího (Caller_IP). Pokud volání přechází z obslužného programu INT 21h, virus přenáší kontrolu na rutinu pro obsluhu Virus INT 21h, v jiném případě obslužný program Virus INT 25h obdrží ovládací prvek.

Rutina instalace je dokončena, ale virus může přesunout kód do jiných paměťových bloků (viz analýza obsluhy INT 21h). Kópia viru TSR tedy nezahrnuje stejné bloky systémové paměti, ale může se přesunout na jiné adresy, včetně UMB.

Poté virus vrátí ovládací prvek do hostitelského programu. Existují tři různé varianty takového návratu, které závisí na způsobu infekce. V případě kvapkadla COM virus zobrazí pouze zprávu:


Abnormální ukončení programu
a vrátí se do DOS s funkcí Terminate (INT 21h, AH = 4Ch). V případě metody infekce připojené k EXE virus obnoví původní hlavičku souboru pomocí polymorfního stroje (generuje polymorfní rutinu dešifrování a provede ji k obnovení původního záhlaví, viz infekce EXE níže). V případě vkládání EXE se virus vrací pouze do hostitelského programu, protože virův zaváděč vložený do souboru obnoví původní kód sám. V případě souboru OBJ / LIB se virus také vrátí do hostitelského programu (viz níže uvedená infekce OBJ / LIB).

INT 21h Handler

Virus zachycuje 18 funkcí INT 21h:

3Dh, 6Ch – Otevřít / Vytvořit soubor
3Eh – Zavřít soubor
3Fh – Číst soubor
42h – Lseek
4Bh – Spustit soubor
41h – Odstranit soubor
11h, 12h – FindFist / Next FCB
4Eh, 4Fh – FindFist / další ASCII
00h, 4Ch – Ukončení
31h – Zůstaňte TSR
67h – Nastavení počtu rukojetí
48h, 49h, 4Ah – funkce správy paměti (Allocate, Free, Resize)
Funkce Set Handle Count, Execute File management a správu paměti jsou používány virem pro skrytí jeho kódu do systémové paměti – virus manipuluje s bloky MCB, aby nebyly viditelné na mapě paměti při použití nástrojů pro prohlížení paměti.

Při zachycování funkcí Terminate, Stay TSR a FreeMemory virus přesune svůj kód na novou adresu v systémové paměti. Virus přiděluje nový blok paměti (což může být konvenční nebo UMB paměťový blok) a tam se zkopíruje. Takže při instalaci viru neovlivňuje bloky UMB umístit jeho kopii TSR, ale pak se může přesunout do UMB a skrýt se tam sama.

Zatímco soubor otevírající virus provádí několik různých hovorů. Za prvé, virus kontroluje režim otevření a pokud je soubor otevřen pro psaní, virus dezinfikuje soubor.

Před dezinfekcí virus kontroluje přístup k souboru a program, který přistupuje k tomuto souboru (volajícímu). Virus porovnává název přístupového programu (volajícího) se seznamem názvů (viz níže) a dezinfikuje přístupný soubor, pokud je název přístupového programu z tohoto seznamu. Názvy souborů jsou:


UUENCODE.EXE, PKLITE.EXE, LZEXE.EXE, NDD.EXE, DIET.EXE, AFD.EXE, SD.EXE,
SPEEDDSK.EXE, DEFRAG.EXE, TLINK.EXE, LINK.EXE
V případě funkce AH = 3D00h (Open ReadOnly) virus provádí některé zvláštní akce. Sleduje kód volajícího a opraví ho. Vypadá to, že je to nějaký antivirový skener. Naštěstí má virus chybu a tato větev není nikdy provedena.

Při otevírání souboru virus také přináší kontrolu na stealth rutinu – virus nahrazuje délku souboru s původním.

Při čtení ze souboru virus nazývá stealth rutinou. V případě čtení z hlavičky infikovaného souboru čte, dešifruje a zkopíruje původní hlavičku do vyrovnávací paměti pro čtení.

V případě funkce Lseek virus přenáší kontrolu na další stealth rutinu viru – virus neumožňuje hledat původní délku souboru.

Během mazání infikovaného souboru jej virus dezinfikuje.

Při hledání souborů s voláním FindFirst / Next virus v případě, že je soubor infikován, nahrazuje délku souboru původní.

Volby FindFist / Next ASCII jsou také používány virem k zachycení souborů pro infekci. Virus uloží jméno libovolného souboru, ke kterému je přístupná funkce FindFirst, a přibližně každý pátý soubor (pravděpodobnost 3/16) přistupuje k funkci FindNext. Virus obsahuje pouze jeden vyrovnávací paměť pro název souboru, takže každé další jméno přepisuje předchozí.

Při zavírání libovolného souboru virus kontroluje a infikuje soubor s jménem uloženým v vyrovnávací paměti. Virus také infikuje soubor, který je zavřený, ale je to s pravděpodobností 1/4 (výsledkem viru "náhodný generátor)

Infekce

Před infikováním souboru virus kontroluje několik podmínek:
  • soubor není "jen vytváří" porovnáním aktuálního čísla dne s datem a časovým razítkem souboru (stejně jako při instalaci)
  • soubor je lokální a nikoli na jednotce A: nebo B: jednotka
  • název souboru není *.? V? (* .OVL?)
  • je dostatek volného místa na disku (kontroly s INT 21h, AH = 36h)
V případě všech těchto stavů virus přečte hlavičku souboru a zkontroluje to pro EXE, OBJ, LIB a archivní razítka.

Nahrazení souborů EXE

Virus infikuje EXE třemi různými metodami – přidáváním, vkládáním a infikováním archivů do samorozbalovacích souborů.

Za prvé, virus kontroluje strukturu souborů a pokud je to samorozbalovací soubor EXE (vytvořený například ZIP2EXE), virus infikuje připojený archiv (ZIP, ARJ, RAR) metodou popsanou níže – vytvoří kapátko COM , a přidá jej do obsahu archivu.

Poté virus kontroluje délku souboru a neinfikuje soubory o délce menší než 400h (1024) bajtů. Pokud je délka načteného modulu (poznámka: ne délka souboru) větší než 32 kB, virus vloží jeho nakladač do středu souboru. V jiném případě virus infikuje soubor připojením metody.

Při infikování souborů metodou připojování virus čte záhlaví souboru, šifruje jej a uloží jej na konec souboru. Pak virus spustí svůj polymorfní generátor a uloží šifrované vírové tělo a polymorfní smyčky do konce souboru. Chcete-li dokončit infekci, virus zvětší délku souboru na hodnotu, která je rozdělena na 9Dh. Zvyšuje 25h (detekuje již infikované soubory, je to "ID" razítko) a upravuje pole záhlaví EXE (registru a délku modulu).

Poznámka: Virus šifruje původní hlavičku hostitelského souboru s polymorfní šifrovací smyčkou a tato smyčka se liší od rutiny, která se používá při šifrování těla viru. Virus volá polymorfní motor dvakrát – při šifrování původní hlavičky EXE a při šifrování hlavního těla.

Během provádění infikovaného souboru EXE obnoví dešifrovací smyčky hlavní tělo viru, ale ne záhlaví původního souboru. K návratu do hostitelského programu musí virus dešifrovat hostitelská data, ale motor generuje náhodné smyčky s náhodnými vybranými šifrovacími funkcemi. Pro vyřešení tohoto problému virus uchovává počáteční hodnoty náhodného generátoru při šifrování hostitelských dat a spouští generátor polymorfního signálu se stejnými hodnotami při dešifrování těchto dat. Výsledkem je, že generátor přináší stejný kód, který byl použit při šifrování hostitelských dat a byl proveden tak, že rutina ji dešifruje.

Nahrazení souborů EXE (vkládání)

Je-li délka souboru nad 32K, virus se pokusí spustit hlavní modul EXE (těsně za záhlaví EXE), čte 6K kódu a hledá rutiny C / Pascal tam. Obvykle rutiny C / Pascal začínají ze stejného "záhlaví", který ukládá registr BP a přesune ukazatel zásobníku SP na BP.

Virus skenuje kód pro tyto "záhlaví" a pokud je tento kód nalezen, virus prohledává další 54h bytů kódu pro instrukce RET nebo CALL FAR, aby se zabránilo překrývání dalšího podprogramu nebo přemístěné adresy. Pokud je nalezen takovýto kód (RET nebo CALL FAR), virus opouští rutinní infekci.

Poté virus čte 54h bajtů této rutiny, přepíše je kódem virového načítače, pak šifruje hlavní virové tělo polymorfním motorem a uloží ho do konce souboru. Pak virus šifruje jednoduchou funkcí SUB původní kód podprogramu a druhou část načítače a uloží jej na konec souboru. Poté virus na konci souboru píše náhodné údaje stejným způsobem jako při "připojování" metody infekce.


Neinfikováno infikováno
———— ——–
+ ————– + + ————– +
�Exe záhlaví � �Exe záhlaví �
+ ————– � + ————– �
�Main EXE kód � �Main EXE kód �
� ————– � � ————– �
�C / Pascal subr � – + �Virusový nakladač � Část 1, 52h bajtů, nešifrovaný
� ————– � � � ————– �
� � � � Hlavní kód EXE �
� � � � (pokračování) �
+ ————– + � + ————– �
� �Virus � Šifrováno pomocí polymorfních smyček
� � ————– �
� �Virus loader � Část 2, šifrovaná příkazem SUB
� � ————– � 70h bajtů
+ -> �Saved code � Původní kód patched podprogramu,
� ————– � 52h bajtů, šifrovaných SUB
�Radomová data � délka souboru / 9Dh, zbytek je 25h
+ ————– +
Při spuštění je načtena vyhledává název hostitelského souboru pomocí polí PSP, otevírá soubory, vyhledává konec souboru, čte, dešifruje a spustí druhou část kapátka. Tato část obnoví patched podprogram, alokuje systémovou paměť (konvenční nebo UMB), přečte hlavní tělo viru a předá řídící jednotku do dešifrovací polymorfní smyčky. Tato smyčka dešifruje tělo viru a předá řídicímu programu rutině instalace.

To je velmi zákeřný způsob infekce. Kód viru je v souboru skrytý a ze kódu záhlaví souboru není přímý zápis virového kódu. Podprogram nahrazený virem načítáním může být "zřídka proveden" jeden. Například podprogram, který zobrazuje chybovou zprávu. Takže virus může spát v takových souborech po dlouhou dobu a pak vyskočit a infikovat systém za určitých omezených podmínek.

Infikování archivů

V případě archivu virus vytvoří v paměti obraz infikovaného dropperu COM a připojí jej do archivu. Tyto zaváděče COM vždy začínají instrukcí JMP, následované náhodnými daty, šifrovaným kódem viru a polymorfní smyčkou dešifrování. Instrukce JMP přináší kontrolu do dešifrovací smyčky.

Název dropperu je náhodně vybrán a dokončen s příponou .COM, například:


HAIF.COM, UCM.COM, DOO.COM, VLG.COM a tak dále.
Během zpracování archivních polí virus nepoužívá žádné externí nástroje, ale sám vyplňuje všechna potřebná pole. Virus nezavazuje kapátko, ale používá "uloženou" metodu – virus je uložen v archivu "tak jak je". Zatímco infikování viru kontroluje obsah archivů a neinfikuje je dvakrát.

Infikování souborů OBJ a LIB

Během infekce modulů OBJ / LIB virus kontroluje pole souboru, vytváří a vkládá do něj nové záznamy o objektech, které obsahují kód viru šifrovaný polymorfními smyčky.

Během skenování objektového souboru virus kontroluje kód tohoto souboru pro záhlaví podprogramu C / Pascal stejně jako při vkládání do souborů EXE a infikuje soubory pouze v případě, že je tento kód nalezen. V případě modulu OBJ nebo LIB však virus neupustí kód nakladače, ale přepíše záhlaví C / Pascal příkazem CALL (E8xxxx).

Byla propojena do spustitelného souboru, který CALL přináší kontrolu na polymorfní dešifrovací smyčku viru. Tato smyčka dešifruje kód viru a předá řídicí jednotce rutině instalace viru.

Stejně jako v souborech EXE (vkládání), že CALL nikdy nedostane kontrolu a virus může spát po dlouhou dobu. Ovšem za určitých podmínek může virus vyskočit a infikovat systém.

INT 25h Handler

Tento psovod realizuje rutinu stealth na úrovni INT 25h. Při přístupu k záznamům v adresáři virus nahradí délku souboru původními, při čtení záhlaví infikovaného souboru virus obnoví a přináší původní podobu.

Virus nedělá 100% stealth na úrovni INT 25h, samozřejmě. Existují způsoby, jak obejít rutinu stealth. Pokud však některý antivirový program přečte obsah souboru pomocí funkcí INT 21h DOS, čte strukturu adresářů a pak obsah souborů pomocí absolutních volání INT 25h, virus se nezobrazí.

Spuštění rutiny

Pokud při zpracování ZIP souborů virus nalezne nějaký záznam, který je nabitý "uloženým" způsobem, zkontroluje datum a časový soubor ZIP souboru. Pokud rok poslední úpravy tohoto souboru je 1996 nebo více, virus vyhledá všechny soubory všech adresářů všech disků od C: do Z :, pak odstraní soubory a celý podadresářový strom.


Odkaz na originál