home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Quantico / km / chkey.asm.txt < prev    next >
Encoding:
Text File  |  2000-05-25  |  5.7 KB  |  367 lines

  1. .386 ;v3.1
  2.  
  3.  
  4.  
  5. _STACK SEGMENT STACK
  6.  
  7. dw 100h dup (?)
  8.  
  9. _STACK ENDS
  10.  
  11.  
  12.  
  13. _DATA SEGMENT
  14.  
  15. DATACOUNT dw 0
  16.  
  17. DATA1 db 'HEXAMELIAN'
  18.  
  19. DATA2 db 0,0,0,02Dh
  20.  
  21. DATA3 db 0,0,0,0,02Dh
  22.  
  23. DATA4 db 0,0,0,0
  24.  
  25. ALSO_MSG db 'Cygnus Hex Edit is not Case Sensitive. UCF=ucf also',0
  26.  
  27. ADDCOUNTER db 1
  28.  
  29. LINE1 equ 0B878h
  30.  
  31. REGMEMNAMECNTR dw 0
  32.  
  33. ACTUAL_LETTERS dw 0
  34.  
  35. RED db 0
  36.  
  37. GREEN db 0
  38.  
  39. BLUE db 0
  40.  
  41. COLOR db 63
  42.  
  43. ISTHEREANERROR db 0
  44.  
  45. INIT equ 1Fh
  46.  
  47. INIT_COLOR equ 01F7Eh
  48.  
  49. NAME_COLOR equ 1Fh
  50.  
  51. NUM_COLOR equ 1Fh
  52.  
  53. PRINT_NUM_CNT dw 22 ;and video address
  54.  
  55. ERROR_MSG_COLOR equ 0Ch
  56.  
  57. ERROR db 'Sorry bud, please read the instructions',0
  58.  
  59. LOGO db 9 dup (0dh,0ah)
  60.  
  61.      db 'Type Name and Company, I.e. NAMECOMPANY-10 char min-',0dh,0ah
  62.  
  63.      db 'Cygnus Hex Editor 1.5 Keygen/tIE - greetz to UCF',0dh,0ah,0dh,0ah
  64.  
  65.      db 'Name+Compa:$'
  66.  
  67. SERIAL db 0dh,0ah,'    Serial:$'
  68.  
  69. NAMENOVMEM db 40 dup (0)
  70.  
  71. _DATA ENDS
  72.  
  73.  
  74.  
  75. _TEXT SEGMENT use16
  76.  
  77.   Assume CS:_TEXT, DS:_DATA, ES:_DATA, SS:_STACK
  78.  
  79. INTRO:
  80.  
  81.   mov ax,0003h
  82.  
  83.   int 10h
  84.  
  85.   mov ax,_DATA
  86.  
  87.   mov ds,ax
  88.  
  89.   mov ax,1015h
  90.  
  91.   mov bx,0007h
  92.  
  93.   int 10h
  94.  
  95.   mov GREEN,ch
  96.  
  97.   mov BLUE,cl
  98.  
  99.   mov RED,dh
  100.  
  101.   lea dx,LOGO
  102.  
  103.   mov ah,9
  104.  
  105.   int 21h
  106.  
  107.   call CLASS
  108.  
  109.   cld
  110.  
  111.   sub di,58 ;numbe of char *2
  112.  
  113.   jmp DISPLAY_TEXT
  114.  
  115.  
  116.  
  117. ERROR_1:
  118.  
  119.   call ERROR_MSG
  120.  
  121. DISPLAY_TEXT:
  122.  
  123.   call ASK
  124.  
  125.   cmp ISTHEREANERROR,1
  126.  
  127.   jz ERROR_1
  128.  
  129.   call ENKRYPT
  130.  
  131. QUIT:
  132.  
  133.   call WRI_HEX_DIG
  134.  
  135.   call RESET_PAL
  136.  
  137.   call ALSO
  138.  
  139.   mov ax,4c00h
  140.  
  141.   int 21h
  142.  
  143.  
  144.  
  145. WRI_HEX_DIG Proc
  146.  
  147.   push di
  148.  
  149.   push ax
  150.  
  151.   push dx
  152.  
  153.   cld
  154.  
  155.   mov di,LINE1+10
  156.  
  157.   mov es,di
  158.  
  159.   mov di,PRINT_NUM_CNT
  160.  
  161.   lea si,DATA2
  162.  
  163. L00PWRITE:
  164.  
  165.   lodsb
  166.  
  167.   mov ah,NUM_COLOR
  168.  
  169.   stosw
  170.  
  171.   or al,al
  172.  
  173.   jnz L00PWRITE
  174.  
  175.   pop dx
  176.  
  177.   pop ax
  178.  
  179.   pop di
  180.  
  181.   ret
  182.  
  183. WRI_HEX_DIG EndP
  184.  
  185. CLASS Proc
  186.  
  187.   mov bx,LINE1
  188.  
  189.   mov es,bx
  190.  
  191.   mov di,22
  192.  
  193.   mov ax,INIT_COLOR
  194.  
  195.   mov cx,29
  196.  
  197.   rep stosw
  198.  
  199.   mov ax,1000h
  200.  
  201.   xor bx,bx
  202.  
  203.   mov dx,1000h
  204.  
  205.   int 10h
  206.  
  207.   ret
  208.  
  209. CLASS EndP
  210.  
  211. DEL_ERR_MSG Proc
  212.  
  213.   push cx
  214.  
  215.   push ax
  216.  
  217.   push si
  218.  
  219.   push di
  220.  
  221.   push es
  222.  
  223.   mov di,LINE1-10
  224.  
  225.   mov es,di
  226.  
  227.   mov di,0
  228.  
  229.   xor ax,ax
  230.  
  231.   mov cx,40
  232.  
  233.   rep stosw
  234.  
  235.   pop es
  236.  
  237.   pop di
  238.  
  239.   pop si
  240.  
  241.   pop ax
  242.  
  243.   pop cx
  244.  
  245.   ret
  246.  
  247. DEL_ERR_MSG EndP
  248.  
  249. ERROR_MSG Proc
  250.  
  251.   push ax
  252.  
  253.   push esi
  254.  
  255.   push es
  256.  
  257.   push di
  258.  
  259.   dec ISTHEREANERROR
  260.  
  261.   mov di,LINE1-10
  262.  
  263.   mov es,di
  264.  
  265.   mov di,0
  266.  
  267.   mov esi,offset ERROR
  268.  
  269.   cld
  270.  
  271. ERROR_1_1:
  272.  
  273.   lodsb
  274.  
  275.   mov ah,ERROR_MSG_COLOR
  276.  
  277.   stosw
  278.  
  279.   cmp al,0
  280.  
  281.   jne ERROR_1_1
  282.  
  283.   pop di
  284.  
  285.   pop es
  286.  
  287.   pop esi
  288.  
  289.   pop ax
  290.  
  291.   ret
  292.  
  293. ERROR_MSG EndP
  294.  
  295. ASK Proc
  296.  
  297. STOP_1:
  298.  
  299.   call FLASHNOW
  300.  
  301.   xor ah,ah
  302.  
  303.   int 16h
  304.  
  305.   call DEL_ERR_MSG
  306.  
  307.   cmp al,0dh
  308.  
  309.   jz DONE
  310.  
  311.   cmp al,08h
  312.  
  313.   jz NO_SAVE
  314.  
  315.   cmp ACTUAL_LETTERS,29
  316.  
  317.   jz ERROR_DONE
  318.  
  319. IS_IT_NUM:
  320.  
  321.   cmp al,39h
  322.  
  323.   jle SAVE
  324.  
  325.   and al,05fh
  326.  
  327.   jmp short SAVE
  328.  
  329. NO_SAVE:
  330.  
  331.   cmp ACTUAL_LETTERS,0
  332.  
  333.   jz ERROR_DONE
  334.  
  335.   std
  336.  
  337.   push ax
  338.  
  339.   dec di
  340.  
  341.   dec di
  342.  
  343.   mov ax,INIT_COLOR
  344.  
  345.   stosw
  346.  
  347.   inc di
  348.  
  349.   inc di
  350.  
  351.   pop ax
  352.  
  353.   cld
  354.  
  355.   dec ACTUAL_LETTERS
  356.  
  357.   dec ACTUAL_LETTERS
  358.  
  359.   dec REGMEMNAMECNTR
  360.  
  361.   jmp short BLAH
  362.  
  363. SAVE:
  364.  
  365.   mov ah,NAME_COLOR
  366.  
  367.   stosw
  368.  
  369.   call SAVEINREGMEM
  370.  
  371. BLAH:
  372.  
  373.   inc ACTUAL_LETTERS
  374.  
  375.   jmp STOP_1
  376.  
  377. ERROR_DONE:
  378.  
  379.   mov ISTHEREANERROR,1
  380.  
  381.   ret
  382.  
  383. DONE:
  384.  
  385.   cmp ACTUAL_LETTERS,0
  386.  
  387.   jz ERROR_DONE
  388.  
  389.   cmp ACTUAL_LETTERS,10
  390.  
  391.   jl ERROR_DONE
  392.  
  393.   ret
  394.  
  395. ASK EndP
  396.  
  397. FLASHNOW Proc
  398.  
  399.   push ax
  400.  
  401.   push bx
  402.  
  403.   push cx
  404.  
  405.   push dx
  406.  
  407.   mov ax,1010h
  408.  
  409.   xor bh,bh
  410.  
  411.   mov bl,7
  412.  
  413.   mov cl,COLOR
  414.  
  415.   mov dh,COLOR
  416.  
  417.   mov ch,COLOR
  418.  
  419.  REDO:
  420.  
  421.   mov ax,1010h
  422.  
  423.   mov cl,COLOR
  424.  
  425.   mov ch,COLOR
  426.  
  427.   mov dh,COLOR
  428.  
  429.   int 10h
  430.  
  431.   dec COLOR
  432.  
  433.   or cl,cl
  434.  
  435.   jnz QUIT_COLOR
  436.  
  437.   mov COLOR,63
  438.  
  439.  QUIT_COLOR:
  440.  
  441.   pop dx
  442.  
  443.   pop cx
  444.  
  445.   pop bx
  446.  
  447.   pop ax
  448.  
  449.   ret
  450.  
  451. FLASHNOW EndP
  452.  
  453. RESET_PAL Proc
  454.  
  455.   mov ax,1010h
  456.  
  457.   xor bh,bh
  458.  
  459.   mov bl,7
  460.  
  461.   mov ch,GREEN
  462.  
  463.   mov cl,BLUE
  464.  
  465.   mov dh,RED
  466.  
  467.   int 10h
  468.  
  469.   ret
  470.  
  471. RESET_PAL EndP
  472.  
  473. SAVEINREGMEM Proc
  474.  
  475.   push es
  476.  
  477.   push ax
  478.  
  479.   push di
  480.  
  481.   push ds
  482.  
  483.   pop es
  484.  
  485.   mov edi,offset NAMENOVMEM
  486.  
  487.   add di,REGMEMNAMECNTR
  488.  
  489.   stosb
  490.  
  491.   inc REGMEMNAMECNTR
  492.  
  493.   pop di
  494.  
  495.   pop ax
  496.  
  497.   pop es
  498.  
  499.   ret
  500.  
  501. SAVEINREGMEM EndP
  502.  
  503. ENKRYPT Proc
  504.  
  505.   push ax
  506.  
  507.   mov ah,09
  508.  
  509.   push dx
  510.  
  511.   lea dx,SERIAL
  512.  
  513.   int 21h
  514.  
  515.   pop dx
  516.  
  517.   pop ax
  518.  
  519.   xor eax,eax
  520.  
  521.   cld
  522.  
  523.   xor edx,edx
  524.  
  525.   mov ecx,0ah
  526.  
  527.   xor ebx,ebx
  528.  
  529.   mov esi,offset NAMENOVMEM
  530.  
  531. L00P:
  532.  
  533.   lea ebx,DATA1
  534.  
  535.   lodsb
  536.  
  537.   cmp al,20h
  538.  
  539.   jz L00P
  540.  
  541.   add al,ADDCOUNTER
  542.  
  543.   mov bp,ax
  544.  
  545.   cdq
  546.  
  547.   idiv ecx
  548.  
  549.   movsx eax,[ebx+edx]
  550.  
  551.   add ax,bp
  552.  
  553.   xor edx,edx
  554.  
  555.   cdq
  556.  
  557.   idiv ecx
  558.  
  559.   add dx,30h
  560.  
  561.   push di
  562.  
  563.   lea di,DATA4
  564.  
  565.   add di,DATACOUNT
  566.  
  567.   mov [di],dl
  568.  
  569.   pop di
  570.  
  571.   inc DATACOUNT
  572.  
  573.   inc ADDCOUNTER
  574.  
  575.   cmp ADDCOUNTER,4
  576.  
  577.   jnz L00P
  578.  
  579.   mov DATACOUNT,0
  580.  
  581. L00P2:
  582.  
  583.   lea ebx,DATA1
  584.  
  585.   lodsb
  586.  
  587.   cmp al,20h
  588.  
  589.   jz L00P2
  590.  
  591.   add al,ADDCOUNTER
  592.  
  593.   mov bp,ax
  594.  
  595.   cdq
  596.  
  597.   idiv ecx
  598.  
  599.   movsx eax,[ebx+edx]
  600.  
  601.   add ax,bp
  602.  
  603.   xor edx,edx
  604.  
  605.   cdq
  606.  
  607.   idiv ecx
  608.  
  609.   add dx,30h
  610.  
  611.   push di
  612.  
  613.   lea di,DATA2
  614.  
  615.   add di,DATACOUNT
  616.  
  617.   mov [di],dl
  618.  
  619.   pop di
  620.  
  621.   inc DATACOUNT
  622.  
  623.   inc ADDCOUNTER
  624.  
  625.   cmp ADDCOUNTER,07
  626.  
  627.   jnz L00P2
  628.  
  629.   mov DATACOUNT,0
  630.  
  631. L00P3:
  632.  
  633.   lea ebx,DATA1
  634.  
  635.   lodsb
  636.  
  637.   cmp al,20h
  638.  
  639.   jz L00P3
  640.  
  641.   add al,ADDCOUNTER
  642.  
  643.   mov bp,ax
  644.  
  645.   cdq
  646.  
  647.   idiv ecx
  648.  
  649.   movsx eax,[ebx+edx]
  650.  
  651.   add ax,bp
  652.  
  653.   xor edx,edx
  654.  
  655.   cdq
  656.  
  657.   idiv ecx
  658.  
  659.   add dx,30h
  660.  
  661.   push di
  662.  
  663.   lea di,DATA3
  664.  
  665.   add di,DATACOUNT
  666.  
  667.   mov [di],dl
  668.  
  669.   pop di
  670.  
  671.   inc DATACOUNT
  672.  
  673.   inc ADDCOUNTER
  674.  
  675.   cmp ADDCOUNTER,0Bh
  676.  
  677.   jnz L00P3
  678.  
  679. RETURN:
  680.  
  681.   ret           ;value in ecx
  682.  
  683. ENKRYPT EndP
  684.  
  685. ALSO Proc
  686.  
  687.   push ax
  688.  
  689.   push esi
  690.  
  691.   push es
  692.  
  693.   push di
  694.  
  695.   mov di,LINE1-10
  696.  
  697.   mov es,di
  698.  
  699.   mov di,0
  700.  
  701.   mov esi,offset ALSO_MSG
  702.  
  703.   cld
  704.  
  705. ALSO_1_1:
  706.  
  707.   lodsb
  708.  
  709.   mov ah,ERROR_MSG_COLOR
  710.  
  711.   stosw
  712.  
  713.   cmp al,0
  714.  
  715.   jne ALSO_1_1
  716.  
  717.   pop di
  718.  
  719.   pop es
  720.  
  721.   pop esi
  722.  
  723.   pop ax
  724.  
  725.   ret
  726.  
  727. ALSO EndP
  728.  
  729. _TEXT ENDS
  730.  
  731. END INTRO
  732.  
  733.