home *** CD-ROM | disk | FTP | other *** search
- PROGRAM TurboPW;
-
- { T U R B O P W 1 R 0 D
- BY
- Marty Kleiman
-
- This program will build the TSS.SYS device driver
- which at system boot will ask the user for a password.
- The system will not allow the user to continue until the
- correct passwod is given. The following must by included
- in the file CONFIG.SYS:
-
- DEVICE = ANSI.SYS
- DEVICE = TSS.SYS
-
- This program may freely be copied, shared and distributed
- but NOT sold for profit.
- }
-
- {$V-,I-}
- VAR
- b : ARRAY[1..512] OF BYTE;
- f1 : FILE;
- f2 : TEXT;
- i : INTEGER;
- n : INTEGER;
- c : CHAR;
- pw : STRING[16];
- w : ARRAY[1..17] OF BYTE ABSOLUTE pw;
-
- PROCEDURE ReBoot;
- VAR i : INTEGER;
- BEGIN
- LowVideo;
- TextColor (WHITE);
- GoToXY (1,1);
- ClrScr;
- WriteLn (^G);
- Intr ($19,i);
- END;
-
- { Main Program }
-
- BEGIN
- GoToXY (1,1);
- ClrScr;
- TextColor (CYAN);
- WriteLn ('TURBOPW 1R0D');
- WriteLn ('By');
- WriteLn ('Marty Kleiman');
- WriteLn ('');
- WriteLn ('This program will make your boot disk password protected.');
- WriteLn ('The BOOT will not continue until the user enters the');
- WriteLn ('valid password.');
- WriteLn ('');
- WriteLn ('The program will create 2 files on your BOOT disk');
- WriteLn ('CONFIG.SYS and TSS.SYS which could be transfered to a');
- WriteLn ('hard disk.');
- WriteLn ('');
- Writeln ('The program will ask you for a 1 to 15 char password');
- WriteLn ('which will be the new password for the system.');
- WriteLn ('');
- WriteLn ('At any time use CTRL C to abort.');
- WriteLn ('');
- WriteLn ('Please insert a WRITE enabled copy of your boot disk');
- Write ('in dirve a . Press any key to continue...');
- Read (KBD,c);
- Assign (f1,'A:ANSI.SYS');
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Cannot find ANSI.SYS');
- Halt;
- END;
- Reset (f1);
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Cannot find ANSI.SYS');
- Halt;
- END;
- Assign (f1,'A:TSS.SYS');
- i := IOResult;
- IF i = 0 THEN
- ReWrite (f1);
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Cannot Create TSS.SYS.');
- Halt;
- END;
- Assign (f2,'A:CONFIG.SYS');
- i := IOResult;
- IF i = 0 THEN
- ReWrite (f2);
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Cannot Create CONFIG.SYS.');
- Halt;
- END;
- b[1] := $FF; b[2] := $FF; b[3] := $FF; b[4] := $FF; b[5] := $00;
- b[6] := $80; b[7] := $71; b[8] := $00; b[9] := $E8; b[10] := $00;
- b[11] := $50; b[12] := $57; b[13] := $4F; b[14] := $52; b[15] := $44;
- b[16] := $10; b[17] := $20; b[18] := $20; b[19] := $20; b[20] := $20;
- b[21] := $20; b[22] := $20; b[23] := $20; b[24] := $20; b[25] := $20;
- b[26] := $20; b[27] := $20; b[28] := $20; b[29] := $20; b[30] := $20;
- b[31] := $20; b[32] := $20; b[33] := $10; b[34] := $00; b[35] := $00;
- b[36] := $00; b[37] := $00; b[38] := $00; b[39] := $00; b[40] := $00;
- b[41] := $00; b[42] := $00; b[43] := $00; b[44] := $00; b[45] := $00;
- b[46] := $00; b[47] := $00; b[48] := $00; b[49] := $00; b[50] := $00;
- b[51] := $00; b[52] := $00; b[53] := $00; b[54] := $00; b[55] := $00;
- b[56] := $00; b[57] := $00; b[58] := $00; b[59] := $CF; b[60] := $0D;
- b[61] := $0A; b[62] := $1B; b[63] := $5B; b[64] := $30; b[65] := $6D;
- b[66] := $45; b[67] := $6E; b[68] := $74; b[69] := $65; b[70] := $72;
- b[71] := $20; b[72] := $50; b[73] := $61; b[74] := $73; b[75] := $73;
- b[76] := $77; b[77] := $6F; b[78] := $72; b[79] := $64; b[80] := $3A;
- b[81] := $20; b[82] := $1B; b[83] := $5B; b[84] := $38; b[85] := $6D;
- b[86] := $24; b[87] := $0D; b[88] := $0A; b[89] := $1B; b[90] := $5B;
- b[91] := $30; b[92] := $6D; b[93] := $50; b[94] := $61; b[95] := $73;
- b[96] := $73; b[97] := $77; b[98] := $6F; b[99] := $72; b[100] := $64;
- b[101] := $20; b[102] := $61; b[103] := $63; b[104] := $63; b[105] := $65;
- b[106] := $70; b[107] := $74; b[108] := $65; b[109] := $64; b[110] := $2E;
- b[111] := $0D; b[112] := $0A; b[113] := $24; b[114] := $2E; b[115] := $89;
- b[116] := $1E; b[117] := $36; b[118] := $00; b[119] := $2E; b[120] := $8C;
- b[121] := $06; b[122] := $38; b[123] := $00; b[124] := $CB; b[125] := $B8;
- b[126] := $00; b[127] := $00; b[128] := $8E; b[129] := $C0; b[130] := $26;
- b[131] := $A1; b[132] := $6C; b[133] := $00; b[134] := $A3; b[135] := $32;
- b[136] := $00; b[137] := $26; b[138] := $A1; b[139] := $6E; b[140] := $00;
- b[141] := $A3; b[142] := $34; b[143] := $00; b[144] := $26; b[145] := $C7;
- b[146] := $06; b[147] := $6C; b[148] := $00; b[149] := $3A; b[150] := $00;
- b[151] := $26; b[152] := $8C; b[153] := $0E; b[154] := $6E; b[155] := $00;
- b[156] := $C3; b[157] := $B8; b[158] := $00; b[159] := $00; b[160] := $8E;
- b[161] := $C0; b[162] := $A1; b[163] := $32; b[164] := $00; b[165] := $26;
- b[166] := $A3; b[167] := $6C; b[168] := $00; b[169] := $A1; b[170] := $34;
- b[171] := $00; b[172] := $26; b[173] := $A3; b[174] := $6E; b[175] := $00;
- b[176] := $C3; b[177] := $EB; b[178] := $06; b[179] := $B0; b[180] := $07;
- b[181] := $B4; b[182] := $0E; b[183] := $CD; b[184] := $10; b[185] := $BA;
- b[186] := $3B; b[187] := $00; b[188] := $B4; b[189] := $09; b[190] := $CD;
- b[191] := $21; b[192] := $BA; b[193] := $20; b[194] := $00; b[195] := $B4;
- b[196] := $0C; b[197] := $B0; b[198] := $0A; b[199] := $CD; b[200] := $21;
- b[201] := $8C; b[202] := $C8; b[203] := $8E; b[204] := $C0; b[205] := $BE;
- b[206] := $21; b[207] := $00; b[208] := $BF; b[209] := $0F; b[210] := $00;
- b[211] := $B5; b[212] := $00; b[213] := $8A; b[214] := $0C; b[215] := $3A;
- b[216] := $0D; b[217] := $75; b[218] := $D8; b[219] := $47; b[220] := $46;
- b[221] := $F3; b[222] := $A6; b[223] := $75; b[224] := $D2; b[225] := $BA;
- b[226] := $56; b[227] := $00; b[228] := $B4; b[229] := $09; b[230] := $CD;
- b[231] := $21; b[232] := $C3; b[233] := $1E; b[234] := $06; b[235] := $50;
- b[236] := $53; b[237] := $51; b[238] := $52; b[239] := $57; b[240] := $56;
- b[241] := $8C; b[242] := $C8; b[243] := $8E; b[244] := $D8; b[245] := $2E;
- b[246] := $C4; b[247] := $1E; b[248] := $36; b[249] := $00; b[250] := $26;
- b[251] := $8A; b[252] := $47; b[253] := $02; b[254] := $3C; b[255] := $00;
- b[256] := $75; b[257] := $03; b[258] := $EB; b[259] := $40; b[260] := $90;
- b[261] := $26; b[262] := $81; b[263] := $4F; b[264] := $03; b[265] := $03;
- b[266] := $80; b[267] := $EB; b[268] := $1D; b[269] := $90; b[270] := $26;
- b[271] := $81; b[272] := $4F; b[273] := $03; b[274] := $00; b[275] := $01;
- b[276] := $B8; b[277] := $00; b[278] := $00; b[279] := $8E; b[280] := $C0;
- b[281] := $8C; b[282] := $C8; b[283] := $8E; b[284] := $D8; b[285] := $B8;
- b[286] := $32; b[287] := $01; b[288] := $26; b[289] := $A3; b[290] := $98;
- b[291] := $01; b[292] := $8C; b[293] := $C8; b[294] := $26; b[295] := $A3;
- b[296] := $9A; b[297] := $01; b[298] := $5E; b[299] := $5F; b[300] := $5A;
- b[301] := $59; b[302] := $5B; b[303] := $58; b[304] := $07; b[305] := $1F;
- b[306] := $CB; b[307] := $1E; b[308] := $06; b[309] := $50; b[310] := $53;
- b[311] := $51; b[312] := $52; b[313] := $57; b[314] := $56; b[315] := $8C;
- b[316] := $C8; b[317] := $8E; b[318] := $D8; b[319] := $E8; b[320] := $6F;
- b[321] := $FF; b[322] := $EB; b[323] := $E6; b[324] := $06; b[325] := $FA;
- b[326] := $E8; b[327] := $34; b[328] := $FF; b[329] := $FB; b[330] := $E8;
- b[331] := $64; b[332] := $FF; b[333] := $FA; b[334] := $E8; b[335] := $4C;
- b[336] := $FF; b[337] := $FB; b[338] := $07; b[339] := $26; b[340] := $C7;
- b[341] := $47; b[342] := $0E; b[343] := $43; b[344] := $01; b[345] := $26;
- b[346] := $8C; b[347] := $4F; b[348] := $10; b[349] := $EB; b[350] := $AF;
-
- WriteLn ('');
- Write ('Enter Password: ');
- TextColor (BLACK);
- Read (pw);
- n := Ord (pw[0]);
- FOR i := 1 TO n+1 DO
- b[i+15] := w[i];
- Textcolor (CYAN);
- WriteLn (' ');
- WriteLn ('Creating TSS.SYS ....');
- BlockWrite (f1,b,4,i);
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Error in creating TSS.SYS.');
- Halt;
- END;
- Close (f1);
- WriteLn ('Creating CONFIG.SYS ....');
- WriteLn (f2,'DEVICE = ANSI.SYS');
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Error in creating CONFIG.SYS.');
- Halt;
- END;
- WriteLn (f2,'DEVICE = TSS.SYS');
- i := IOResult;
- IF i <> 0 THEN
- BEGIN
- TextColor (WHITE);
- WriteLn ('');
- WriteLn ('Error in creating CONFIG.SYS.');
- Halt;
- END;
- Close (f2);
- Write ('Strike any key to reboot ...');
- Read (KBD,c);
- ReBoot;
- END.