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

📄 chkey.asm

📁 破解很多程序的序列号算法程序
💻 ASM
字号:
.386 ;v3.1



_STACK SEGMENT STACK

dw 100h dup (?)

_STACK ENDS



_DATA SEGMENT

DATACOUNT dw 0

DATA1 db 'HEXAMELIAN'

DATA2 db 0,0,0,02Dh

DATA3 db 0,0,0,0,02Dh

DATA4 db 0,0,0,0

ALSO_MSG db 'Cygnus Hex Edit is not Case Sensitive. UCF=ucf also',0

ADDCOUNTER db 1

LINE1 equ 0B878h

REGMEMNAMECNTR dw 0

ACTUAL_LETTERS dw 0

RED db 0

GREEN db 0

BLUE db 0

COLOR db 63

ISTHEREANERROR db 0

INIT equ 1Fh

INIT_COLOR equ 01F7Eh

NAME_COLOR equ 1Fh

NUM_COLOR equ 1Fh

PRINT_NUM_CNT dw 22 ;and video address

ERROR_MSG_COLOR equ 0Ch

ERROR db 'Sorry bud, please read the instructions',0

LOGO db 9 dup (0dh,0ah)

     db 'Type Name and Company, I.e. NAMECOMPANY-10 char min-',0dh,0ah

     db 'Cygnus Hex Editor 1.5 Keygen/tIE - greetz to UCF',0dh,0ah,0dh,0ah

     db 'Name+Compa:$'

SERIAL db 0dh,0ah,'    Serial:$'

NAMENOVMEM db 40 dup (0)

_DATA ENDS



_TEXT SEGMENT use16

  Assume CS:_TEXT, DS:_DATA, ES:_DATA, SS:_STACK

INTRO:

  mov ax,0003h

  int 10h

  mov ax,_DATA

  mov ds,ax

  mov ax,1015h

  mov bx,0007h

  int 10h

  mov GREEN,ch

  mov BLUE,cl

  mov RED,dh

  lea dx,LOGO

  mov ah,9

  int 21h

  call CLASS

  cld

  sub di,58 ;numbe of char *2

  jmp DISPLAY_TEXT



ERROR_1:

  call ERROR_MSG

DISPLAY_TEXT:

  call ASK

  cmp ISTHEREANERROR,1

  jz ERROR_1

  call ENKRYPT

QUIT:

  call WRI_HEX_DIG

  call RESET_PAL

  call ALSO

  mov ax,4c00h

  int 21h



WRI_HEX_DIG Proc

  push di

  push ax

  push dx

  cld

  mov di,LINE1+10

  mov es,di

  mov di,PRINT_NUM_CNT

  lea si,DATA2

L00PWRITE:

  lodsb

  mov ah,NUM_COLOR

  stosw

  or al,al

  jnz L00PWRITE

  pop dx

  pop ax

  pop di

  ret

WRI_HEX_DIG EndP

CLASS Proc

  mov bx,LINE1

  mov es,bx

  mov di,22

  mov ax,INIT_COLOR

  mov cx,29

  rep stosw

  mov ax,1000h

  xor bx,bx

  mov dx,1000h

  int 10h

  ret

CLASS EndP

DEL_ERR_MSG Proc

  push cx

  push ax

  push si

  push di

  push es

  mov di,LINE1-10

  mov es,di

  mov di,0

  xor ax,ax

  mov cx,40

  rep stosw

  pop es

  pop di

  pop si

  pop ax

  pop cx

  ret

DEL_ERR_MSG EndP

ERROR_MSG Proc

  push ax

  push esi

  push es

  push di

  dec ISTHEREANERROR

  mov di,LINE1-10

  mov es,di

  mov di,0

  mov esi,offset ERROR

  cld

ERROR_1_1:

  lodsb

  mov ah,ERROR_MSG_COLOR

  stosw

  cmp al,0

  jne ERROR_1_1

  pop di

  pop es

  pop esi

  pop ax

  ret

ERROR_MSG EndP

ASK Proc

STOP_1:

  call FLASHNOW

  xor ah,ah

  int 16h

  call DEL_ERR_MSG

  cmp al,0dh

  jz DONE

  cmp al,08h

  jz NO_SAVE

  cmp ACTUAL_LETTERS,29

  jz ERROR_DONE

IS_IT_NUM:

  cmp al,39h

  jle SAVE

  and al,05fh

  jmp short SAVE

NO_SAVE:

  cmp ACTUAL_LETTERS,0

  jz ERROR_DONE

  std

  push ax

  dec di

  dec di

  mov ax,INIT_COLOR

  stosw

  inc di

  inc di

  pop ax

  cld

  dec ACTUAL_LETTERS

  dec ACTUAL_LETTERS

  dec REGMEMNAMECNTR

  jmp short BLAH

SAVE:

  mov ah,NAME_COLOR

  stosw

  call SAVEINREGMEM

BLAH:

  inc ACTUAL_LETTERS

  jmp STOP_1

ERROR_DONE:

  mov ISTHEREANERROR,1

  ret

DONE:

  cmp ACTUAL_LETTERS,0

  jz ERROR_DONE

  cmp ACTUAL_LETTERS,10

  jl ERROR_DONE

  ret

ASK EndP

FLASHNOW Proc

  push ax

  push bx

  push cx

  push dx

  mov ax,1010h

  xor bh,bh

  mov bl,7

  mov cl,COLOR

  mov dh,COLOR

  mov ch,COLOR

 REDO:

  mov ax,1010h

  mov cl,COLOR

  mov ch,COLOR

  mov dh,COLOR

  int 10h

  dec COLOR

  or cl,cl

  jnz QUIT_COLOR

  mov COLOR,63

 QUIT_COLOR:

  pop dx

  pop cx

  pop bx

  pop ax

  ret

FLASHNOW EndP

RESET_PAL Proc

  mov ax,1010h

  xor bh,bh

  mov bl,7

  mov ch,GREEN

  mov cl,BLUE

  mov dh,RED

  int 10h

  ret

RESET_PAL EndP

SAVEINREGMEM Proc

  push es

  push ax

  push di

  push ds

  pop es

  mov edi,offset NAMENOVMEM

  add di,REGMEMNAMECNTR

  stosb

  inc REGMEMNAMECNTR

  pop di

  pop ax

  pop es

  ret

SAVEINREGMEM EndP

ENKRYPT Proc

  push ax

  mov ah,09

  push dx

  lea dx,SERIAL

  int 21h

  pop dx

  pop ax

  xor eax,eax

  cld

  xor edx,edx

  mov ecx,0ah

  xor ebx,ebx

  mov esi,offset NAMENOVMEM

L00P:

  lea ebx,DATA1

  lodsb

  cmp al,20h

  jz L00P

  add al,ADDCOUNTER

  mov bp,ax

  cdq

  idiv ecx

  movsx eax,[ebx+edx]

  add ax,bp

  xor edx,edx

  cdq

  idiv ecx

  add dx,30h

  push di

  lea di,DATA4

  add di,DATACOUNT

  mov [di],dl

  pop di

  inc DATACOUNT

  inc ADDCOUNTER

  cmp ADDCOUNTER,4

  jnz L00P

  mov DATACOUNT,0

L00P2:

  lea ebx,DATA1

  lodsb

  cmp al,20h

  jz L00P2

  add al,ADDCOUNTER

  mov bp,ax

  cdq

  idiv ecx

  movsx eax,[ebx+edx]

  add ax,bp

  xor edx,edx

  cdq

  idiv ecx

  add dx,30h

  push di

  lea di,DATA2

  add di,DATACOUNT

  mov [di],dl

  pop di

  inc DATACOUNT

  inc ADDCOUNTER

  cmp ADDCOUNTER,07

  jnz L00P2

  mov DATACOUNT,0

L00P3:

  lea ebx,DATA1

  lodsb

  cmp al,20h

  jz L00P3

  add al,ADDCOUNTER

  mov bp,ax

  cdq

  idiv ecx

  movsx eax,[ebx+edx]

  add ax,bp

  xor edx,edx

  cdq

  idiv ecx

  add dx,30h

  push di

  lea di,DATA3

  add di,DATACOUNT

  mov [di],dl

  pop di

  inc DATACOUNT

  inc ADDCOUNTER

  cmp ADDCOUNTER,0Bh

  jnz L00P3

RETURN:

  ret           ;value in ecx

ENKRYPT EndP

ALSO Proc

  push ax

  push esi

  push es

  push di

  mov di,LINE1-10

  mov es,di

  mov di,0

  mov esi,offset ALSO_MSG

  cld

ALSO_1_1:

  lodsb

  mov ah,ERROR_MSG_COLOR

  stosw

  cmp al,0

  jne ALSO_1_1

  pop di

  pop es

  pop esi

  pop ax

  ret

ALSO EndP

_TEXT ENDS

END INTRO

⌨️ 快捷键说明

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