V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zhouheyang0919
V2EX  ›  分享创造

写了一个简单的 Linux 下跟踪 execve 的工具

  •  
  •   zhouheyang0919 ·
    losfair · 2016-08-01 14:53:46 +08:00 · 2406 次点击
    这是一个创建于 3031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了一下有 strace 这样重量级的工具,但是在一些简单的情况下并不是很合适。因此自己写了一个跟踪 exec 的共享库。
    编译: gcc -fPIC -shared -o exec_logger.so exec_logger.c
    使用: LD_PRELOAD=./exec_logger.so your_command
    (即定义 LD_PRELOAD 环境变量)

    3 条回复    2016-08-03 18:13:23 +08:00
    itfanr
        1
    itfanr  
       2016-08-01 21:35:11 +08:00
    mark ,我用 strace 和 pstack
    hitmanx
        2
    hitmanx  
       2016-08-03 18:07:00 +08:00
    fd 好像忘了 close 了。另外我没太看懂这个 hook 究竟能干啥,感觉只是把当前的命令行 print 出来?如果不能把我的系统调用打印出来那就文不对题了,如果能打印出来那么是怎么做到的, ld_preload + __attribute__((constructor))毕竟只执行一次啊。能不能解释一下
    hitmanx
        3
    hitmanx  
       2016-08-03 18:13:23 +08:00 via iPhone
    再看了一遍标题发现理解错了,这个是追踪 exec 函数簇产生的子进程的吧,这就合理多了。开始光注意到 strace 以为是追踪所有系统调用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1802 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:44 · PVG 00:44 · LAX 08:44 · JFK 11:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.