Daven wrote:So a hacker can buy a legit copy, gets the server code, does a memory dump, then what?
From my understanding, as long as there's a complete set of code that reaches a client system, and is runnable (i.e. decrypted), a cracker can repackage it removing the phone-home code and release a working standalone crack.
It's not entirely true. First you know the source of the leak, so you can start legal actions.
Also, since the code you're sending is server generated, it's not fixed (as you're supposing). So you can add whatever verification in there, the hacker might get one version, but it doesn't mean he'll have all of them.
I assume that no hacker can break classical cryptography scheme (if any one did, he would worth billions $), and coupled with user-generated identification (like a MAC address, or whatever unique ID in your computer), the hacker will probably get a code that's perfect for his own computer, but useless on other, unless he rewrote most of the application.
Most protection using cryptography today use CPU specific exception to decode ciphered code on-the-fly in a page by page basis, trashing the decoded page once it's no more used.
So unless a hacker goes over each page of code (and tracking where it comes from is hard when it's crypted/coming from a server generated code), he's twisted.
The amount of work required to reassemble thousands of pages (and being able to identify which is which) is probably in the same order of complexity as rewriting the software from scratch.
Daven wrote:Also, per-customer binaries don't offer protection - the cracker would just release the whole cracked executable rather than a patch or keygen - they'll just let you track the source of the crack, so you might be able to litigate.
You're right, you can identify the source.
But, and it's the most important part, you'll also be able to have custom behaviour per user.
So, if a hacker-dump executable is in the wild that doesn't phone home, the resulting software will have the hacker's limited set of features.
With the system from the above paragraph, you'll end up with a software that's having only the features that the hacker bother to uncrack/dump until he get bored.
For example, take a software like Chief Architect. They maintain a library of architecture object on their servers. This library is per customer / per version.
The hacked version doesn't have access to this library because it's blacklisted on their server, and the "phone home" stuff is disabled in this version too (so you can't update the software).
You end up with an inferior product, and no hacker will spare all his time to "import" all the library from the server, since, I guess, each item in the library requires decrypting + dumping.