读取磁盘加密文件,然后挂载它

时间:2013-02-06 09:01:52

标签: objective-c macos

我在mac OS X ML 10.8中创建磁盘加密(使用Disk utiliti或使用命令hdiutil)。我想在该磁盘中读取文件,但我无法安装它。因为当我挂载它时,另一个应用程序可以在我卸载之前读取它。请帮帮我。(hdiutil命令http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/hdiutil.1.htm

2 个答案:

答案 0 :(得分:0)

我认为唯一合理的方法是挂载磁盘映像。要安全地执行此操作,您可以使用-mountrandom-nobrowse选项hdiutil attach。这将以随机路径名安装磁盘映像,并防止它在UI中可见。

hdiutil attach -mountrandom /tmp -nobrowse /tmp/secret_image.dmg

假设磁盘映像只有一个HFS分区,您可以解析随机挂载路径,如下所示:

hdiutil attach -mountrandom /tmp -nobrowse /tmp/secret.dmg | awk '$2 = /Apple_HFS/ { print $3 }'

或者您可以使用-plist选项以plist XML格式获取输出,该输出可以使用XML工具解析或使用plutil -convert json转换为json。

当然,具有root访问权限的攻击者仍然可以监视新的安装并在您有机会卸载它之前拦截您的磁盘映像,但如果您的攻击者拥有root权限,那么几乎所有的注意都已关闭。

答案 1 :(得分:0)

要执行此操作,您必须自己读取和解密dmg文件,然后解释磁盘映像中的HFS文件系统以获取您的文件。这并不容易,但肯定是可能的。请查看HFSExplorer源代码。

但我不会为此投入太多精力。要么使用更容易阅读的不同文件格式来存储加密数据,要么使用pajps解决方案。请记住,无论您做什么,一旦您解密文件,用户将能够获得解密数据。你可以做得更难,但你无法阻止它。