• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Licences 101 - Copy Protection for Newbies
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Licences 101 - Copy Protection for Newbies


  • Subject: Licences 101 - Copy Protection for Newbies
  • From: Jeremy Dronfield <email@hidden>
  • Date: Mon, 23 Sep 2002 14:26:50 +0100

I've been hesitating for a while now over broaching this subject again, especially as it's a bit OT. However, after reading through all the contributions to the two big threads on copy protection that have occurred here during the past four months, I feel there's one aspect that hasn't really been covered: guidance in first principles for people with no experience of copy protection and little or no knowledge of the coding techniques involved. Lots of fascinating, tantalising stratagems, but no how-tos. This, therefore, is my request.

Below I've outlined what I believe is the fundamental structural paradigm for basic copy protection. (I don't need anyone writing in to say the scheme is no good - I know it's no good, it's just a paradigm. A teaching aid, if you like.)

FIRST RUN
1. App knows it is running for the first time, so puts up an "Unlicensed Copy" window which invites the user to either use the product unlicensed in limited demo mode, or enter the licence code they've obtained (honestly, we hope). If they do the latter, then:
2. App compares the entered value with a valid value (or array of valid values) held internally. If it gets a match, then:
3. App stores the value (or something derived from it) in a file somewhere.
4. App triggers an email message to developer registering the transaction.
5. App sets boolean variable isLicensed to YES (or sets up variables to be used in some mathematical process).
6. App periodically queries isLicensed (or performs its maths) when deciding whether or not to execute certain functions.

SUBSEQUENT RUNS
7. App queries file referred to in 3 (above) and retrieves value from it (and reverse-processes it if it's a derived value). Repeats step 2. If it gets a match, then:
8. Repeat steps 5 and 6.

Now, this seems to me the foundation on which all *basic* software copy protection is built. What I'm humbly asking for is to have the fundamental weak areas pointed out and explained. You'll note that I emphasise *basic*. I'm not asking for someone to tell me how to protect my software (I'm inexperienced, not naive), but to help me get a grasp of the basic techniques of copy protection. For the record, I've gathered enough from previous threads to be aware that:
a) Defeating crackers and serial pirates is impossible, and effort expended in any attempt to do so is wasted, so
b) The best we can hope for is to avoid handing them our app on a plate, and
c) Concentrate on encouraging the "honest" to pay, which means
d) Not teasing and tormenting them with over-elaborate registration remedies.

So, apologies to those who are sick of the sight of this subject, but can anyone help?
-Jeremy

========================================
email@hidden // email@hidden
The Alchemy Pages:
- fractious fiction at http://freespace.virgin.net/jeremy.dronfield
========================================
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: Licences 101 - Copy Protection for Newbies
      • From: Peter Sichel <email@hidden>
    • Re: Licences 101 - Copy Protection for Newbies
      • From: "Steven M.Palm" <email@hidden>
  • Prev by Date: Re: Displaying sheet when window first appears.
  • Next by Date: Re: Licences 101 - Copy Protection for Newbies
  • Previous by thread: Dragging inside and outside of a view
  • Next by thread: Re: Licences 101 - Copy Protection for Newbies
  • Index(es):
    • Date
    • Thread