home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Elite Hackers Toolkit
/
TheEliteHackersToolkitVolume1_1998.rar
/
HACKERS.BIN
/
appcraks
/
Q312CRK.ZIP
/
Q312CRK.TXT
< prev
Wrap
Text File
|
1990-01-01
|
5KB
|
150 lines
;put q312crk.com in a directory with quake2.exe v3.12 (315k) and
;type 'q312crk<enter>'
; Q2 cracking program no_cd
; works on ver 3.12
;
bits 16
org 0x100
segment .text
start:
mov dx,TITLEBAR
call PRSTRING ;print title
call OPENFILERW ;open Quake2
mov [FILEHANDLE],ax
mov dx,CHECKFLSZ
call PRSTRING
call SETPTR ;eof=0004EA00?
mov di,value
mov si,address
mov cx,0x1
mov dx,CRACKINGFILE
call PRSTRING
LOOP1:
push cx
call PTSTARTOF
call READFILE
call PTSTARTOF
call WRITEBYTE
add si,byte +0x4
add di,byte +0x2
pop cx
loop LOOP1
mov dx,SUCCESS
jmp short END1
PATCHERR:
mov dx,PATCHDIFF
jmp short END1
VERSIONERR:
mov dx,WRONGVER
jmp short END1
OPENERR:
mov dx,CANTOPEN
END1:
call PRSTRING ;display errcode and
call CLOSEFILE
mov ah,0x4c ;end program
int 0x21
PRSTRING:
push ax
mov ah,0x9 ;display string (ds:dx ptr up to '$')
int 0x21
pop ax
ret
OPENFILERW:
mov ah,0x3d ;open file w/ handle
mov al,0x2 ;mode openaccess read/write
mov dx,QUAKEX ;ds:dx ptr to filename
int 0x21
jc OPENERR
ret
CLOSEFILE:
mov ah,0x3e ;close file w/ handle
mov bx,[FILEHANDLE] ;ptr to handle
int 0x21
ret
SETPTR:
mov bx,ax ;flhandle
mov ax,0x4202 ;move fileptr (02=start@eof)
xor cx,cx ;ms16bits of offset=00
xor dx,dx ;ls16bits of offset=00
int 0x21
jc OPENERR
cmp ax,[VER1]
jnz VERSIONERR
cmp dx,[VER2]
jnz VERSIONERR
ret
READFILE:
mov ah,0x3f ;read file
mov bx,[FILEHANDLE]
mov cx,0x1 ;only one byte
mov dx,BUFFER1 ;ds:dx buffer to receive
int 0x21
mov ah,[BUFFER1]
cmp [di],ah ;look for 0x75 (jnz)
jnz PATCHERR
jc OPENERR
ret
WRITEBYTE:
mov ah,0x40 ;write device
mov bx,[FILEHANDLE]
mov cx,0x1 ;one byte
mov dx,di ;ptr to data source+1
inc dx ;write 0xEB (jmpshort)
int 0x21
jc OPENERR
ret
PTSTARTOF:
mov ah,0x42 ;move file ptr
mov al,0x0 ;start @ beginning of file
mov bx,[FILEHANDLE]
mov dx,[si] ;msw offset
mov cx,[si+0x2] ;lsw offset
int 0x21
jnc RETURN
jmp short OPENERR
RETURN:
ret
; text messages from here
FILEHANDLE: db 0,0
VER1: db 0,0xEA
VER2: db 0x04,0
BUFFER1: db 0
QUAKEX: db "QUAKE2.EXE"
db 0
address: db 0x08,0xE5,0x02,0
value: db 0x75,0xEB
TITLEBAR: db "[No_cd FOR QUAKE2.EXE v3.12 BY MDSE Machines D"
db "ivision... Opening file :$"
CHECKFLSZ: db "OK!"
db 0x0d,0x0A,0xFE
db " Filesize=0004EA00? $"
CRACKINGFILE: db "OK!"
db 0x0d,0x0A,0xFE
db " Jnz>JmpShort@0002E508$"
SUCCESS: db "OK!"
db 0x0d,0x0A,0xFE
db " Done. "
db 0x0d,0x0A
db "$"
PATCHDIFF: db "Frag!"
db 0x0d
db 0x0A,0xFE
db " File already patched or different."
db 0x0d,0x0A
db "$"
WRONGVER: db "Frag!"
db 0x0d,0x0A,0xFE
db " File is packed or wrong version"
db "!"
db 0x0d,0x0A
db "$"
CANTOPEN: db "Frag!"
db 0x0d,0x0A,0xFE
db " Can't open file !!"
db 0x0d
db 0x0A,"$"