我想检查给定应用程序的每个系统和外部库调用,以及传递的数据结构。(有问题的应用程序是某种基于OpenSSL的打包软件和围绕OS X钥匙串,我想知道是否可以获得私钥,该私钥标记为non-extractable in Keychain Access。)
我怎么能在OS X上做到这一点?
我认为DTrace会浮现在脑海中,但我找不到任何样本技巧来实现上述目标。
答案 0 :(得分:1)
要检查每个系统调用和外部库调用,DTrace脚本如下所示:
#!/usr/sbin/dtrace -s
syscall:::entry
/ pid == $1 /
{
}
pid$1:lib*::entry
{
}
用法如下:./ check.did(进程ID)。对于输入参数,可以使用arg0 ... argN(uint64_t类型)来引用它们。
但我认为你应该首先找到相关的系统调用和库函数,否则输出非常庞大且难以调试。
希望这有帮助!