如何监测一个系统中的进程的所有动作(包括打开了什么文件、分别读取或写入的字节信息、建立了哪些网络连接、发送接收的字节流等),并以日志方式记录或实时输出(Monitor).

2019-10-10 17:29:32 +08:00
 dioxide

RT. 在 Mac 或 Linux 环境

或者换句话说: 像使用 Fiddler 调试 HTTP 通信的姿势来调试某个进程. 即调试工具充当被调试工具对外通信的代理. 是否有这样的工具存在?

2079 次点击
所在节点    程序员
16 条回复
lihongjie0209
2019-10-10 17:30:27 +08:00
strace
lihongjie0209
2019-10-10 17:30:48 +08:00
tcpdump
dioxide
2019-10-10 17:40:04 +08:00
@lihongjie0209 3q, 这些是系统命令级的, 但我想问的是否有 “集成化的工具软件”, 比如 Wireshark 是针对数据包分析的,那针对磁盘文件系统、系统硬件资源监测的呢?
locoz
2019-10-10 17:56:35 +08:00
标题说的这种东西,印象中反病毒领域是有的,可能叫“沙箱分析”之类的,具体的没有深入了解过,可以搜一下。
locoz
2019-10-10 17:58:00 +08:00
@locoz #4 收藏过一个腾讯的团队搞的类似产品,可以看看 https://s.tencent.com/product/habo/index.html
d5
2019-10-10 18:03:02 +08:00
看看有没有哪家 hips 提供了接口
dioxide
2019-10-10 18:04:37 +08:00
@locoz 是 HIPS(Host Intrusion Prevent System), 这类么? 反病毒类的.

3q, 我看看你说这个.
lululau
2019-10-10 18:07:30 +08:00
Mac 上有 dtrace
dioxide
2019-10-10 18:07:41 +08:00
@d5, 3q,刚接触这类, 看似都是反病毒厂商在做
locoz
2019-10-10 18:11:09 +08:00
@dioxide #7 对对对,是的
dioxide
2019-10-10 18:16:32 +08:00
@lululau , 是哦, 这个算是官方提供的工具了, 是叫 “ Instruments” 是么. 基于 dtrace 的. 还真没用过
Nitroethane
2019-10-10 18:21:19 +08:00
在 Linux 下进程打开的文件、建立的网络连接可以在 /proc 目录下相应的进程子目录中中获取到,至于读取、写入数据,可以考虑 hook 一下相关函数,内核态或者用户态 hook 都可以,内核态 hook 的话可以用一些内核提供的一些 debug 功能,或者新出来的 ebpf,或者直接硬核 hook 系统调用。用户态 hook 的话可以通过共享库的加载顺序来完成
reus
2019-10-10 18:25:07 +08:00
太多了,sysdig, dtrace, systemtap, 自己写 ebpf 等等

https://github.com/iovisor/bcc 这个就很灵活
dioxide
2019-10-10 18:31:57 +08:00
@Nitroethane @reus , 3q ,就是这种. 孤陋寡闻了
mushan099
2019-10-10 18:35:25 +08:00
windows 下有个 process monitor 的工具非常好用。
linux 下可以参考
https://unix.stackexchange.com/questions/13555/process-monitor-equivalent-for-linux
Jirajine
2019-10-10 19:32:00 +08:00
这种大而全的工具不清楚,不过有两个类似任务管理器的小玩意推荐:

一个是 Process Hacker https://github.com/processhacker/processhacker
查进程树,调试信息,socket,磁盘句柄等等,比原生的好用很多。

还有一个则是大名鼎鼎的 sysinternals 套件之一,Process Explorer, 界面差了点不太好用,功能还是没得说的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/607962

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX