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

2016-08-01 14:53:46 +08:00
 zhouheyang0919
看了一下有 strace 这样重量级的工具,但是在一些简单的情况下并不是很合适。因此自己写了一个跟踪 exec 的共享库。
编译: gcc -fPIC -shared -o exec_logger.so exec_logger.c
使用: LD_PRELOAD=./exec_logger.so your_command
(即定义 LD_PRELOAD 环境变量)

https://gist.github.com/losfair/b032e6cb0479294051dc9f866f56c3b0
2236 次点击
所在节点    分享创造
3 条回复
itfanr
2016-08-01 21:35:11 +08:00
mark ,我用 strace 和 pstack
hitmanx
2016-08-03 18:07:00 +08:00
fd 好像忘了 close 了。另外我没太看懂这个 hook 究竟能干啥,感觉只是把当前的命令行 print 出来?如果不能把我的系统调用打印出来那就文不对题了,如果能打印出来那么是怎么做到的, ld_preload + __attribute__((constructor))毕竟只执行一次啊。能不能解释一下
hitmanx
2016-08-03 18:13:23 +08:00
再看了一遍标题发现理解错了,这个是追踪 exec 函数簇产生的子进程的吧,这就合理多了。开始光注意到 strace 以为是追踪所有系统调用的

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

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

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

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

© 2021 V2EX