1
11
只是为了扩展公认的答案:
实际上,“安全笔记”只是作为特殊格式的通用密码存储的。因此,如果您创建了一个安全注释,则可以使用
Keychain Services API:
作为使用的示例
您需要搜索“安全笔记”和笔记标题“测试笔记”。“类型”(或
因此,您可以使用此命令搜索类型为“secure note”、标题为“Testing note”的注释:
结果是:
要获得要输出的密码,还需要传递
仅查看密码输出(您可以使用
(为清晰起见,格式化)
不太有用!如果我们使用一些python代码来解码它:(或您选择的任何语言)
现在我们有了目标!解码结果为:
因此,我们显然将明文密码作为密钥“NOTE”的值(因为plist就是这样存储字典的),但“RTF”密钥是什么?用二进制代码看它会给人一种感觉 rtfd file :
但将其保存为.rtfd不起作用,但后来我意识到,例如,从TextEdit保存的RTF是捆绑包!那么这是如何工作的。。。您不能真正将捆绑包序列化为字节,因为它是一个包含文件的文件夹,但是经过进一步搜索,(我发现 Apple Type Code list ,还有“com.apple.rtfd”,但也有“com.apple.flat-rtfd”! 所以我用了 sample application from Apple 显示有关剪贴板/粘贴板的详细信息。然后,您可以右键单击Keychain访问,“复制安全注释”:
然后,如果您查看ClipboardViewer中的字节,就会发现它与plist中标记中的非十六进制字节相匹配。 呼!这比我预期的要长得多。。。。因此,简而言之,Secure Note只是一个通用密码,带有标题,密码部分是Apple XML Plist,带有明文数据,以及适合于使用“Copy Secure Note to clipboard”复制到剪贴板的粘贴板格式的数据。 我希望这能澄清安全笔记的存储方式,因为确实缺少访问安全笔记的API函数,而官方Keychain访问API中没有任何内容。 |
2
8
我发现你可以使用安全命令行工具提取数据。安全注释存储为具有以下特征的通用密码:
使用命令
|
3
6
您可以从macOS终端使用一长串命令获取密钥链安全注释的值。下面的代码段获取名为“foobar”的注释的值,并将其保存到用户桌面上名为foobar.txt的文件中。
|
Michel · 未安装分发证书/私钥 7 年前 |
DerDingens · 无额外提示的ios钥匙链查询记录 7 年前 |
amurcia · iOS6中的KeychainItemWrapper 10 年前 |
greg · Keychain Services安全说明 10 年前 |