?? ng219ser.asm
字號:
model compact
.data
thirdpart db 'Stormingthepalace$'
querystr db 'Enter your soon to be registered name: $'
head db 'Newsgrabber 2.1.19 serial number generator!$'
sernumstr db 'Your serial number is: $'
creditstr db 'Cracked and brought to you by Lord Soth ICQ # 5178515$'
zerostr db 'ERROR: Zero length string.$'
serialnum db 16 DUP (0)
username db 256 DUP (0)
quarters db 16 DUP (0)
.code
.startup
.386C
MOV AH,0
MOV AL,3
INT 10h
MOV AX,0625h
MOV BH,1Fh
MOV CX,0000
MOV DX,184Fh
INT 10h
push ds
pop es
mov ah,13h
mov al,1
mov bh,0
mov bl,0eh
mov cx,2bh
mov dx,0
mov ebp,offset es:head
int 10h
MOV Ah,3
MOV BH,0
INT 10h
ADD DH,2
MOV AH,2
MOV DL,0
PUSH DX
MOV BH,0
INT 10h
POP DX
MOV AH,13h
MOV AL,1
MOV BX,1Fh
MOV CX,27h
MOV EBP,offset ES:querystr
INT 10h
MOV CX,0FFh
mov bx,0
LEA DI,username
KBread: MOV AH,0
INT 16h
MOV BX,CX
OR BX,0FF00h
NOT BX
CMP AH,1Ch
JZ CreateUserName
CMP AH,0Eh
JNZ store
CALL delchar
JMP Kbread
store: MOV [DI+BX],AL
MOV AH,0Ah
MOV BX,0
PUSH CX
MOV CX,1
INT 10h
MOV AH,3
MOV BX,0
INT 10h
INC DL
MOV AH,2
MOV BH,0
INT 10h
POP CX
LOOP KBread
CreateUserName :
NOT CL
CMP CL,0
JNZ contuser
JMP out_of_prog
contuser:
ADD DI,CX
MOV WORD PTR [DI],5157h
LEA SI,username
PUSH CX
PUSH CX
ADD DI,2
CLD
REP MOVSB
LEA SI,username
MOV WORD PTR [DI],5741h
ADD DI,2
POP CX
CLD
REP MOVSB
LEA SI,thirdpart
MOV CX,13h
CLD
REP MOVSB
POP CX
LEA SI,username
ADD SI,CX
MOV BX,0
MOV EDI,22h
initc: XOR ecx,ecx
MOV EAX,0
MOV EDX,0
calc: MOVSX EAX,BYTE PTR [SI+BX]
SUB EAX,41h
ADD EDI,EAX
INC BX
INC CX
CMP CX,4
JL calc
PUSH EDI
MOV EAX,EDI
MOV ECX,03E8h
CDQ
IDIV ECX
LEA DI,quarters
MOV [DI+BX-4],DX
POP EDX
MOV EDI,EDX
SHL EDX,4
ADD EDI,EDX
CMP BX,10h
JNZ initc
LEA SI,quarters
MOV BX,0
MOV CX,0
get3dig:MOV AX,[SI+BX]
CALL num2str
ADD BX,4
CMP BX,10h
JNZ get3dig
MOV AH,3
MOV BX,0
INT 10h
MOV DL,0
MOV AX,1301h
MOV BX,1Fh
MOV CX,17h
MOV EBP,offset sernumstr
INT 10h
MOV AH,3
MOV BX,0
INT 10h
MOV CX,10h
MOV AX,1301h
MOV BX,1Fh
MOV EBP,offset serialnum
INT 10h
MOV AH,3
MOV BX,0
INT 10h
ADD DH,3
MOV DL,0
MOV AX,1301h
MOV BX,1Fh
MOV CX,35h
MOV EBP,offset creditstr
INT 10h
POP BP
MOV AX,4C00h
INT 21h
out_of_prog :
MOV AH,3
MOV BX,0
INT 10h
MOV AX,1301h
MOV DL,0
ADD DH,3
MOV BX,1Fh
MOV CX,1Ah
MOV EBP,offset ES:zerostr
INT 10h
POP BP
MOV AX,4C00h
INT 21h
delchar PROC near
PUSH CX
PUSH AX
CMP BX,0
JZ nochars
MOV BYTE PTR [DI+BX],0
DEC BX
PUSH BX
MOV BH,0
MOV AH,3
INT 10h
DEC DL
MOV AH,2
MOV BH,0
INT 10h
MOV AX,0A20h
MOV BX,0
MOV CX,1
INT 10H
POP BX
POP AX
POP CX
INC CX
RET
nochars:MOV BX,0
POP AX
POP CX
MOV CX,0FFh
RET
delchar ENDP
num2str PROC near
PUSH BX
MOV BX,CX
LEA DI,serialnum
PUSH CX
MOV CX,64h
CWD
IDIV CX
ADD AX,30h
MOV [DI+BX],AL
SUB AX,30h
INC BX
MOV CX,0Ah
MOV AX,DX
CWD
IDIV CX
ADD AX,30h
ADD DX,30h
MOV [DI+BX],AL
INC BX
MOV [DI+BX],DL
INC BX
POP CX
MOV CX,BX
POP BX
RET
num2str ENDP
.exit
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -