如何在windows/linux中安装MAC APFS盘符

APFS是Mac OS的新文件系统,到目前为止,许多的取证软件正在不断的兼容这个系统.因此,在目前的环境下使用别的方法才能对Mac OS APFS文件系统进行分析.

windows中安装APFS文件系统

这里用Paragon(免费)的驱动程序来安装APFS文件系统到windows.

windows的APFS将查找连接的APFS文件系统,由于在这里已经创建了一个文件系统,因此我们需要将文件系统挂载为SCSI设备,以便windows APFS驱动程序可以看到这个文件系统,在这里,我使用了image-mounter

使用image-mounter来安装,在这里,我发现我只能选择4096扇区的大小,因为我的盘的扇区大小是4096(如果你需要知道你的盘扇区大小,可以使用查看扇区工具来看看,我用的是mmls

下载Paragon并安装,然后启动.软件会自动检测APFS卷

检测到后,你就可以在windows中浏览APFS文件系统里的内容了.

你可以将其添加到你喜欢的工具中

linux中安装APFS文件系统

在linux上安装APFS中,我使用的是一个国外牛人搞的一个测试linux apfs驱动程序,稳定程度不敢保证,建议先去阅读这个测试驱动的声明.

测试环境为: ubuntu 16.04

准备SIFT

首先,在apfs-fuse工作前先安装一些依赖库,

sudo apt-get update
sudo apt-get install libattr1-dev

如果你是基于ubuntu 16.04之前运行SIFT版本的话,可能还需要一些依赖,包括更新你的cmake.cmake具体升级请按照官网升级,除了cmake之外,我们还要安装ICU库

sudo apt-get install libicu-dev

下载并建立apfs-fuse

从github上下载驱动程序

git clone https://github.com/sgan81/apfs-fuse

然后编译安装.

cd apf-fuse
mkdir build
cd build
cmake ..
make

安装E01镜像

现在SIFT已经建立好了,我们来挂载E01镜像,如果你有一个dd/raw的镜像,你可以直接跳过这个部分

在这里,我使用SIFT中的ewfmount来安装E01的,安装完成后,将在指定的挂载点下显示E01文件的虚拟原始镜像.

命令:

ewfmount <镜像名称> <挂载点>

例子:

ewfmount mac_image.E01 /mnt/ewf

如果你在使用ewfmount中出现问题的话,可以看看这个博客的一些替代工具来挂载ewf文件.

将原镜像安装在设备上

现在我们有了一个dd/raw镜像了
linux的apfs-fuse驱动程序需要apfs内容所在的设备上,由于磁盘映像可能包含额外的分区,因此我们需要计算出apfs分区开始的偏移量.

以下是X-Ways的截图,这里看到,软件确定了一个apfs分区,从扇区76806开始,以及每个扇区4096个字节(主意,尽管软件将分区表示为apfs,但还是没有解析出来的)

或者,我们可以使用Sleuthkit工具mmls列出截图中的分区,这里可以看到在efi系统分区后面有一个”NoName”分区,偏移量为76806,是驱动器上最大的分区,也显示为每扇区4096个字节

在挂载的ewf上运行mmls:

mmls /mnt/ewf/ewf1

在dd/raw镜像上运行mmls:

mmls mac_image.dd

要设置looback设备,我们需要提供apfs起始分区的偏移量(以字节为单位).由于偏移是在扇区中给出的,我们将需要4096 X 76806 = 314597376 来转换字节.

我们来挂载下”NoName” 分区,页就是apfs分区

对于已挂载的ewf文件

losetup -r -o 314597376 /dev/loop0 /mnt/ewf/ewf1

对于dd/raw镜像

losetup -r -o 314597376 /dev/loop0 mac_image.dd

在上面语法中,-r是只读的,-o是apfs分区开始的偏移量

挂载apfs文件系统

最后,我们将apfs分区挂载到文件系统上,当安装了apfs驱动程序时,apfs-fuse二进制文件将在之前创建的build/bin中,切换到该目录,并通过指向设备和挂载点来运行apfs-fuse

mkdir /mnt/aprs
./apf-fuse /dev/loop0 /mnt/apfs

在我的测试中,输入命令后并没有返回状态.我新打开了一个终端,并在挂载点上执行ls命令来查看是否有正常挂载

成功,现在我可以运行扫描器来查看文件了,并根据需求到处任何文件了.

正如我之前提到的,这只是一个测试性的驱动文件.不是很建议使用在生产环境上.