1

How can I determine if DRM was removed from iPhone application bundle (to protect it from piracy)?

inkvisitor
  • 51
  • 2
  • 1
    You know, a determined pirate can always remove the check for DRM too. – R. Martinho Fernandes Dec 18 '09 at 16:30
  • 1
    @Martinho: Yes, but there are a lot less determined pirates than casual pirates. This sort of simple check is probably enough to thwart most pirates. – Ben S Dec 18 '09 at 16:31
  • 1
    Newsflash: pirates simply won't use your application if you truly protect against piracy. The less people use your app, the less its recognition spreads. So really, you're just killing the advertising that would normally bring you sales. Power to you, man. Get those pirates. – Stefan Kendall Dec 18 '09 at 16:42
  • 1
    Newsflash - pirates and their friends don't buy Apps - this is not the type of advertising that you need. – Tim Dec 18 '09 at 18:32
  • "The less people use your app, the less its recognition spreads." Recognition doesn't pay bills quite like app sales, though. – Alex Reynolds Dec 18 '09 at 21:02

4 Answers4

1

I have an iPhone app which integrates with a third party web service. I use the technique described in this question to find pirates and then have the app "phone home" with the user's device ID and user ID for the web service (I haven't done anything with this information yet, but I was thinking about contacting them and asking them nicely to purchase my app).

In addition, once a user has used my app for a certain amount of usage, I limit functionality and direct the pirates to the App Store for full functionality.

Community
  • 1
  • 1
Martin Gordon
  • 36,329
  • 7
  • 58
  • 54
0

To my knowledge, there's only one way to remove DRM: Crackulous.

So to find out what to look for in a cracked application, I would run Crackulous on your app and compare the app bundles. It should be fairly easy to determine what's been changed by looking at filesizes and running a diff on the files in the bundle.

Once you know what the changes are and to what file(s), just look for those changes in your application to determine if the application has been cracked.

If you find out exactly which files should be checked, please post your findings here so others can benefit from your research.

Ben S
  • 68,394
  • 30
  • 171
  • 212
  • The Crackulous guys can't change the fact that they need to modify the app bundle. Without modifications, the DRM is still present. They literally **can't** avoid their modifications being detected. – Ben S Dec 18 '09 at 16:35
  • @Ben: True, if you look for *any* changes. In your answer you suggested looking for particular changes. You don't need to know the changes, only that it was changed. – R. Martinho Fernandes Dec 18 '09 at 16:42
0

My previous Stack Overflow question may help you out: Reducing piracy of iPhone applications

Community
  • 1
  • 1
Alex Reynolds
  • 95,983
  • 54
  • 240
  • 345
0

Its probably worth pointing out that there are no casual "pirates". Casual users cannot download your app from the app store without buying it. All the DRM-removal schemes require to be run on a legitimately purchased copy.

As to looking at the bundle for changes, as I recall all you need to do is step through the link-loader commands and ensure that the code bundle is still tagged as encrypted. No need to compare it with anything. You'll need to read about Mach-O file format to do this, but thats not difficult, its all documented on developer.apple.com

Jeff Laing
  • 275
  • 1
  • 1