购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.6 strace

strace(syscall Trace)是Linux中用于跟踪系统调用的一个实用工具,可截获并记录glibc库和其他库的系统调用信息,以及被分析的进程收到的信号。strace内部使用ptrace检查进程的系统调用,对被分析应用的系统调用进行跟踪,可以了解应用与系统的交互过程及应用的真实功能,有助于恶意代码的分析,了解恶意代码的真实目的和意图。

strace命令常见选项有:-p用于指定被跟踪的进程号;-f用于跟踪任何子进程;-o用于输出重定向到文件;-c用于输出每个系统调用的次数及时间;-e用于过滤跟踪事件。

strace输出的系统调用信息由三部分组成:系统调用;系统调用的参数,由()标识;系统调用的结果,由=标识。

strace的应用示例如下:

(1)$strace-p 26380:用于跟踪进程26380的系统调用情况。例如:

表示调用了brk系统调用,参数为0,结果为0xadb000。

(2)$strace-e write./stex:用于跟踪./stex进程的write系统调用情况。

(3)$strace-f-eopen/usr/sbin/sshd 2>&1|grep ssh:由于strace默认输出到STDERR,要使用管道技术输出到其他命令,如grep,因此需要进行重定向操作。 ca0FxPUFYGKSNNzqOamXSG7ABTQtj0k1AKXKLEF8iPw4hu53VhbIEqjZ07sZ80kC

点击中间区域
呼出菜单
上一章
目录
下一章
×