欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS逆向 获取沙盒路径

程序员文章站 2022-03-08 15:09:21
一、 iOS逆向 获取沙盒路径,每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有...

一、 iOS逆向 获取沙盒路径,每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制。
(1)应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。

(2)应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。

(3)苹果禁止任何读、写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中。

(4)沙盒根目录里有三个文件夹:

         Documents,一般应该把应用程序的数据文件存到这个文件夹里,用于存储用户数据或其他应该定期备份的信息。因为应用的沙盒机制,应用只能在几个目录下读写文件。苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录。

         Library,存储程序的默认设置或其它状态信息,其下有两个文件夹:Caches存储应用程序再次启动所需的信息,存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除;Preferences包含应用程序偏好设置文件,不过不要在这里修改偏好设置。

         tmp,提供一个即时创建临时文件的地方,即应用程序再次启动不需要的文件。

(5)iTunes在与iPhone同步时,备份所有的Documents和Library文件。

        iPhone在重启时,会丢弃所有的tmp文件。

二、获取沙盒路径

//用NSHomeDirectory获取沙盒根目录

NSString *homeDirectory = NSHomeDirectory();

NSLog(@"homeDirectory:%@", homeDirectory);



//用用户名获取沙盒根目录

NSString *userName = NSUserName();

NSString *rootPath = NSHomeDirectoryForUser(userName);

NSLog(@"rootPath:%@", rootPath);



//获取Document路径

NSArray *documentPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *documentPath = [documentPaths objectAtIndex:0];

NSLog(@"documentPath:%@", documentPath);



//获取Library目录

NSArray *libraryPaths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES);

NSString *libraryPath = [libraryPaths objectAtIndex:0];

NSLog(@"libraryPath:%@", libraryPath);


//获取Cache目录

NSArray *cachesPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString *cachesPath = [cachesPaths objectAtIndex:0];

NSLog(@"cachesPath:%@", cachesPath);


//获取tmp目录

NSString *tmpDir = NSTemporaryDirectory();

NSLog(@"tmpDir:%@", tmpDir);

打开Finder,前往文件夹(Shift + Cmd + G)