Why does it seem so easy to pirate today?

It just seems a little hard to believe that with all of our technological advances and the billions of dollars spent on engineering the most unbelievable and mind-blowing software, we still have no other means of protecting against piracy than a "serial number/activation key". I'm sure a ton of money, maybe even billions, went into creating Windows 7 or Office and even Snow Leopard, yet I can get it for free in less than 20 minutes. Same for all of Adobe's products, which are probably the easiest.

Can there exist a fool-proof and hack-proof method of protecting your software against piracy? If not realistically, how about theoretically possible? Or no matter what mechanisms these companies deploy, can hackers always find a way around it?

Code is data. When the code is runnable, a copy of that data is un-protected code. Unprotected code can be copied.

Peppering the code with anti-piracy checks makes it slightly harder, but hackers will just 
use a debugger and remove them. Inserting no-ops instead of calls to "check_license" is pretty easy.


Hard-to-hack programs do progressively more annoying things.
But vendors have to sell customers software they are prepared to use. 
Not everyone allows computers to phone home. 
Some people working on sensitive stuff refuse to connect machines to the internet.


Programs I sell at my current employer (aerospace tools) don't phone home ever. The customers wouldn't tolerate phoning home for "activation" every time the program starts.

Worst case, the program runs in a VM with no networking, where it's always a fixed date.

So it might have been legitimately installed once, but no efforts on the part of the developers can have it tell that it's not how it was.


Attempts to add hardware "copy prevention" to general purpose computers are doomed to 
failure.
Whatever company sells hardware without copy prevention ends up selling all the hardware.
Vendors like Dell and Intel progressively try to introduce spy-hardware like Palladium, but they are strongly resisted.
When the computer is doing something scientific, real-time, any interruptions to "check for pirated content" will cause failures.  If all computers had hardware DRM, the special scientific/realtime ones would have to not have it.  Accidentally everyone would buy special scientific/realtime ones.    
Hardware DRM checks will have false positives on some kinds of content. 


Simplest case: resolution. I record Quad HD video from my camera array (sitting on my desk right now). Windows DRM gets between me and the data because it's QuadHD.
Signature analysis: The Hardware DRM is small and has a relatively fixed data set. It also has to use the same data bus as the CPU so it slows things down intermittently. This ruins anything realtime.
So then to make the Hardware DRM smarter during a false positive your computer will eventually get interrupted to go and check using a web service. Now my science data processor either fails because it isn't networked, or stops streaming data.


