我知道我可以写一个interposer来观察传递给strncpy库调用的参数,但看起来这对DTrace来说应该很容易。
答案 0 :(得分:5)
这是一个工作变体(仅在Mac上测试):
#!/usr/sbin/dtrace -s
pid$target::strncpy:entry
{
printf( "%s( %X, %s, %lld )\n",
probefunc,
arg0,
copyinstr(arg1),
arg2 );
}
copyinstr
是必需的,因为字符串来自userland到内核。