How to detect a cracked iPhone App and a jailbroken device (different methods)

前端 未结 2 1075
时光说笑
时光说笑 2021-01-31 00:51

I\'m building a blacklisting service for cracked iPhone apps and I am curious if I missed a method for detecting cracked apps.

In the moment following app crack detectio

相关标签:
2条回答
  • 2021-01-31 01:06

    NEVER try and block jailbroken devices from using your app, just cracked ones. If you block jailbroken devices they'll be forced to use a patched version with all the checks removed.
    Also ALL my devices are jailbroken so if a developer blocks jailbroken devices I would have to ignore their apps. Over 10% of all iDevices are jailbroken so this is a very bad idea.

    EDIT: As I'm getting lots of down votes for this I'll post some methods to detect a jailbreak.

    - (BOOL)fileExistsAtPath:(NSString *)path{
        NSLog(@"Check if file '%@' exists", path);
    
        struct stat buffer;   
        return stat([path UTF8String], &buffer) == 0;
    }
    
    - (BOOL)jailbroken{
        return ([self fileExistsAtPath:@"/Applications/Cydia.app"]);
    }
    
    0 讨论(0)
  • 2021-01-31 01:06
    -(IBAction)rootCheck:(id)sender {
    
        NSArray *jailbrokenPath = [NSArray arrayWithObjects:
                                   @"/Applications/Cydia.app",
                                   @"/Applications/RockApp.app",
                                   @"/Applications/Icy.app",
                                   @"/usr/sbin/sshd",
                                   @"/usr/bin/sshd",
                                   @"/usr/libexec/sftp-server",
                                   @"/Applications/WinterBoard.app",
                                   @"/Applications/SBSettings.app",
                                   @"/Applications/MxTube.app",
                                   @"/Applications/IntelliScreen.app",
                                   @"/Library/MobileSubstrate/DynamicLibraries/Veency.plist",
                                   @"/Applications/FakeCarrier.app",
                                   @"/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist",
                                   @"/private/var/lib/apt",
                                   @"/Applications/blackra1n.app",
                                   @"/private/var/stash",
                                   @"/private/var/mobile/Library/SBSettings/Themes",
                                   @"/System/Library/LaunchDaemons/com.ikey.bbot.plist",
                                   @"/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist",
                                   @"/private/var/tmp/cydia.log",
                                   @"/private/var/lib/cydia", nil];
    
        NSString *rooted;
        for(NSString *string in jailbrokenPath)
            if ([[NSFileManager defaultManager] fileExistsAtPath:string])
                rooted=@"y";
            else
                rooted=@"n";
    
        NSLog(@"%@", rooted);
    }
    

    sample code: http://www.evernote.com/shard/s13/sh/e45f27ee-3dd5-4eb1-9f56-1981cdd3286b/bc156eb773315647c13c2c7ee4191866

    0 讨论(0)
提交回复
热议问题