2

I want to continue on my previous question: https://stackoverflow.com/questions/3007168/torrents-can-i-protect-my-software-by-sending-wrong-bytes

Developer Art suggested to add a unique key to the application, to identifier the cracker.
But JAB said that crackers can search where my unique key is located by checking for binary differences, if the cracker has multiple copies of my software. Then crackers change that key to make them self anonymous.

That is true.

Now comes the question: If I want to add a unique key, are there tools to shuffle (a kind of obfuscation) the program modules? So, that a binary compare would say that the two files are completely different. So they can't locate the identifier key.

I'm pretty sure it is possible (maybe by replacing assembler blocks and make some jumps).
I think it would be enough to make 30 to 40 shuffles of my software.

Community
  • 1
  • 1
Martijn Courteaux
  • 67,591
  • 47
  • 198
  • 287
  • It is useless. Obfuscator/encrypter will have to unpack program eventually in order to run it, so it will be possible to extract unobfuscated version. If a user can run software on his machine, he will bypass copy protection eventually, no matter what is it. It is same as with music piracy - if you can listen to it, you can copy it. It is simpler to implement easy copy protection that won't scare away normal users that pay for your software. I've posted another answer to your previous question, by the way. – SigTerm Jun 09 '10 at 16:19

2 Answers2

2

As it comes to software protection, nothing is safe and if somebody is really determined to crack your application, he probably will.

As for your question, there are packers/protectors that could achieve what you need. Here are a couple of them:

Unknown
  • 5,722
  • 5
  • 43
  • 64
1

Crypto Obfuscator has a feature which allows you to watermark your assemblies. The watermarks can be unique strings which are not directly visible/used in code. Each time a customer purchases, you can send a uniquely watermarked copy to the customer so that if a crack appears you know the origin.

logicnp
  • 5,796
  • 1
  • 28
  • 32