www.tengbo9887.com,腾博游戏|官网
互联网
您所在的位置是:www.tengbo9887.com > 互联网 >
互联网
您所在的位置是:www.tengbo9887.com > 互联网 >

互联网

沙盒和NSBundle的区别

发布时间:2019-12-24 20:06    浏览次数 :

启动应用程序,观察到它通过HTTPS发出各种网络请求。例如,连接到adwareres.securemacos.com通过GET请求/AdwareDoctor/master.1.5.5.js:

Jenkins环境深入理解

    1. Jenkins相关配置文件路径
    • Jenkins工作目录:/Users/Shared/Jenkins/Home

      • 项目目录:/jobs

        • 单个项目目录:/jobs/项目名称

          • 项目配置文件:/jobs/项目名称/config.xml

          • 项目编译目录:/jobs/项目名称/builds

          • 项目空间目录:/jobs/项目名称/workspace

      • 插件目录:/plugins

    • Jenkins环境配置文件:/Library/LaunchDaemons/org.jenkins-ci.plist

      • 配置 日志文件路径

      • 配置 Jenkins工作目录

      • 配置 Jenkins启动脚本

      • 配置 Jenkins的用户归属

    • Jenkins参数配置文件:/Library/Preferences/org.jenkins-ci.plist

      • 配置 http 端口号

      • 配置 https 端口号

      • 配置 https 证书信息

      • 等等。。。。。。

    • 日志:/private/var/log/jenkins/jenkins.log

    • 启动目录:/Library/Application Support/Jenkins

      • 启动脚本:jenkins-runner.sh

      • 卸载脚本:Uninstall.command

    • 重新启动Jenkins

      • 网页重启方式:http://*****/restart

      • 重启电脑方式

      • 手动重启方式:

        • sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

        • sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

  • [ ] 2. Jenkins 配置 https 地址

    • 生成 https 证书

      • 1

      • 2

      • 3

    • 配置 https 证书位置

      • 将证书key保存到 /Users/Shared/Jenkins/zhengshu/server-key.pem

      • 将证书cert保存到 /Users/Shared/Jenkins/zhengshu/server-cert.pem

    • 配置 /Library/Preferences/org.jenkins-ci.plist 文件

      • 添加 httpsPort : 8443

      • 添加 httpsPrivateKey : /Users/Shared/Jenkins/zhengshu/server-key.pem

      • 添加 httpsCertificate : /Users/Shared/Jenkins/zhengshu/server-cert.pem

    • 配置 /Library/Application Support/Jenkins/jenkins-runner.sh 文件

      • 添加代码 add_to_args httpsPrivateKey

      • 添加代码 add_to_args httpsCertificate

  • 重启启动Jenkins

    • 重启电脑方式

    • 手动重启方式:

      • sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

      • sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

2017-07-26 10:35:51.724627+0800 Harvest[7969:2912283] code: 0x145e0e4e0

//  沙盒存储操作

模拟器在MAC中的路径一:

模拟器在MAC中的安装路径

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

app应用在MAC中的安装路径

  • 在Xcode5和之前的版本中
    • /Users/username/Library/Application Support/iPhone Simulator。
    • 在该文件夹下,可以查看到所有的模拟器版本,点进去后,可查看应用沙盒情况。
    • 在开发中,建议将文件拖动快捷路径到Finder左侧个人收藏下,可以方便打开查看应用沙盒。
  • 在Xcode6中,将模拟器的位置进行了变更
    • /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识(一些字符串)
      • 后面那些模拟器标识就是一些字符串代表每一个不同的iOS设备
        比如D3E79030-5DB9-4E5B-8E46-5C3B100A4C1C就代表这是iPhone4S,点击进去查看device.plist这个文件。

app应用的mainBundle在MAC中路径(app在mac上的存储位置)

  • /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Bundle/Application/iOS应用程序标标识符/iOS应用程序.app,然后右击包内容进入查看。
    • 里面就是传说中的[NSBundle mainBundle]对应的路径
  • mainBundle中加载指定(URL/路径)的文件
- URLForResource方法

NSURL *url = [[NSBundle mainBundle] URLForResource:soundName withExtension:@"mp3"];

- pathForResource方法

NSString *path = [[NSBundle mainBundle] pathForResource:soundName ofType:@"mp3"];

"content": "/Users/user/Downloads/charles-proxy-4.2.6.dmgn1397-06-02 20:48:18 +0000n(n "https://www.charlesproxy.com/assets/release/4.2.6/charles-proxy-4.2.6.dmg",n "https://www.charlesproxy.com/latest-release/download.do"n)nde043b43c49077bbdce75de22e2f2d54n"

图片 1

3、tmp:保存应用程序运行时所需要的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步时不会备份该目录。

app在MAC中的路径二:(文件归档存储/数据持久化存储位置)

  • 在目录中查找查个路径
- NSSearchPathForDirectoriesInDomains( )
  • 应用app文件归档所在路径
    • /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序
// 应用app文件归档所在路径
NSString *path = NSHomeDirectory();
  • Documents(文档)
- /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序/Documents

        NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
  • Library(资源库)
    /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序/Library
    • Library/Caches(沙盒)
      • /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序/Library
// 获取沙盒路径
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

- Library/Preferences(`偏好设置`)
    - /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序/Preferences
  • tmp(临时文件夹)
    • /Users/username/Library/Developer/CoreSimulator/Devices/模拟器标识/data/Containers/Data/Application/iOS应用程序标标识符/iOS应用程序/tmp
        // 获取临时文件夹路径
        NSString *path = NSTemporaryDirectory();

Content-Type: multipart/form-data; boundary=Boundary-E2AE6908-4FC6-4C1D-911A-0B34F844C510

打开 NSHomeDirectory() 中的内容:

1、Application:存放程序源文件,上架前经过数字签名,上架后不可修改。

Simulator相关路径

  • 以下均在Xcode6或以上测试

(lldb) po $rdi

NSString *content = @"my file content";

#import "ViewController.h"

#import "EncodeAndDecode.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

一、属性列表plist存储

    /**

    plist只能存储是写入到Documents目录下且只能是系统自带的一些常规的类,也就是有writeToFile方法的对象才可以使用plist保存数据

    字符串/字典/数据/NSNumber/NSData ...

    自定义的对象不能保存到plist中。

    */

    //1、保存

    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

    // NSUserDomainMask 在用户目录下查找

    // YES 代表展开用户目录的~

    // NSDocumentDirectory 查找Documents文件夹

    //拼接文件路径

    NSString *path = [doc stringByAppendingString:@"/adc.plist"];

    NSLog(@"%@",path);

    NSDictionary *dictionary= @{@"name":@"abc"};

    [dictionary writeToFile:path atomically:YES];

    //读取

    NSDictionary *readDic = [NSDictionary dictionaryWithContentsOfFile:path];

    NSLog(@"%@",readDic);

二、偏好设置

    //偏好设置在library目录下的preference中

    //偏好设置是专门用来保存应用程序的配置信息的不如保存用户名、密码、字体大小等设置,一般情况不要在偏好设置中保存其他数据

    //偏好设置会将所有的数据保存到同一个文件中

    //1、写入

    NSUserDefaults *defults = [NSUserDefaults standardUserDefaults];

    [defults setObject:@"abc" forKey:@"userName"];

    [defults setObject:@"123" forKey:@"key"];

    //让NSUserDefaults立刻保存数据 注意:NSUserDefaults设置数据时,不要立即写入,而是要根据时间戳定时地把缓存中的数据写入本地磁盘。

    //所以调用set方法之后数据有可能还没有写入磁盘应用程序就终止了。出现以上问题,可以通过调用 synchronize 方法强制写入

    [defults synchronize];//如果立刻保存就需要执行这段代码

    //2、读取

    NSString *name = [defults objectForKey:@"userName"];

    NSString *passWord = [defults objectForKey:@"key"];

    NSLog(@"用户名:%@n密码:%@",name,passWord);

三、归档

    /**如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复

    不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协议的对象才可以

    NSCoding协议有2个方法:

    encodeWithCoder:

    每次归档对象时,都会调用这个方法。一帮在这个方法里面指定如何归档对象中的每个实例变量,可以使用encodeObject:forKey:方法归档实例变量

    initWithCoder:

    每次从文件中恢复(解档)对象时,都会调用这个方法。一般在这个方法里面制定如何解档文件中的数据为对象的实例变量,可以使用decodeObject:forKey方法解档实例变量

    */

    //1、归档

    //创建对象

    EncodeAndDecode *obj = [[EncodeAndDecode alloc]init];

    obj.name = @"affas";

    obj.passWord = @"3324123";

    //获取文件路径

    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];

    //拼接文件路径

    NSString *encodePath = [docPath stringByAppendingString:@"/stu.xxoo"];

    [NSKeyedArchiver archiveRootObject:obj toFile:encodePath];

    EncodeAndDecode *decodeObj = [NSKeyedUnarchiver unarchiveObjectWithFile:encodePath];

    NSLog(@"解档之后nname:%@npassWord:%@",decodeObj.name,decodeObj.passWord);

//四、沙盒目录

    //1、程序的Home目录

    /**

                   |--------MyApp.app

    home---|--------Documents

                   |--------Library

                  |--------tmp

    */

    /**

    MyApp.app

    ①存放内容

    该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存,这里用到了lazy loading的思想。

    ②整个目录是只读的

    为了防止被篡改,应用在安装的时候会将该目录签名。非越狱情况下,该目录中内容是无法更改的;在越狱设备上如果更改了目录内容,对应的签名就会被改变,这种情况下苹果官网描述的后果是应用程序将无法启动,我没实践过。

    ③是否会被iTunes同步

    否

    */

    NSString *homePath = NSHomeDirectory();

    NSLog(@"程序home目录:%@",homePath);

    /**打印结果

    /var/mobile/Containers/Data/Application/F37B7D9C-9E11-4CE2-B47E-882D296417F0

    */

    //2、Documents目录

    /**

    Documents

    ①存放内容

    我们可以将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据,可再生的数据文件应该存放在Library/Cache目录下。

    ②是否会被iTunes同步:是

    Documents/Inbox

    ①存放内容

    该目录用来保存由外部应用请求当前应用程序打开的文件。

    比如我们的应用叫A,向系统注册了几种可打开的文件格式,B应用有一个A支持的格式的文件F,并且申请调用A打开F。由于F当前是在B应用的沙盒中,我们知道,沙盒机制是不允许A访问B沙盒中的文件,因此苹果的解决方案是讲F拷贝一份到A应用的Documents/Inbox目录下,再让A打开F。

    ②是否会被iTunes同步

    是

    */

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

    NSLog(@"程序Documents目录:%@",documentPath);

    /**打印结果

    /var/mobile/Containers/Data/Application/B56CC9BE-8953-4213-AF31-27859319DFC5/Documents

    */

   //3、tmp目录

    /**

    ①存放内容

    各种临时文件,保存应用再次启动时不需要的文件。而且,当应用不再需要这些文件时应该主动将其删除,因为该目录下的东西随时有可能被系统清理掉,目前已知的一种可能清理的原因是系统磁盘存储空间不足的时候。

    ②是否会被iTunes同步

    否

    */

    NSString *tmpPath = NSTemporaryDirectory();

    NSLog(@"程序tmp目录:%@",tmpPath);

    /**打印结果

    /private/var/mobile/Containers/Data/Application/D0729DDE-C8BF-4699-9B6F-1CFBC7D38257/tmp/

    */

    //4、Library目录

    /**

    ①存放内容

    苹果建议用来存放默认设置或其它状态信息。

    ②是否会被iTunes同步

    是,但是要除了Caches子目录外

    */

    /**

    Library/Preferences

    ①存放内容

    应用程序的偏好设置文件。我们使用NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写道plist中!

    ②是否会被iTunes同步

    是

    */

    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)lastObject];

    NSLog(@"程序Library目录:%@",libraryPath);

    /**打印结果

    /var/mobile/Containers/Data/Application/23477FDF-68CE-4C42-9D1F-3BD5A7BF76C8/Library

    */

    //5、cache目录

    /**

    ①存放内容

    主要是缓存文件,用户使用过程中缓存都可以保存在这个目录中。前面说过,Documents目录用于保存不可再生的文件,那么这个目录就用于保存那些可再生的文件,比如网络请求的数据。鉴于此,应用程序通常还需要负责删除这些文件。

    ②是否会被iTunes同步

    否。

    */

    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

    NSLog(@"程序Caches目录:%@",cachePath);

    /**打印结果

    /var/mobile/Containers/Data/Application/F9A63466-BA79-4291-9C03-92001BC3EFA7/Library/Caches

    */

    //6、写文件

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

    for (NSInteger i = 0; i < searchPaths.count; i ++) {

        NSString *p = searchPaths[i];

        NSLog(@"[%ld]%@",i,p);

        /**打印结果

        [0]/var/mobile/Containers/Data/Application/B75A8AF9-49BF-4144-8DC9-59554D09292C/Documents

        */

    }

    NSString *writePath = [searchPaths[0] stringByAppendingString:@"/aa.text"];

    NSArray *arr = [NSArray arrayWithObjects:@"文本:",@"text", nil];

    [arr writeToFile:writePath atomically:YES];

    //7、读取文件

    NSArray *readFile = [[NSArray alloc]initWithContentsOfFile:writePath];

    NSLog(@"%@",readFile);

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end

被macOS应用程序沙箱阻止(拒绝),因为枚举正在运行的进程(来自沙箱)是“禁忌”:

encoding:NSUTF8StringEncoding

4、Library/Caches:保存应用程序运行时生成需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的重要数据,比如网络数据缓存存储到Caches下。

回到Adware Doctor应用界面,它已准备好清理用户的系统:

2017-07-26 10:35:51.724655+0800 Harvest[7969:2912283] bundle: /var/containers/Bundle/Application/36A3A0D0-B007-45B1-8672-7A9195CEDBF5/Harvest.app

    沙盒下的目录如下:

[r14 appendFormat:@"%@n"];

注意:每次打印出的地址都是不同的

2、Documents:保存应用程序运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录。

"com.webshoppers.agent.plist",

2017-07-26 10:39:13.476 Harvest[2273:544438] bundle: 0x608000261040

/**每个iOS程序都有自己的文件系统目录,就是沙盒,并且与其他文件系统、其他应用程序隔离,并且其他应用不能访问该沙盒。

pid: 2634

encoding:NSUTF8StringEncoding

*/

输入webtool作为密码解压文件:

- (void)viewDidLoad {

5、Library/Preference:保存应用的所有偏好设置,如iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录。

-> 0x10000cebf <+0>: pushq %rbp

NSLog(@"write to bundle error: %@", error.localizedDescription);

从安全和隐私的角度来看,从官方Mac App Store安装应用程序的主要优势有两点:

另:使用 xcode > Devices 下载 app 的 container 内容,会看到主要就是 沙盒中的内容,再加上一个 AppDataInfo.plist(就是 info.plist).

-(void)collectPSCommonInfoToFile:(void *)arg2 {

2017-07-26 10:38:41.308 Harvest[2236:541410] bundle: /Users/longhua/Library/Developer/CoreSimulator/Devices/2CB55BFD-8176-4ADC-99D6-5280D7BCCF1B/data/Containers/Bundle/Application/817CFB68-19FE-4D58-960F-68F72BE236B7/Harvest.app

rbx = [[BSUtil realHomeDirectory] retain];

1 沙盒和NSBundle的区别

000000010007df90 dd 0x00000001 ;CTL_KERN

2017-07-26 10:39:13.477 Harvest[2273:544438] bundle: /Users/longhua/Library/Developer/CoreSimulator/Devices/2CB55BFD-8176-4ADC-99D6-5280D7BCCF1B/data/Containers/Bundle/Application/05F27F47-8384-40A7-9FDF-451255E282B3/Harvest.app

查看解压出来的内容,Adware Doctor在暗地里收集用户的浏览器历史记录:

if (!isRight) {

研究人员使用静态分析(反编译)和动态分析(网络监控、文件监控和调试)的方法对这款应用程序进行了研究,以下是过程和结果。

}

...

真机中输出:

Adware Doctor使用了collectProcessList2方法:

• A package is any directory that the Finder presents to the user as if it were a single file.

f1a19b8929ec88a81a6bdce6d5ee66e6,

2017-07-26 10:38:41.308 Harvest[2236:541410] home: /Users/longhua/Library/Developer/CoreSimulator/Devices/2CB55BFD-8176-4ADC-99D6-5280D7BCCF1B/data/Containers/Data/Application/E1D22141-A32F-468E-91D5-307BD82FA251

Content-Type: application/zip

}

proc_pidpath(*(int32_t *)(r14 - 0xcb), &var_1030, 0x1000);

NSLog(@"code: %p", self);

近日有外媒报道,Mac App Store中付费安全软件中排名第一的Adware Doctor被研究人员发现在未经用户同意的情况下收集浏览历史,并将数据发送至位于中国的服务器,之后被Mac App Store下架。

isRight = [content writeToFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"file1.txt"]

},

2017-07-26 10:35:51.724596+0800 Harvest[7969:2912283] home: 0x174150490

“version”:“201808243”,

2017-07-26 10:39:13.476 Harvest[2273:544438] code: 0x7f83b450e460

/* @class ACEAdwareCleaner */

下面打印出他们的地址。

首先,在运行文件监视器(例如MacOS内置的fs_usage)和对包含历史记录的文件进行过滤(不区分大小写)后,一些异常的文件访问历史显现出来:

NSError *error;

+(void)collectSafariHistoryToFile:(void *)arg2 {

官方文档中说明(地址:https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html#//apple_ref/doc/uid/10000123i-CH104-SW1):

"/Library/LaunchDaemons/com.crashplan.engine.plist"

2017-07-26 10:39:13.477 Harvest[2273:544438] home: /Users/longhua/Library/Developer/CoreSimulator/Devices/2CB55BFD-8176-4ADC-99D6-5280D7BCCF1B/data/Containers/Data/Application/D91EC197-590D-4538-9651-435056AB5D19

首先是collectSample方法。此方法查询应用程序下载的数据库。看起来它用于寻找收集样本中指定的文件:

第 1 次运行:

}

NSLog(@"home: %p", NSHomeDirectory());

图片 2

2017-07-26 10:33:04.426857+0800 Harvest[7963:2911220] code: 0x14de0ed10

Adware Doctor.44148 WrData[A] ~/Library/Containers/com.yelab.Browser-Sweeper/Data/Library/Application Support/com.yelab.Browser-Sweeper/history/firefoxHistory

2017-07-26 10:33:04.426826+0800 Harvest[7963:2911220] home: 0x17414e650

....

沙盒(NSHomeDirectory()) 是系统加载 app时,为 app 分配的存储空间。如本地数据库,文件存储;

在Mac App Store中,这款应用程序非常受欢迎,在最畅销的应用程序中排名第四,因此连苹果Mac App Store网站都列出了它的信息:

error:&error];

r13 = [[NSString stringWithFormat:@"%@/Library/LaunchAgents", r15] retain];

第 2 次运行:

[r14 appendFormat:@"%@n"];

atomically:YES

“update”:true,

(2)模拟器中,可以通过 writeToFile 向 沙盒 和 Bundle 中 写入文件;真机中是不能向 Bundle 中写入文件的;

Adware Doctor.44148 WrData[A] ~/Library/Containers/com.yelab.Browser-Sweeper/Data/Library/Application Support/com.yelab.Browser-Sweeper/history/chromeHistory

2017-07-26 10:35:51.724381+0800 Harvest[7969:2912283] bundle: 0x17007c7c0

if ([ACECommon appInstalledByBundleId:@"com.apple.Safari"] != 0x0) {

结果分析:

(lldb) po [$rdi arguments]

if (!isRight) {

它如何绕过Mac App Store的沙盒机制来访问用户的文件?

它如何收集用户的浏览器历史记录?

它还收集了哪些系统信息和个人身份信息(PII)?

2017-07-26 10:38:41.307 Harvest[2236:541410] home: 0x7fd6d65043d0

e233edd82b3dffd41fc9623519ea281b,

isRight = [content writeToFile:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"file1.txt"]

/Applications/Siri.app(1396-07-27 03:17:13 +0000)

NSLog(@"home: %@", NSHomeDirectory());

/Applications/Chess.app(1396-06-15 01:20:21 +0000)

NSLog(@"bundle: %p", [[NSBundle mainBundle] infoDictionary]);

(lldb) po [$rdi arguments]

2017-07-26 10:38:41.307 Harvest[2236:541410] code: 0x7fd6d650d820

在AppSandboxFileAccess类的帮助下:

2017-07-26 10:35:51.724857+0800 Harvest[7969:2912283] home: /var/mobile/Containers/Data/Application/BDAA6308-C671-4022-B97C-F8EFE36CE746

现在让我们看看Adware Doctor如何收集用户的浏览器历史记录。使用collectBrowserHistoryAndProcess方法,调用:

第 2 次运行:

Connection: keep-alive

显示 Harvest.app 的包内容:

这些方法中的每一个都包含用于提取浏览器历史记录的代码。

(1)bundle 中有个 info.plist 文件,是 app 的配置文件;沙盒的 Library / Preferences 中有个 com.god.harvest.plist 文件,它用于 UserDefault 存储;

图片 3

[super viewDidLoad];

图片 4

2017-07-26 10:33:04.426597+0800 Harvest[7963:2911220] bundle: 0x17007b8c0

rax = sysctl(0x10007df90, 0x3, 0x0, r13, 0x0, 0x0);

2017-07-26 10:33:04.426885+0800 Harvest[7963:2911220] bundle: /var/containers/Bundle/Application/0FF63C1B-80CC-4C79-9119-3EABE8D61F14/Harvest.app

图片 5

NSBundle 是系统加载 app时,app 的可执行代码和这些代码需要的资源文件所在的目录;

/Applications/Photo Booth.app(1396-04-25 01:50:31 +0000)

2017-07-26 10:33:04.427091+0800 Harvest[7963:2911220] home: /var/mobile/Containers/Data/Application/EA36910B-A24D-48BD-A657-561247429851

NAME =`whoami`; echo /Users/"$NAME"/Library/LaunchAgents/com.apple.Yahoo.plist;

图片 6

这次下载的config1.5.0.js文件包含更多JSON,最值得注意的是这款软件的数据库的链接:

BOOL isRight = NO;

"/Library/LaunchDaemons/com.mcafee.ssm.ScanManager.plist",

2017-07-26 10:38:41.307 Harvest[2236:541410] bundle: 0x600000065380

-c,

NSLog(@"write to home dir error: %@", error.localizedDescription);

...

• A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code.

{

2017-07-26 10:39:13.476 Harvest[2273:544438] home: 0x7f83b470cbb0

...

error:&error];

[rbx release];

NSLog(@"bundle: %@", [[NSBundle mainBundle] bundlePath]);

r14 = [rbx valueForKey:@“sample”];

第 1 次运行:

[rbx release];

模拟器中输出:

[

2017-07-26 10:33:04.446798+0800 Harvest[7963:2911220] write to bundle error: 您没有将文件“file1.txt”存储到文件夹“丰收app”中的权限。

图片 7

2017-07-26 10:35:51.740230+0800 Harvest[7969:2912283] write to bundle error: 您没有将文件“file1.txt”存储到文件夹“丰收app”中的权限。

程序经过苹果官方审查和签发;

程序在沙盒中运行。

atomically:YES

责任编辑:

}

int sub_1000519ad(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5)

"/Library/LaunchDaemons/com.mcafee.ssm.Eupdate.plist",

collectSafariHistoryToFile

collectChromeHistoryToFile

firefoxHistory

listening for for HTTPS requests on port:443

图片 8

801e59290d99ecb39fd218227674646e,

}

-c,

...

图片 9

单击应用程序界面中的“Clean”按钮会触发另一个到adwareres.securemacos.com的网络请求,这次下载的是名为config1.5.0.js的第二个文件:

上一篇:FI配置清单-概要 下一篇:没有了