AntiCrack is a set of methods to help app developers detect if their applications have been cracked. It is available as Donationware.
AntiCrack started out as protection scheme developed by Oliver Drobnik for his first game app which he co-produced with Michael Dorn. Drobnik did not think it as necessary, but Dorn insisted. Of course the game was cracked shortly after launch which validated the use of AntiCrack.
Fabian Kreiser developed a method to check for existence of the encryption as well as preventing an unpatched debugger from attaching to the binary. He offered this to Drobnik for inclusion which prompted Drobnik to make Kreiser the main developer on AntiCrack, for a share in donation revenue. Kreiser restructured the code and AntiCrack 2.0 was released.
Since then incremental enhancements were made to adapt to changes in cracking scripts as well as to implement a variety of methods to detect tampering with AntiCrack code itself.
AntiCrack is being distributed via a Subversion repository for which a read-only login is provided after a developer makes a donation of a set minimum amount. Documentation as well as several tutorial videos made by Fabian Kreiser are also provided.
The solution consists of several C files which are copied to a host project and appropriate function calls added to the source code to trigger checking for the app status. Then based on the returned code the developer can decide to react in a number of ways ranging from showing ads or disabling features to secretly passing status information to a server for tracking.
An experienced cracker is able to decrypt an app and perform rudimentary hacking in about one hour. AntiCrack is designed such that it is simple to include multiple times and be secretive about detecting a cracked copy. This makes it a daunting task to remove every trace of it from a cracked distribution. Because of this a cracker can never be certain as to the quality of his release as developers might disable app features or cause their app to crash randomly.
Some developers opt to show a purchase dialog to the user once a crack was detected. This enables a cracker to easily find the section of binary code where the ckeck is performed and to disable the dialog and check. Such obvious tactics are discouraged by the author. The general recommendation is to not show any suspicious app behavior until after the app has left the cracker's hands.
Internal statistics point to AntiCrack being not effective in preventing copying due to advances in decryption and auto-cracking scripts available. At the same time AntiCrack appears to be very effective when it comes to detecting cracks. So far no reports exist of apps where AntiCrack was completely neutralized.