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

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. unsigned int crc16(char* name)
  5. {
  6.     unsigned int res;
  7.  
  8. asm {
  9.    xor    ax,ax
  10.    xor    si,si
  11. }
  12. _loc1:
  13. asm {
  14.    xor    dx,dx
  15.    mov    cx,ax
  16.    mov    di,name
  17.    add    di,si
  18.    mov    dl,byte ptr ss:[di]
  19.    xor    cx,dx
  20.    and    cx,0x000F
  21.    mov    bx,cx
  22.    shl    bx,0x05
  23.    add    bx,cx
  24.    shl    bx,0x07
  25.    add    cx,bx
  26.    shr    ax,0x04
  27.    xor    cx,ax
  28.    mov    ax,cx
  29.    shr    dx,0x04
  30.    and    ax,0x000F
  31.    and    dx,0x000F
  32.    xor    ax,dx
  33.    mov    dx,ax
  34.    shl    dx,0x05
  35.    add    dx,ax
  36.    shl    dx,0x07
  37.    add    ax,dx
  38.    shr    cx,0x04
  39.    xor    ax,cx
  40.    inc    si
  41.    cmp    si,0x0020
  42.    jl     _loc1
  43.    mov    res,ax
  44. }
  45.     return res;
  46. }
  47.  
  48. void genserial(char* name, char* ser)
  49. {
  50.     unsigned int crc;
  51.     int i;
  52.  
  53.     for (i=strlen(name); i<0x20; i++)
  54.         name[i] = ' ';
  55.     name[0x20] = 0;
  56.     crc = crc16(name);
  57.     srand(crc);
  58.     //printf("crc16=%x\n", crc);
  59.     sprintf(ser, "%03d%06u%05d", rand() / 33, crc+3, rand());
  60. }
  61.  
  62. void main()
  63. {
  64.     char uname[100];
  65.     char serial[30];
  66.  
  67.     printf("ChromaPIX Serial# generator (by fOSSiL)\n");
  68.     printf("\nEnter User Name\n> ");
  69.     gets(uname);
  70.     genserial(uname, serial);
  71.     printf("\nSerial Number : %s\n", serial);
  72. }