1

Brendan Gregg の sshkeysnoop.d を Mac OS X で動作させることができるかどうかを確認しようとしましたが、問題が発生しています。これを機能させることは可能ですか?もしそうなら、どのように?

私が得ているエラーは次のとおりです。

dtrace: failed to compile script ./sshkeysnoop.d: line 40: probe description syscall::exec:return does not match any probes

DTrace を使用して Mac OS X で他の種類のキー ロギングを行うことはできますか?

4

3 に答える 3

1

このようなスクリプトを適応させるためにできることがいくつかあります。まず、dtraceどのプローブ ポイントがあるかを尋ねることができます。

$ sudo dtrace -l -f 'syscall::exec*'
   ID   PROVIDER            MODULE                          FUNCTION NAME
18442    syscall                                              execve entry
18443    syscall                                              execve return

次に、単一プロセスのすべてのシステムコールを追跡して、何が起こっているかを確認できます。

$ sudo dtruss ssh somewhere 2>dtrussout
Password: (type something here)

目を通せdtrussoutば分かる

read_nocancel(0x5, "a\0", 0x1)       = 1 0
read_nocancel(0x5, "s\0", 0x1)       = 1 0
read_nocancel(0x5, "d\0", 0x1)       = 1 0
read_nocancel(0x5, "f\0", 0x1)       = 1 0
read_nocancel(0x5, "\n\0", 0x1)      = 1 0

その知識があれば、スクリプトを適応させるのは非常に簡単です。

$ diff sshkeysnoop.d{.orig,}
40c40
< syscall::exec:return, syscall::exece:return
---
> syscall::execve:return
51c51
< syscall::open:entry, syscall::open64:entry
---
> syscall::open:entry
58c58
< syscall::open:return, syscall::open64:return
---
> syscall::open:return
68c68
< syscall::read:entry
---
> syscall::read_nocancel:entry
75c75
< syscall::read:return
---
> syscall::read_nocancel:return
于 2011-09-17T08:03:04.160 に答える
1

OS X には syscall::exec DTrace プローブがありません。ただし、syscall::execve はあります。同様に、このスクリプトでも使用されている syscall::open64 がありません。ただし、exec を execve に置き換え、open64 を削除しても、スクリプトは正しく機能しません。

于 2011-09-09T01:33:28.460 に答える
0

また、 all オプションでロードしていることを確認してください

kldload dtraceall

だけでなく

kldload dtrace

または、syscall がロードされません。

于 2014-04-11T11:04:22.777 に答える