2016-11-29 17 views
9

Tôi đang làm việc trên một dự án (ứng dụng dành cho thiết bị di động) nơi tôi cần theo dõi các hành động đối thủ. Vì vậy, câu hỏi của tôi là làm thế nào tôi có thể làm cho ứng dụng iOS giả mạo hiển nhiên?Làm thế nào để làm cho ứng dụng iOS giả mạo hiển nhiên?

ví dụ:

  • Bất cứ khi nào bất kỳ kẻ thù cố gắng can thiệp vào mã sau đó hệ thống sẽ cảnh báo cho quản trị cho những hành động này
  • và chặn kẻ thù
  • Nếu người dùng cố gắng để cài đặt ứng dụng trên thiết bị bắt nguồn từ sau đó hệ thống có thể phát hiện đó.
  • Hệ thống có thể giám sát các hành động đối thủ.

Tôi tìm thấy giải pháp cho android như ProGuard, SafetyNet nhưng không tìm thấy bất kỳ thứ gì cho iOS.

+1

Thông thường tôi sẽ nghĩ dọc theo dòng của tạo checksum MD5 trên các tập tin. Sau đó bạn kiểm tra định kỳ để xem liệu chúng có thay đổi không. Vì IOS tất cả các ứng dụng đều có hộp cát, tôi nghi ngờ bạn có thể truy cập bất kỳ tệp nào (bên ngoài ứng dụng của bạn). – Roger

+1

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

+0

* Pekka 웃 * cung cấp cho bạn liên kết đến một câu hỏi tương tự phổ biến vào ngày 1 tháng 12 '16. Ngày hôm sau, vào ngày 2 tháng 12 '16, * itechnician * copy-paste một câu trả lời một tuổi từ câu hỏi tương tự KHÔNG CÓ TÍN DỤNG TÁC GIẢ, và bạn đã cấp cho nó một khoản tiền thưởng 100 đô? –

Trả lời

8

Tôi đã sử dụng số JailBreak detection này trong một dự án của mình.

Với điều này, bạn có thể ngăn chặn khả năng.

if ([DTTJailbreakDetection isJailbroken]) { 

// your custom activity and business logic here 
    } 

Ngoài ra, Trong chính xác bạn có thể sử dụng dưới đây 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; 
} 

Ngoài ra, Obfuscation trong iOS - Mục tiêu C bạn có thể sử dụng open source-library này và cho Methods & Classes.

+0

bất kỳ tài liệu chính thức nào để sao lưu 'DTTJailbreakDetection'? – pradeep1991singh

+1

Vui lòng kiểm tra liên kết github. tôi đã thêm – itechnician

+0

Vui lòng kiểm tra tham chiếu obfuscation quá cho sự nhìn chăm chú của bạn. – itechnician

3

Ngoài việc phát hiện thiết bị jailbroken, và obfuscating mã (như @itechnician đề cập), bạn có thể:

dù sao, tất cả những có thể dễ dàng bỏ qua khi trên thiết bị jailbroken (ngay cả việc kiểm tra nếu tôi t jailbroken). Cách tốt nhất là sử dụng nhiều kỹ thuật bao gồm obfuscation, để làm cho giả mạo càng nhiều càng tốt (vì vậy nó không phải là giá trị nó). Nhưng tôi không chắc liệu bạn có thể tạo ra ứng dụng chống giả mạo hoàn toàn hay không.

Bạn có thể tìm thấy những liên kết hữu ích:

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/

Cuốn sách này là một chút cũ, nhưng vẫn hữu ích: http://shop.oreilly.com/product/0636920023234.do

Dưới đây là mã nguồn mở ObjC bộ obfuscate/chuỗi encryptors:

3

Tôi nghĩ rằng bạn đang tìm kiếm cái gì đó như ixguard

+0

nó là một dịch vụ trả tiền? Tôi quan tâm nhiều hơn đến một số giải pháp nguồn mở. – pradeep1991singh

+0

Có nó là một dịch vụ trả tiền. Tôi không nghĩ rằng có một giải pháp mã nguồn mở hoàn toàn bao gồm những gì bạn cần. – mkeremkeskin

+2

Phát hiện giả mạo và bẻ khóa không phải là (chưa) một phần của iXGuard hôm nay. – Jonas

Các vấn đề liên quan