Freaking Pirates!

Discussion in 'iOS Programming' started by Mac Me Up, Oct 22, 2008.

  1. Mac Me Up macrumors regular

    Joined:
    Jun 25, 2005
    Location:
    Australia
    #1
    I was doing some google searching this morning, to find mentions of our app, and I came across a pretty disturbing site:
    Edit: removed link to site

    It looks like they crack app store apps and release them for free. What THE?! It's only for jailbroken phones, so I assume the userbase would be limited, but it makes me pretty mad! I can't believe someone would pirate an app that costs $1.99?

    Does anyone know anymore about this? And does anyone know if it's possible to send them a take-down notice or something?

    The other guys who work with me suggested we should be flattered that someone took the time to pirate our stuff, but I'm more annoyed than flattered :mad:
     
  2. dukebound85 macrumors P6

    dukebound85

    Joined:
    Jul 17, 2005
    Location:
    5045 feet above sea level
    #2
    its the nature of software. get used to it is all i can tell you...
     
  3. admanimal macrumors 68040

    Joined:
    Apr 22, 2005
    #3
    The majority of hits to my app's web site are referred from app pirate sites. It's a waste of time to try to do anything about it and my sales have been just fine anyway.
     
  4. Mac Me Up thread starter macrumors regular

    Joined:
    Jun 25, 2005
    Location:
    Australia
    #4
    I guess you're right...it's software after all. I've calmed down now, so I'm almost over it :cool:
     
  5. lapse macrumors newbie

    Joined:
    Nov 1, 2008
  6. detz macrumors 65816

    Joined:
    Jun 29, 2007
    #6
    I've been a software engineer all my adult life I've learned that it's not cost effective to try and fight it. The small percentage of people that download it probably wouldn't have purchased in the first place anyways so you're not loosing anything.
     
  7. gdevitry macrumors member

    Joined:
    Dec 26, 2003
    #7
    So when they 'copy' your app, they are copying a complied version right?

    In your code, test for a JailBroken app. Since a 'real' app can not do anything outside the App's Documents, test it by trying to copy/create a file at the app root dir. If successful, Die()/Exit()/DevNull. :)

    Or something else that tests for jailbroken privileges.

    Of course, Apple coding checkers might not like this... and reject your app. Or just remove the code?

    Just thinking,
    Greg
     
  8. liptonlover macrumors 6502a

    Joined:
    Mar 13, 2008
    #8
    I don't see why apple wouldn't like it... in fact they should automatically compile some code that does that into every application, or at least heavily recommend devs to do it. They would like it because it's easy, doesn't harm them, and it'll help stop piraters.
     
  9. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #9
    Don't fail/die/exit if your app detects a crack. That just gives them incentive to try and patch your code (change the direction of the jump instruction, etc.). Instead make sure everything works perfectly the first time something funny is detected.

    Then there are 3 possibilities:
    1) Do nothing. Consider use of your app free advertisement.
    2) Start displaying paid ads and monitize your app that way.
    3) Later gradually make the game harder and less fun to play, UI response time gets laggy, prefs or user data sometimes "accidentally" doesn't get saved, etc. e.g. encourage them to delete your cracked app.


    .
     
  10. liptonlover macrumors 6502a

    Joined:
    Mar 13, 2008
    #10
    I wouldn't do this because I'd rather just stop them, but if you don't want to stop them, do something to find out whether or not, and if you have been pirated use a pop up message to inform them that you know, and that you'll still let them use your app. :D
     
  11. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #11
    Trying to stop them immediately often does the opposite. If you pop up a dialog, you've given them an real easy breakpoint from which to trace back and find out where to patch out the spot in your code where you detect the problem.

    YMMV.
     
  12. Mac Me Up thread starter macrumors regular

    Joined:
    Jun 25, 2005
    Location:
    Australia
    #12
    I've been thinking about this, and I think I'd just leave it be. If someone is that motivated to hack applications, then they will always find another way.

    It's interesting to me the parallel to Vista vs OSX. I change my machines regularly, and re-installing Vista is a nightmare, I have to call their damn helpdesk and type in 1000 numbers or whatever they give you. In Microsofts case the impression they give you is that they are fighting piracy at your expense. I bet the pirates don't have to ring helpdesks or type in numbers! With OS X it's shipped by Apple completely unprotected...yes it is locked down by requiring EFI to run with, but I can install it again and again on my macs, without needing to do anything, I don't even have to type in a serial key! What stops me from buying one copy and installing it on 100 machines...nothing really...and yet I still pay for their OS.
     
  13. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #13
    Real motivation is no longer an issue. There are enough other ARM based platforms out there that there very likely are specialists in the chat rooms and semi-automated tools in the wild for finding and patching jump instructions.

    .
     
  14. DreamPod macrumors 65816

    Joined:
    Mar 15, 2008
    #14
    I'm pretty sure that would work on any iPhone, jailbroken or no. It's not that the phone or SDK doesn't allow it, it's that *Apple* doesn't allow it.
     
  15. gdevitry macrumors member

    Joined:
    Dec 26, 2003
    #15
    Really. You must have a different SDK than I do. From all the reading and following code, MY SDK does not allow it. Complies but will crash.
    Code:
        BOOL success;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSError *error;
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"bookdb.sql"];
        NSString *writableDBPath2 = [documentsDirectory stringByAppendingPathComponent:@"bookdb2.sql"];
    	success = [fileManager copyItemAtPath:writableDBPath toPath:writableDBPath2 error:&error];
        if (!success) {
            NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
        }	
    The following will work (copying to ~/Documents and not to the App root).
    Code:
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSError *error;
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"bookdb.sql"];
        success = [fileManager fileExistsAtPath:writableDBPath];
        if (success) return;
        // The writable database does not exist, so copy the default to the appropriate location.
        NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"bookdb.sql"];
    So the bad news is that, if your app will NEVER work on an unbroken device... since it will crash. (Edit: duh, use a @try/@catch for errors)
    Code:
    2008-11-02 07:11:40.185 SQLiteBooks[3142:20b] *** Assertion failure in -[AppDelegate createEditableCopyOfDatabaseIfNeeded], /Users/greg/Documents/iphoneApps/SQLiteBooks/Classes/AppDelegate.m:112
    2008-11-02 07:11:40.188 SQLiteBooks[3142:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to create writable database file with message 'Operation could not be completed. No such file or directory'.'
     
  16. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #16
    You could offer the downloads for free but charge for getting it register. (So like, they pay to have a code emailed to them, the code is then added to an online server as being valid, as soon as they use the code, it is removed from the server and will never be valid again and they're never asked for a code again. Yeah, it's a pain in the butt, but what else can you do?)

    Also... you can prevent apple from getting their 30% this way (so maybe Apple wouldn't allow it on second thought.)
     
  17. lapse macrumors newbie

    Joined:
    Nov 1, 2008
    #17
    Did you guys read the blog that I posted? The author posted a way to detect if your application has been cracked whether you're running on a jailbroken iPhone or not.
     
  18. gdevitry macrumors member

    Joined:
    Dec 26, 2003
    #18
    Right! read the whole freaking post! Sorry. That is much easier than what I was thinking.
     

Share This Page