V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dioxide
V2EX  ›  程序员

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

  •  
  •   dioxide · 2019-10-10 17:29:32 +08:00 · 2054 次点击
    这是一个创建于 1631 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT. 在 Mac 或 Linux 环境

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

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

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

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

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

    还有一个则是大名鼎鼎的 sysinternals 套件之一,Process Explorer, 界面差了点不太好用,功能还是没得说的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5853 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:56 · PVG 09:56 · LAX 18:56 · JFK 21:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.