⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sigprog.asm

📁 破解很多程序的序列号算法程序
💻 ASM
字号:
; Signature Program v3.0 Key Generator.
; CrackZ (21/06/98).
;
; Use tasm /zi sigprog.asm and then tlink /v sigprog
; to generate sigprog.exe

.MODEL SMALL
.STACK 100h
.386

.DATA

input   DB 22h,0                   
serial  DB 50h dup ('$')           
prompt  DB 'Input your Registration Name: ','$'
done    DB 'Your Registration Code is: ','$'
lf      DB 0ah,0dh,'$'
logo    DB 0ah,0dh, '--------------------------------------',0ah,0dh
	DB          ' Signature Program v3.0 Key Generator ',0ah,0dh
        DB          '     by CrackZ                        ',0ah,0dh
	DB          '--------------------------------------',0ah,0dh
	DB 0ah,0dh,'$'
        
.CODE

START:	MOV AX,@DATA
	MOV DS,AX
	MOV ES,AX
	LEA EDX,[logo]
	MOV AH,09h
	INT 21h			;Display Logo.
	LEA EDX,[prompt]
	MOV AH,09h
	INT 21h			;Prompt.
	LEA EDX,[input]		 
	MOV AH,0Ah
	INT 21h			;Get registration name.
	LEA EDX,[lf]
	MOV AH,09h
	INT 21h                     
	CMP BYTE PTR [input+1],00
	JE noname		;Jump no name entered.

	LEA EDI,input+2
	XOR EAX,EAX
	MOVZX EBX,BYTE PTR [EDI-01]	;Get length of name.
	PUSH EBX
	XOR ECX,ECX

loop1:  MOV AL, BYTE PTR [EDI+ECX]
	CMP AL,61h			;Check below 'a'.
	JB below
	CMP AL,7Ah			;Check above 'z'.
	JA below
	SUB AL,20h			;Uppercase char.
	MOV BYTE PTR [EDI+ECX],AL

below:	INC ECX
	DEC EBX
	TEST EBX,EBX
	JNZ loop1
	XOR EAX,EAX
	XOR ECX,ECX
	XOR ESI,ESI
	POP EBX

loop2:	MOV CL, BYTE PTR [EDI+EAX]	;Get character value.
	CMP CL,20h			;Check if its a space.
	JZ addin			;If it is, then jump.
	IMUL ECX,ECX			;Multiply it.
	ADD ESI,ECX			;Store result in ESI.
	JMP addin			;Jump to addin.

addin:	DEC EBX
	INC EAX
	XOR ECX,ECX			;Just make sure ECX is 0 for next character.
	TEST EBX, EBX
	JNZ loop2

	MOV EAX,93h			;EAX = 93h (147dec).
	IMUL EAX,ESI			;Multiply loop2 result with 93h.
	XOR EBX,EBX
	LEA EDI,[serial]
	XOR ECX,ECX
	MOV ECX,0Ah			;ECX moved to 10.

;Now to convert the result into an ASCII value for output.

loop3:	XOR EDX,EDX
	DIV ECX
	ADD EDX,30h
	PUSH EDX	
	INC EBX	
	TEST EAX,EAX
	JNZ loop3

loop4:	POP EDX				;Get character from the stack.
	MOV BYTE PTR [EDI+EAX],DL
	INC EAX
	TEST EBX,EBX   
	DEC EBX				;Decrement counter.
	JNZ loop4
	MOV BYTE PTR [EDI+EAX],'$'	;Paste end character to the registration code.

;Now lets output the string.   

	LEA EDX,[done]
	MOV AH,09h
	INT 21h				;Output.
	LEA EDX,[serial]
	MOV AH,09h
	INT 21h				;Print registration code.

noname:	LEA EDX,[lf]
	MOV AH,09h
	INT 21h
	MOV AX,4C00h
	INT 21h

END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -