|
|
|
|
移动端

2.2.2 查看系统调用(1)

《UNIX/Linux网络日志分析与流量监控》第2章UNIX/Linux 系统取证,本章介绍了大量UNIX 平台下计算机取证的方法,用实例展示了硬盘数据收集和恢复技巧,并用两个案例展示了如何灵活运用各种工具来处理网络故障。本节为大家介绍查看系统调用。

作者:李晨光来源:机械工业出版社|2014-11-26 19:48

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.2.2 查看系统调用(1)

1.Linux 下系统调用查看工具

一些篡改系统文件、植入木马或许能骗过初级管理员,一旦利用系统调用查看工具深入到系统层面,木马都会原形毕露。Strace 常用来跟踪进程执行时的系统调用和所接收的信号。Linux 系统进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。所谓系统调用(system call),就是内核提供的功能十分强大的一系列函数。这些系统调用是在内核中实现的,再通过一定的方式把系统调用的参数传递给用户。Strace 可以跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间。有关它的具体应用参见本章的案例一。

2.UNIX 下系统调用查看工具

dtrace 是UNIX 平台下的动态跟踪工具,是由Sun 公司开发的,可以对内核和应用程序进行动态跟踪,当然也可以找出系统瓶颈,在Oracle 收购Sun 之后这一技术又被移植到了Oracle Linux 系统(参考Announcement:Dtrace for Oracle Linux General Availability)。

DTrace 在Solaris 和OpenSolaris 平台下都可以使用。

应用举例:

(1)显示当前系统中的dtrace 探针。

  1. #dtrace -l |more 

(2)查看系统中firefox 进程的情况。

通过ps-e|grep firefox 命令查看系统中有哪些进程:

然后通过dtrace -n 'syscall::exece:return{trace(execname);}'查看调用情况:

(3)查看计算机忙闲状态,用vmstat 命令,得知系统产生2535 个系统调用。

但是,如何简单查找某个进程的问题呢?建议使用dtrace 工具,操作如下:

从最后一行看,发现firefox-bin 是产生大量系统调用的程序。再看看I/O 分布。还是以firefox 进程为例,输入以下命令:

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java网络编程精解

本书结合大量的典型实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK 1.5版本,书中内容包括:Java网络编程的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊