Я пытаюсь написать некоторый код для проверки или изменения (не вредоносных или чего-либо подобного) других приложений iOS, установленных на устройстве пользователя. В частности, на устройстве с джейлбрейком. На взломанном устройстве я могу просматривать файлы вне изолированной программной среды приложения, и когда я смотрю на «/ private / var / mobile / Applications /» с помощью NSFileManager, я вижу список каталогов (названный в какой-то шестнадцатеричной схеме) , Как и ожидалось.
К сожалению, когда я смотрю на каждый каталог, все они возвращают (кроме самого запущенного приложения) FALSE для isDirectory и NULL для attributeOfItemAtPath. Мне нужно иметь доступ к .app внутри каждой из этих папок, но я не могу видеть их ниже, и каждая возвращает неверную информацию.
Ниже код, который я использую:
NSString *path = @"/private/var/mobile/Applications/";
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:path error:nil];
for(NSString *file in fileList) {
NSString *fullpath = [path stringByAppendingPathComponent:file];
NSLog(@"fullpath = %@", fullpath);
BOOL isDir = nil;
[manager fileExistsAtPath:fullpath isDirectory:(&isDir)];
if(isDir) {
NSLog(@"isDir");
//NSArray *subfiles = [self filesBeneathDirectory:fullpath withExtension:extension];
} else {
NSLog(@"!isDir");
NSDictionary *attributes = [manager attributesOfItemAtPath:fullpath error:nil];
NSLog(@"attributes = %@",attributes);
}
}
Буду признателен за помощь в обнаружении файлов под этими каталогами. Я предполагал, что iPhone будет иметь полный доступ с правами root (будучи взломанным устройством и все такое).