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

  1. #include <time.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. unsigned char serbuf[8] = {0xff, 0x10, 0xff, 0x15, 0xfa, 0xff, 0xff, 0xff};
  7.  
  8.  
  9. char xorsum(char *buf, int len)
  10. {
  11.     int i;
  12.     char res = 0xbc;
  13.  
  14.     for (i=0; i < len; i++)
  15.         if (isalnum(buf[i]))
  16.             res ^= toupper(buf[i]);
  17.  
  18.     return res;
  19. }
  20.  
  21. void gennum(char *buf)
  22. {
  23.     long int val;
  24.  
  25.     randomize();
  26.     val = ((long int)rand()) * 27 + 100000;
  27.     sprintf(buf, "%06lu", val);
  28. }
  29.  
  30. void genserial()
  31. {
  32.     char name[101], ser[31], buf1[30] = "\0", buf2[4] = "\0";
  33.     int i;
  34.  
  35.     printf("Enter the name that will appear in your XpertRule info\n> ");
  36.     gets(name);
  37.  
  38.     serbuf[2] = xorsum(name, strlen(name));
  39.  
  40.     gennum(buf1);
  41.     sscanf(buf1, "%2x%2x%2x", &serbuf[5], &serbuf[6], &serbuf[7]);
  42.  
  43.     buf1[0] = 0;
  44.     for (i=1; i<8; i++) {
  45.         sprintf(buf2, "%02X", serbuf[i]);
  46.         strcat(buf1, buf2);
  47.     }
  48.     serbuf[0] = xorsum(buf1, strlen(buf1));
  49.     sprintf(ser, "%02X", serbuf[0]);
  50.     strcat(ser, buf1);
  51.  
  52.     printf("\nSerial Number : %s\n", ser);
  53.     printf("User Name     : %s\n", name);
  54.     printf("\nEnter the above information into your XpertRule 'Serial# Entry' dialog\n");
  55. }
  56.  
  57.  
  58. void main()
  59. {
  60.     printf("XpertRule v3.65 Serial# generator\n\n");
  61.     genserial();
  62. }