Для тестов нижнего уровня я рекомендую посмотреть ScoopyNG [1]. Это сборник известных низкоуровневых, хорошо работающих методов обнаружения vm, хотя они немного устарели.
Если вы действительно хотите полагаться на другие вещи, такие как установленные инструменты (дополнения VM *), это гораздо легче «подделать».
В этом [2] блоге также есть довольно хороший обзор, из материала с низким уровнем asm, проверка определенных DLL, файлов и ключей реестра для проверки.
[1] http://trapkit.de/research/vmm/scoopyng/index.html
[2] http: //securitykitten.github. IO / VM-проверка-и-обнаруживая /
Обновление (2016): В настоящее время лучший способ сделать это - создать экземпляр и представить SFSafariViewController. Это дает пользователю безопасность и скорость Safari, а также доступ к любым файлам cookie или функциям Safari, которые они, возможно, уже установили, не выходя из приложения.
Если вы хотите открыть URL-адрес в Safari (и выйти из приложения), вы можно использовать метод openURL приложения UIApplication
. Если вы предпочитаете, чтобы он обрабатывался внутри вашего приложения, используйте WKWebView.
Если вы хотите открыть и просто получить данные из URL, вы можете использовать NSString:
NSString *ans = [NSString stringWithContentsOfURL:url];
Если вы пытаетесь получить XML из URL, вы можете напрямую используйте NSXMLParser:
NSURL *url = [[NSURL alloc] initWithString:urlstr];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
// parse here
[parser release];
[url release];
С другой стороны, если под открытием вы имеете в виду открытие URl во встроенном браузере, вы можете использовать класс UIWebView .