home *** CD-ROM | disk | FTP | other *** search
- {$M 1024,0,0}
- uses
- DOS;
-
- const
- PrgName= 'TEST.EXE'; { Program to crack }
- Params= '';
-
- Drive= 0; { The data displayed by SHOWREAD.EXE }
- Head= 0; { You need to change these values }
- Track= 0; { for each program you crack. }
- Sector= 0;
- Count= 1;
- Size= 512;
-
- {$L saveread.obj} { The file created using BINOBJ }
- { from a saveread.xxx file }
- procedure Data; external;
-
- var
- Buffer :Pointer;
-
- procedure ReturnData;
- interrupt;
- begin
- Move(@Data^, Buffer^, Size);
- end;
-
- procedure CLast13;
- assembler;
- asm
- dd 0
- dw 0, 0, 0
- end;
-
- procedure Int13;
- assembler;
- asm
- cmp ah,2
- jne @@1
- cmp dx,Drive+(Head*256)
- jne @@1
- cmp cx,Sector+(Track*256)
- jne @@1
- cmp al,Count
- jne @@1
-
- push ds
- push ax
- mov ax,seg @DATA
- mov ds,ax
- pop ax
-
- mov word ptr Buffer,bx
- mov word ptr Buffer+2,es
-
- pushf
- push cs
- call ReturnData
-
- clc
-
- pop ds
- mov word ptr CLast13+4,ax
- mov word ptr CLast13+6,bx
- mov word ptr CLast13+8,cx
- pop ax
- pop bx
- pop cx
- push bx
- push ax
- mov ax,word ptr CLast13+4
- mov bx,word ptr CLast13+6
- mov cx,word ptr CLast13+8
- retf
-
- @@1:
- jmp dword ptr CLast13
- end;
-
- var
- Last13 :Pointer;
-
- begin
- WriteLn('Universal Crack Utility Copyright (c) 1994 by Sasha Peslyak');
-
- GetIntVec($13, Last13);
- asm
- mov ax,word ptr Last13
- mov word ptr CLast13,ax
- mov ax,word ptr Last13+2
- mov word ptr CLast13+2,ax
- end;
-
- SetIntVec($13, @Int13);
- SwapVectors;
- Exec(PrgName, Params);
- SwapVectors;
- SetIntVec($13, Last13);
- end.
-