Anti-piracy techniques

Forums Programming Programming – Everything else Anti-piracy techniques

This topic contains 56 replies, has 42 voices, and was last updated by  ShayDn 2 years, 10 months ago.

Viewing 25 posts - 1 through 25 (of 57 total)
Author Posts
Author Posts
July 5, 2010 at 10:36 pm #222975


I have developed a function to detect when your app was pirated.

But the most important is the idea to prevent the piracy and even make money

I propose this solutions to piracy

  1. Load a version of your application with ads. (Make money with ads only if your app was pirated)
  2. Load a lite/demo of your app.
  3. Stop the program.

if (isPirated()) {

isPirated() checks:

  1. the signed Identity
  2. the info.plist filesize
  3. If binary encryption is enabled

I am going to publish the code very soon :)

July 5, 2010 at 11:10 pm #289436

Kenny Ackerson

Ohhhh cant wait!! :D

July 5, 2010 at 11:17 pm #289437


Interesting idea, however…

What happens when the system backfires and marks a legit copy as pirated? You wouldn’t want a paying customer to have a bad experience. What if Apple changes something that causes the system to break? You’d have a lot of unhappy customer.

Why not just release the app for free and make it ad supported?

July 5, 2010 at 11:32 pm #289438



Sorry but that is impossible.

If you get a legit copy then the build is always encripted and my system doesn’t mark it as pirated :)

Read this article: Understanding Apple’s Binary Protection in Mac OS X

There are some things that Apple can’t change, for example the the keys in the info.plist, if Apple change the key names, then, any app wouldn’t work correctly.

Why not just release the app for free and make it ad supported?

No, because if you develop a app and it cost $10 and some people download it free, you don’t make any money, but if you add ads, then you could make money.

July 6, 2010 at 12:54 am #289439


Be careful about spending too much time with anti piracy measures. Its a cat and mouse game, you add detection, pirates add counter detection or assemble a version without your detection code, etc.

So yes, add such features if need be, but make sure you don’t spend too much time on it, make your app better instead, more people will buy it. Piracy is simply part of this business.

July 6, 2010 at 2:34 am #289440


Here’s another tutorial on anti-piracy. I decided not to waste much time figuring how to prevent it since it will get hacked anyway. What you want to do is prevent those newbie hackers from hacking your game, as for those experience hackers… just let them do whatever.

I don’t think you can convert people who hack your games to your potential buyers anyway.

July 6, 2010 at 7:15 am #289441

Kenny Ackerson

@hactar Yes, but I still don’t want people to crack my apps and get away with it, ;)

July 6, 2010 at 7:31 am #289442


@pearapps: I understand, but I’m afraid that if your app is good people *will* crack and get away with it, no matter what you do…. So be zen and learn to accept it :)

But again, I’m not saying don’t do anything about it, just don’t spend too much on your measures. Pirates can and will remove them if necessary.

July 6, 2010 at 7:35 am #289443

Kenny Ackerson

@hactar – True -

July 6, 2010 at 1:06 pm #289444


I agree, we have strong copy protection in ZombieSmash. It took some days till it was cracked.

I would suggest to check if a version is cracked and if so display ads. Then there is no need to hack out your checks and you still make some money. If you restrict your cracked versions your app will be cracked for sure in a couple of days.

Another side note. We had a VERY high percentage of cracked version when ZS was released. But the longer it is out the lower this percentage is dropping. Crackers seem to just get every app on their device when they are releases. Another note. The percentage of cracked copies was similar to the percentage of jailbroken devices.


July 6, 2010 at 6:04 pm #289445


I quite like the idea of detecting, if someone has cracked it and maybe then showing a screen explaining your an Indy Dev and then presenting them with an iTunes link…

July 6, 2010 at 6:10 pm #289446

Kenny Ackerson


July 6, 2010 at 6:26 pm #289447


“I quite like the idea of detecting, if someone has cracked it and maybe then showing a screen explaining your an Indy Dev and then presenting them with an iTunes link…”

I like that, I’ll do that I think. :)

Hey, can you code an anti idea stealing class? I could use that at work. ;)

July 6, 2010 at 7:26 pm #289448


I’m with @hactar and @zombie on this one, we had thousands of pirate users filling up the scoreboards within a week of releasing STAPig, however this number then steadily got smaller over time.

There are over 85 million devices out there, the majority are not cracked and the people that are ripping the games have so much choice they are not really playing the games to their fullest anyway. It like playing on a mame cabinet that has over 10000 games, you spend most of the time flipping from game to game rather than actually playing them.

I’ve come to accept pirates as walking billboards, they’re not going to pay for anything but they may end up showing the game to someone who will. We did think at one point of putting in some altered assets for the pirate version but then figured we may encourage people to get a cracked version to see the alternate version.

On the subject of obvious ideas you wish you’d thought of Microsofts stick your batteries in either way patent is genius

July 6, 2010 at 7:28 pm #289449

Kenny Ackerson

Still worth a couple of days writing this function as Manu did. Might as well get some profit from immoral crackers.

July 6, 2010 at 9:41 pm #289450


I agree with everyone that putting more than a few hours on anti-piracy stuff is a waste of your time. It is futile to try to keep the pirates out which wouldn’t buy your app anyway. The gray area, those who might buy your app but only if there is no pirated version available is very, very small. You can easily anger more legal purchasers by malfunctioning copy protection / crack detection than getting those in the gray area to purchase your app.

I summed it up 2 months ago in this post why piracy isn’t a real problem that actually needs defeating … the time is better spent on improving the App or promoting it:

If you want anti-crack then choose one of the available solutions, don’t reinvent the wheel. ;)

Try Dr. Touch’s Anti-Crack for example:

From a technical point of view, the call to a single function “isPirated” is straightforward to remove once found. You want to have at least a base level of security by inlining all your anti-crack checks, implement several variations of them so they can’t all be easily pinned down, then call them from all over the place in several variations. But that’s where you can easily introduce mistakes and testing becomes a pain. IMHO crack protection for iPhone apps is a waste of time. If you can’t do it right, why do it at all? If you want to do it right, you’d have to obsess over it spending countless hours and it’ll still get cracked within days.

@Pearapps: There’s no way you’re getting any money from immoral crackers. That’s the whole point, their morale code does not allow such a thing. Instead they try even harder to crack or just wait longer. There’s enough other stuff to go around.

July 6, 2010 at 10:52 pm #289451


why not do the same thing but make it load a full screen ad that makes the pirated versions useless and makes the pirate-er mad?

July 6, 2010 at 11:03 pm #289452


@abitofcode – the “billboard” is a perfect way of looking at it. people who pirate apps generally don’t buy apps, so you are not actually losing any sales anyway. you’re just gaining visibility.

July 6, 2010 at 11:34 pm #289453


@synsoft you don’t want to make a pirate-er mad its a lose/lose situation for you.

@pfg2009 My attempt at not letting them get under the skin :)

I guess in the end it comes down to the 80/20 rule. If we say 25% of all the iphones are cracked (figure pulled out of the air) and there are 85 million iphones/ipods (ignoring iPads) do you really want to concentrate your resources trying to stop a minority from copying your app, a minority that would are not likely to make the purchase in the first place. Surely the time would be better spent trying to get as much of the 75% of non jailbroken phones to see/purchase your app.

If you have 3000 pirated copies spread around the world (as we did on day 5) that has to be better than only 100 purchased copies. How much would you have to pay 3000 people to walk around with billboards advertising an app?

At the end of the day it’s not going to be long before Kevin Bacon sees your app ;)

July 31, 2010 at 5:43 pm #289454



I know Kevin Bacon….

Okay, well, to be more precise I know a guy, who knows a guy, who knows a guy, who knows a guy who acted in a movie that Kevin Bacon starred in…which is pretty much the same thing IMHO.


BTW, All great points regarding anti-piracy measures. IMHO, the only way piracy can be really slowed is by Apple. New techniques built-in to new generations of devices and new OSes, etc. Even that doesn’t stop them, but it does slow them down a bit more than everyone trying to write anti-cracking code into apps.

July 31, 2010 at 6:46 pm #289455


I suspect that the number of jailbroken iPhones is much much less than 15%. Apple has sold millions and millions of them. It is the number one selling smartphone in the world (I believe). Now the percentage of Appstore sales to number of cracked apps you see could indeed be a different percentage.

Can you run cracked apps on a non-jailbroken iPhone?

July 31, 2010 at 8:21 pm #289456


It’t not what I expect for. Since Jailbreak iPhone is just less than 10%, think about it, even if they don’t pirate your apps, most of them never pay any cents for the Apps Store.

Anti-piracy not adding even 1% to your benefit but might cause your code at risk and your sale at risk also (not running on later iOS)

August 2, 2010 at 12:47 pm #289457


I am not sure about the 1% anti-piracy would add to the benefit. I have read articles saying it helps, others saying it doesn’t. But all in all I saw the following numbers:

Typical piracy factor : 90%

Typical conversion after anti-piracy triggers : 5% to 10%

Here is a scenario if those numbers are true:

for each 100 sales, there are 900 pirate downloads. If 5% convert because of anti-piracy measures, that’s 45.

That would mean a 45% increase in sales.

I don’t know what the real numbers are, just my 2 cents.

Edit: that might also only work for apps that are less fungible than games, or maybe games from the TOP lists.

August 2, 2010 at 6:46 pm #289458


I think it would be more valuable if we could send a message to those who pirate.

“For those who pirating this game, please rate this game 5 stars when possible. Thank you.”

This is the best solution for anti-piracy.

August 2, 2010 at 8:21 pm #289459


here we go again…

You’ll find it easier to convince people who’ve not seen you game yet to buy into it than to stop people who have no desire to pay for it to convert.

I think 90% is typical of apps that have a low number of downloads, it’s pretty close to what we had upon release. However the pirate figures remained fairly flat while our downloads grew over time.

Viewing 25 posts - 1 through 25 (of 57 total)

You must be logged in to reply to this topic.