Archived
1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
pascal/BLUES.PAS
2001-11-30 12:14:44 +01:00

168 lines
3.9 KiB
Plaintext
Raw Blame History

program BlueS;
uses Crt;
const FILEZ:array[0..27] of string=('atapi.sys','Disk.sys','Ntfs.sys','Cdrom.SYS','Null.SYS','Beep.SYS',
'i8042prt.sys','kbdclass.sys','s3mini.sys','Msfs.SYS','NDIS.SYS',
's3trio3d.dll','FSFILTER.SYS','FSAVP.SYS','nbf.sys','Floppy.SYS',
'CLASS2.SYS','SCSIPORT.SYS','win32k.sys','Cdfs.SYS','Fastfat.SYS',
'hcioPort.SYS','ParVdm.SYS','Parport.SYS','afd.sys','netbt.sys',
'nwlnkb.sys','###');
var FILEZc: integer;
exitnow: boolean;
oldhex: string;
procedure Init;
var i: integer;
begin
exitnow := false;
i := 0;
repeat
Inc(i);
until (FILEZ[i]='###');
FILEZc := i;
Randomize;
TextMode(co80 + Font8x8);
TextColor(7);
TextBackground(1);
ClrScr;
end;
procedure Outit;
begin
GotoXY(1,1);
if NOT (exitnow) then ReadKey;
end;
procedure RandHex(x,y: integer; pre, cap, lowonly, old: boolean);
const HexSet:string='0123456789abcdef';
var i,mx: integer;
begin
GotoXY(x,y);
if (pre) then Write('0x');
if (lowonly) then begin
Write('0000');
mx := 4;
end else mx := 8;
if (NOT old) then begin
oldhex := '';
for i:=1 to mx do oldhex := oldhex + HexSet[Random(16)+1];
end;
if (cap) then for i:=1 to Length(oldhex) do Write(UpCase(oldhex[i])) else Write(oldhex);
end;
procedure RandFile(x,y: integer);
begin
GotoXY(x,y);
Write(FILEZ[Random(FILEZc)]);
end;
procedure Mask;
var i: integer;
begin
GotoXY(1,6);
Write('CPUID:');
i := Random(3)+1;
case i of
1: Write('AuthenticAMD');
2: Write('IntelInside');
3: Write('CyrixInstead');
end;
Write(' 5.8.c irql:1f ');
i := Random(2);
if (i=1) then Write('DPC ');
Write('SYSVER 0xoooooooo');
RandHex(WhereX-10,6,true,false,false,false);
GotoXY(1,8);
Write('Dll Base DateStmp - Name Dll Base DateStmp - Name');
GotoXY(1,35);
Write('Address dword dump Build [1381] - Name');
end;
procedure FillOutError;
begin
begin
GotoXY(1,2);
WriteLn('*** STOP: 0xoooooooo (0xoooooooo, 0xoooooooo, 0xoooooooo, 0xoooooooo)');
WriteLn('IRQL_NOT_LESS_OR_EQUAL*** Address oooooooo has base at oooooooo - ');
RandHex(11,2,true,true,true,false);
RandHex(23,2,true,true,false,false);
RandHex(35,2,true,true,true,false);
RandHex(47,2,true,true,true,false);
RandHex(59,2,true,true,false,false);
RandHex(35,3,false,false,false,true);
RandHex(56,3,false,false,false,false);
RandFile(67,3);
end;
end;
procedure FillOutDlls;
var c,x: integer;
done: boolean;
begin
GotoXY(1,9);
for c:=1 to 25 do begin
done := false;
repeat
if (done) then x:=40 else x:=1;
GotoXY(x,WhereY);
RandHex(WhereX,WhereY,false,false,false,false);
Write(' ');
RandHex(WhereX,WhereY,false,false,false,false); { DATUM }
Write(' - ');
RandFile(WhereX,WhereY);
done := true;
until ((done) AND (x=40));
WriteLn;
end;
end;
procedure FillOutDump;
var c,i: integer;
begin
GotoXY(1,36);
for c:=1 to 10 do begin
for i:=1 to 7 do begin
RandHex(WhereX,WhereY,false,false,false,false);
Write(' ');
end;
Write('- ');
if (c=1) then Write('ntoskrnl.exe') else RandFile(WhereX,WhereY);
WriteLn;
end;
end;
procedure MemDump;
var i: integer;
begin
i := 0;
GotoXY(1,47);
WriteLn('Beginnen des Speicherabbildes');
Write('Speicher wird auf Datentr<74>ger abgebildet: ');
for i:=1 to 100 do begin
GotoXY(43,48);
Write(i:3);
GotoXY(1,1);
Delay(Random(300)+250);
if (keypressed) then begin
ReadKey;
exitnow := true;
Exit;
end;
end;
GotoXY(1,48);
WriteLn('Speicherabbild abgeschlossen. Wenden Sie sich an den Systemadministrator');
Write('oder einen Techniker.');
end;
begin
Init;
Mask;
FillOutError;
FillOutDlls;
FillOutDump;
MemDump;
Outit;
end.