home *** CD-ROM | disk | FTP | other *** search
- {$M $1000,0,0 } { 2K stack, no heap }
- USES Crt, Dos;
- CONST
- KEY1 = 87 ; { F11 }
-
- VAR
- KbdIntVec : PROCEDURE ;
- TIMEINTVEC : PROCEDURE ;
- REG : REGISTERS;
- PSP : WORD ABSOLUTE $0:$EF*4;
- INT_TABLE : ARRAY[1..1024] OF BYTE ABSOLUTE $0:$0;
- INT_SAVE : ARRAY[1..1024] OF BYTE ;
- INT_SAVE1 : ARRAY[1..1024] OF BYTE ;
- INV : WORD ;
- TCW : FILE ;
- MODE : BYTE ;
- PAGE : BYTE ;
- NO : BYTE ;
- SEGS : WORD ;
- OFFS : WORD ;
- BUSY : BOOLEAN ;
- SAFE : ^BYTE ;
- WORK : BOOLEAN ;
- SCREEN : ^BYTE ;
- I : INTEGER ;
- TEMP : BYTE ;
- SIZE : WORD ;
- {$F+}
-
- PROCEDURE GetGraph ; INTERRUPT ;
- VAR
- INT_SAVE2 : ARRAY[1..1024] OF BYTE ;
- BEGIN
- INLINE ( $9C ) ;
- KBDINTVEC ;
- MOVE(INT_SAVE,INT_TABLE,1024);
- WORK := FALSE ;
- SEGS:=$1200; OFFS:=$0;
- REPEAT
- INC(OFFS);
- IF MEM[SEGS:OFFS ] = $83 THEN
- IF MEM[SEGS:OFFS+1] = $3E THEN
- IF MEM[SEGS:OFFS+2] = $F0 THEN
- IF MEM[SEGS:OFFS+3] = $07 THEN
- IF MEM[SEGS:OFFS+4] = $00 THEN
- IF MEM[SEGS:OFFS+5] = $75 THEN
- IF MEM[SEGS:OFFS+6] = $0B THEN
- WORK:=TRUE;
- UNTIL (WORK) OR (OFFS=$FFFA);
- IF WORK THEN
- BEGIN
- WRITE(^G^G^G);
- MEM[SEGS:OFFS ] := $C7 ;
- MEM[SEGS:OFFS+1] := $06 ;
- MEM[SEGS:OFFS+2] := $F0 ;
- MEM[SEGS:OFFS+3] := $07 ;
- MEM[SEGS:OFFS+4] := $00 ;
- MEM[SEGS:OFFS+5] := $00 ;
- MEM[SEGS:OFFS+6] := $90 ;
- END
- ELSE
- WRITE(^G);
-
- MOVE(INT_SAVE1,INT_TABLE,1024);
- END ;
-
- PROCEDURE NEWINT8 ; INTERRUPT ;
- BEGIN
- IF PORT[$60] = KEY1 THEN
- BEGIN
- MOVE(INT_TABLE,INT_SAVE1,1024);
- BUSY := TRUE ;
- SEGS := MEMW[ $0:9*4+2 ] ;
- OFFS := MEMW[ $0:9*4 ] ;
- @KBDINTVEC := PTR ( SEGS,OFFS ) ;
- MEMW[ $0:9*4+2 ] := SEG ( GETGRAPH ) ;
- MEMW[ $0:9*4 ] := OFS ( GETGRAPH ) ;
- write(^g);
- END ;
- INLINE ($9C);
- TIMEINTVEC ;
- END ;
-
-
- {$F-}
-
- {======================== M A I N *** P R O G R A M =====================}
- BEGIN
- IF MEMW[$0:254 SHL 2] <> $1234 THEN
- BEGIN
- REG.AH := $34 ;
- MSDOS ( REG ) ;
- SAFE := PTR ( REG.ES,REG.BX ) ;
- BUSY := FALSE ;
- WORK := FALSE ;
- NO := 0 ;
- PSP := PREFIXSEG ;
- MEMW[$0:254 SHL 2] := $1234 ;
- GetIntVec($9,@KbdIntVec );
- GetIntVec($8,@TIMEINTVEC);
- MEMW[$0:252 SHL 2] := MEMW[$0:$8 SHL 2] ;
- MEMW[$0:252 SHL 2+2] := MEMW[$0:$8 SHL 2+2] ;
- MOVE(INT_TABLE,INT_SAVE,1024);
- SetIntVec($8,Addr(NEWINT8));
- WRITELN (#7,'Cracker of RS2 Installed !!') ;
- WRITELN ('Press F11 to crack RS2 (at password screen) .....');
- WRITELN ('**** Program design by Leu S.S. ****');
- delay(4000);
- KEEP ( DosExitCode ) ;
- END
- ELSE
- BEGIN
- MEMW[$0:$8 SHL 2]:= MEMW[$0:252 SHL 2] ;
- MEMW[$0:$8 SHL 2+2]:= MEMW[$0:252 SHL 2+2] ;
- MEMW[$0:254 SHL 2] := $FFFF ;
- INV := MEMW [PSP:$2C];
- REG.ES := INV ;
- REG.AH := $49 ;
- MSDOS ( REG ) ;
- REG.ES := psp ;
- REG.AH := $49 ;
- MSDOS ( REG ) ;
- WRITELN ( #7,'Cracker of RS2 Removed !!') ;
- END ;
- END .