home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / mac / programm / 12854 < prev    next >
Encoding:
Internet Message Format  |  1992-07-22  |  3.2 KB

  1. Path: sparky!uunet!stanford.edu!rutgers!dziuxsolim.rutgers.edu!gandalf.rutgers.edu!rgonzal
  2. From: rgonzal@gandalf.rutgers.edu (Ralph Gonzalez)
  3. Newsgroups: comp.sys.mac.programmer
  4. Subject: Re: how to put indelible serial# in resource fork of app?
  5. Keywords: serial#
  6. Message-ID: <Jul.22.14.59.09.1992.6438@gandalf.rutgers.edu>
  7. Date: 22 Jul 92 18:59:09 GMT
  8. References: <Jul.20.17.18.21.1992.16265@gandalf.rutgers.edu> <1992Jul20.232738.21376@hobbes.kzoo.edu>
  9. Organization: Rutgers Univ., New Brunswick, N.J.
  10. Lines: 52
  11.  
  12. k044477@hobbes.kzoo.edu (Jamie R. McCarthy) writes:
  13.  
  14. >Write a quickie program that lets you select an application with the
  15. >standard file box, then have it make n copies, adding a serial number to
  16. >each one.  Since it's a quickie, you can hard-code both n and the serial
  17. >number to start at, and no one will know the difference but you.  :-)
  18.  
  19. >It's pretty easy to make it "unchangeable."  Make a routine that converts
  20. >a 32-bit number into a moderately long (say, a 32-byte) code.  Make it
  21. >so ridiculously weird and complicated that no one will ever be able to
  22. >figure out what in the heck you're doing.  Then have the app check to be
  23. >sure its code can be derived from a real 32-bit number;  if so, that's
  24. >the serial number;  if not, put up a nasty message and exit.
  25.  
  26. Thanks, and thanks to the others who responded via email.  The consensus
  27. was that I should write a program which sticks serial#'s into the
  28. resource fork (or the data fork!) of the applications.  The serial#'s
  29. should be encrypted and a checksum should be embedded in the resource
  30. as well.  Preferably this info should be in a non-obvious place,
  31. such as a CODE resource.  Several interesting alternative schemes
  32. were suggested as well.
  33.  
  34. Also, it appears to be a good idea to have the user enter their name
  35. the first time they run the program, and display it in the startup
  36. screen after that.  This helps "shame" non-registered users.
  37.  
  38. QUESTION 1:  Is it ok to store this name in the application's own
  39. resource fork?  I know this is normally discouraged since the app
  40. may be on a read-only fileserver, but for product registration you
  41. don't want to just store it in the Preferences file where everyone
  42. accessing the fileserver gets to register their own name...
  43.  
  44. QUESTION 2:  It occurs to me that if someone is going to get hold of
  45. someone else's serial#, then they will probably steal this person's
  46. copy of the software as well.  Therefore it doesn't help that each
  47. copy of the software has its own serial# encoded into it.  Rather, it
  48. should be sufficient to have the application request a serial #, and
  49. run it through a scheme (such as that suggested by Jamie McCarthy,
  50. above) which checks if it is a valid serial# -- RATHER THAN CHECKING
  51. IF IT IS THE "CORRECT" ONE.  For example, ask for a 10-digit number
  52. of which only 1000 combinations are valid (assuming you won't sell
  53. more than 1000 copies!).  This saves you from having to attach a
  54. unique serial # to each copy, and bundle it with a manual containing
  55. the correct serial # -- a hassle if someone else is doing the
  56. duplication for you.  Is this a common approach?
  57.  
  58. -Ralph
  59.  
  60. -- 
  61. Ralph Gonzalez, Computer Science, Rutgers Univ., Camden, NJ
  62. Phone: (609) 757-6122; Internet: rgonzal@elbereth.rutgers.edu
  63. --
  64.