首先在MacOS High Sierra 10.13上挂载镜像,提示需要输入密码,根据镜像文件尾部明文,猜测密码是N1CTF_APFS,输入成功挂载。

挂载后发现镜像中含有ctf文件夹,内含531个txt。

根据题目提示的WWDC2017发布的APFS新特性,找到如下描述:

 

使用apfs_snapshot(注意:该程序在/System/Library/Filesystems/apfs.fs/Contents/Resources/路径下,且10.12版本有,10.13没有)找到快照ctf:

 

使用mount_apfs挂载快照到snap下:

发现恢复快照后同样是一个ctf文件夹,内含531个txt,ls后发现文件大小,修改时间没有差异。

又由提示的

找到如下的资料,猜测和恢复快照前后的txt修改时间有关(需要读取到纳秒级,ls显示的精度不够):

尝试通过python读取文件的mtime(纳秒级),发现确实是纳秒部分才出现变化:

由提示的

,猜想是提取快照前后的文件修改时间进行异或,得到flag,但是提取9位纳秒进行异或后没有看到什么有价值的信息。

重新观察打印的时间信息,发现尾部都是00x,而且最后一位都是0-7,猜测是隐写在最后一位,且需要转成3位的bin(如 7 -> 111),再加上提示的异或后是一个zip,所以开头应该是504b0304,对照后发现吻合,写脚本转换即可提取出zip:

压缩包同样经过了加密,密码是N1CTF_APFS:


另:其实未异或前提取出的隐藏信息也是一个zip,同样加密了,隐藏了假flag hhh: