2016-11-29 30 views
9

Pracuję nad projektem (aplikacja mobilna), w którym muszę monitorować działania przeciwników. Tak więc, moim pytaniem jest, w jaki sposób mogę uwidocznić fałszerstwo aplikacji na iOS?Jak usunąć próbę naruszenia aplikacji iOS?

np.

  • Ilekroć każdy przeciwnik próbować manipulować kod następnie system powinien powiadomić administratora dla tych działań
  • i blokować że przeciwnikowi
  • Jeśli użytkownik próbuje zainstalować aplikację na urządzeniu zakorzenione następnie system może wykryć, że.
  • System powinien być w stanie monitorować działania przeciwnika.

Znalazłem rozwiązanie dla Androida, takie jak ProGuard, SafetyNet, ale nie znalazłem nic dla systemu iOS.

+1

Normalnie chciałbym myśleć wzdłuż linii tworzenia sum kontrolnych MD5 nad plikami. Które następnie sprawdza się okresowo, aby sprawdzić, czy się zmieniły. Ponieważ IOS wszystkie aplikacje są piaskowane, wątpię, aby uzyskać dostęp do plików (poza aplikacją). – Roger

+1

http://stackoverflow.com/questions/413242/how-do-i-detect-that-an-ios-app-is-running-on-a-latilbroken-phone –

+0

* Pekka 웃 * zawiera link do popularne podobne pytanie z 1 grudnia 16. Następnego dnia, w dniu 2 grudnia 16, * itechnician * copy - wkleja jednoroczną odpowiedź z tego podobnego pytania BEZ UPRZEDZENIA AUTORA, a mimo to przyznajesz mu +100 nagrody? –

Odpowiedz

8

Użyłem tego JailBreak detection w jednym z moich projektów.

Dzięki temu można zapobiec takiej możliwości.

if ([DTTJailbreakDetection isJailbroken]) { 

// your custom activity and business logic here 
    } 

Również w precyzyjny można użyć poniższy snippet:

BOOL isJailbroken() 
{ 
#if !(TARGET_IPHONE_SIMULATOR) 

    if ([[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"] || 
     [[NSFileManager defaultManager] fileExistsAtPath:@"/Library/MobileSubstrate/MobileSubstrate.dylib"] || 
     [[NSFileManager defaultManager] fileExistsAtPath:@"/bin/bash"] || 
     [[NSFileManager defaultManager] fileExistsAtPath:@"/usr/sbin/sshd"] || 
     [[NSFileManager defaultManager] fileExistsAtPath:@"/etc/apt"] || 
     [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"] || 
     [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://package/com.example.package"]]) { 
     return YES; 
    } 

    FILE *f = NULL ; 
    if ((f = fopen("/bin/bash", "r")) || 
     (f = fopen("/Applications/Cydia.app", "r")) || 
     (f = fopen("/Library/MobileSubstrate/MobileSubstrate.dylib", "r")) || 
     (f = fopen("/usr/sbin/sshd", "r")) || 
     (f = fopen("/etc/apt", "r"))) { 
     fclose(f); 
     return YES; 
    } 
    fclose(f); 

    NSError *error; 
    NSString *stringToBeWritten = @"This is a test."; 
    [stringToBeWritten writeToFile:@"/private/jailbreak.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error]; 
    [[NSFileManager defaultManager] removeItemAtPath:@"/private/jailbreak.txt" error:nil]; 
    if(error == nil) 
    { 
     return YES; 
    } 

#endif 

    return NO; 
} 

również Obfuscation w iOS - cel C można użyć tej open source-library i dla Methods & Classes.

+0

jakiejkolwiek oficjalnej dokumentacji do poparcia 'DTTJailbreakDetection'? – pradeep1991singh

+1

Proszę sprawdzić link do github. Dodałem – itechnician

+0

Proszę również sprawdzić odniesienie do obfuskacji w celu przejrzenia. – itechnician

3

Oprócz wykrywania urządzenia jailbroken, a kod (jako @itechnician wymienionych) kasował można:

w każdym razie, wszystkie z nich można łatwo obejść, gdy na urządzeniu jailbroken (nawet jeśli czek t jailbreak). Najlepszym sposobem jest użycie wielu technik, w tym zaciemniania, aby manipulowanie było jak najtrudniejsze (więc nie jest tego warte). Ale nie jestem pewien, czy mógłbyś zrobić w pełni odporną na manipulacje aplikację.

Można znaleźć te linki przydatne:

https://www.coredump.gr/articles/ios-anti-debugging-protections-part-1/ https://www.raywenderlich.com/45645/ios-app-security-analysis-part-1 http://resources.infosecinstitute.com/ios-application-security-part-31-problem-using-third-party-libraries-securing-apps/

Ta książka jest nieco stary, ale wciąż użyteczne: http://shop.oreilly.com/product/0636920023234.do

Oto opensource objc obfuscators/encryptors smyczkowych:

3

myślę szukasz czegoś jak ixguard

+0

czy to usługa płatna? Bardziej interesuje mnie rozwiązanie open source. – pradeep1991singh

+0

Tak, jest to płatna usługa. Nie sądzę, że istnieje rozwiązanie open source całkowicie pokrywa to, czego potrzebujesz. – mkeremkeskin

+2

Wykrywanie sabotażu i jailbreak nie jest (jeszcze) częścią iXGuard dzisiaj. – Jonas