strace指南

strace用来跟踪系统调用
-f fork跟踪子进程
-s 输出string大小,默认32
-c 进行系统调用统计(system Time,花费在内核),退出时输出总结
-T 每次系统调用统计
-o 输出到文件,便于分析,因为这个输出全是到stderr2>&1不太好操控
-e 后面跟:[qualifier=][!][?]value1[,[?]value2]此开关后参数就多了,我常用trace这个修饰(qualifier),还有abbrev, verbose, raw, signal, read, write, fault, or inject !就是取反,看情况是否需要转义。value是依前置修饰的不同而不同,比如trace后跟系统调用,write、read后跟数字(文件描述符)

trace

指定系统调用,比如read connect stat,可以使用正则/regex,POSIX正则表达式,参见shell 第64条
或者指定一定范围的系统调用:无需多言

  • %file 文件名作为参数的系统调用
  • %network
  • %desc 文件描述符相关的系统调用
  • %memory
  • %process
  • %ipc
  • %signal
  • %stat %fstat %lstat stat, fstat, lstat, fstatat - get file status
  • %pure 无参系统调用
read 与 write

举例sudo strace -e read=3 -e trace=connect,read telnet baidu.com 7878 同时跟踪readconnect系统调用,同时还要输出文件描述符3的内容

inject

才注意到个inject,居然可以注入返回值!

实用技巧
  1. 这个程序访问了哪些域名? 查出你的dns,strace 后grep $dns 另一种方式是内核注入mod等
  2. 分析系统程序;比如万一它打开了个可执行程序、脚本了呢?strace后grep 0644 答复2021-11-09 Cannt add PPA
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值