mov ah, 0ffh ; cislo sluzby (test pritomnosti viru) int 21h ; vlastni volani DOSu cmp ax, 1234h ; byl vracen klic pritomnosti ? jne neni_pritomen ; skok na rezidentni instalaci jmp je_pritomen ; instalace se jiz provadet nebudePo tΘto sekvenci p°φkaz∙ virus zjistφ, zda se mß instalovat do pam∞ti, Φi zdali je ji₧ v pam∞ti p°φtomen. Princip spoΦφvß ve skuteΦnosti, ₧e za normßlnφch okolnostφ slu₧ba DOSu Φφslo 0ffh neexistuje, a tudφ₧ operaΦnφ systΘm zareaguje pouze chybov∞, tj. vrßtφ v registru AX nedefinovanou hodnotu s p°φpadn²m nastavenφm chybovΘho p°φznaku CF. Je-li ji₧ vÜak virus v pam∞ti p°φtomen, sßm "vytvo°φ" novou slu₧bu tohoto p°eruÜenφ tak, ₧e na volßnφ slu₧by DOSu 0ffh bude vracet nßvratovou hodnotu (klφΦ p°φtomnosti) 1234h v registru AX. Virus tedy p°esm∞ruje obsluhu p°eruÜenφ int 21h na svΘ t∞lo, kterΘ na poΦßtku obsluhy zjiÜ¥uje, zda nenφ po₧adovanß prßv∞ nov∞ vytvo°enß slu₧ba.
obsluha_int_21h: cmp ah, 0ffj ; jedna se o test pritomnosti ? jne pokracuj ; ne, pokracuje obsluha int 21h mov ax, 1234h ; ano, nastavi klic pritomnosti iret ; navrat z preruseni pokracuj: ; dalsi sled instrukciSamoz°ejm∞, ₧e i tato metoda mß svß ·skalφ. V okam₧iku, kdy dva r∙znΘ viry pou₧ijφ stejnΘ Φφslo nov∞ vytvo°enΘ slu₧by, dojde ke kolizi a tφm k mo₧nosti vφcenßsobnΘ instalace. Obecn∞jÜφ mo₧nostφ je pou₧φt mφsto registru AH obsah celΘho registru AX. V tom p°φpad∞ se pravd∞podobnost kolize zmenÜφ na minimum.
Zdroj: Computer Press, ???