How is software hacked and patched?

It is really strange to see, that almost every famous and good software is cracked and patched. Adobe software, windows, IDM and many others...

Is it really that easy? What are the techniques that they use? How can we protect our software from being patched or cracked?

Edit:

Well i am clear for the current answers that there are very less ways to protect your software ".... the only method I've ever seen work is putting important logic on an external server somewhere... by @Phoshi", but how is this done. softwares have encrypted files, .exe, etc, then what is the benefit of encrypting them.. shouldn't just leave them open... if people are going to crack them anyway?


Solution 1:

You can't. Anybody running anything locally has total control over what it does - if you phone home, that can be disabled, or intercepted. If you do key checks, they can be altered to accept any key. Hardware checks, and again, you can change that to always return true. No protection that runs entirely on an open, local computer will ever be 100% effective - the only method I've ever seen work is putting important logic on an external server somewhere, and verifying when that's asked for - but that adds latency, complexity, and annoyance.

Simply put, I wouldn't try too hard, it'll be cracked, and then the only thing it'll do is irritate legitimate customers. If your software is good, the people who matter will buy it, especially if it has any business applications.

Solution 2:

There are just a few software protection products in the world, which are in use by all software makers. As such, they are well-known to hackers.

These protection products are faced with groups of young geniuses, groups that are being continuously renewed by newcomers. In addition, they are in competition with each other, racing forward to crack any new product or security schema. They keep count of their exploits using dedicated websites.

For these groups, cracking a new product is just a matter of finding out which protection it uses, then nullifying it. It is more interesting for them when a new version of the protection product comes out, cracking them usually within days (!).

Many legitimate owners of games/video/music prefer downloading cracked versions, since the protection products can be worse than viruses, causing big problems themselves after being installed.

In conclusion, using your own protection scheme is the best idea, rather than buying one, but knowing that if your product becomes well-known then it will be cracked.