用systemtap研究内核以及相关漏洞

简介: 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-6-6 前几天写了一篇关于kprobes的BLOG,kprobes是个好东西,不过要编写C代码,要编译内核模块,稍嫌有些麻烦。

转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd

作者联系方式:李先静 <xianjimli at hotmail dot com>

更新时间:2007-6-6

 

前几天写了一篇关于kprobes的BLOG,kprobes是个好东西,不过要编写C代码,要编译内核模块,稍嫌有些麻烦。今天我们介绍一个基于kprobes实现的工具systemtap,systemtap是一个内核trace工具,用它来研究内核,跟踪内核执行非常方便。我玩了一下,感觉不错,这里做个笔记。

 

Systemtap提供了一种简单的脚本语言,用户使用脚本语言就可以跟踪内核执行。Systemtap把脚本语言转换成C语言,编译成内核模块,内核模块通过kprobes实现对内核的反射,动态修改函数的行为,增加trace功能,这样用户就不必写C代码,也不必编译内核模块了,用起来方便多了。

 

其实网上已经有一些文章介绍systemtap,不过一般都针对特定系统而言的,这里我们尽量不依赖特定系统,而从源代码构建内核和工具。

 

1.       编译内核,让内核支持设计kprobes和debuginfo。

下载FC 6所带的kernel源代码包(或者标准kernel源代码)。

 

做如下配置:

Kernel hacking

  [*] Kernel debugging  

[*]   Compile the kernel with debug info

Instrumentation Support

      [*] Kprobes (EXPERIMENTAL)

 

    编译/安装:

    make;make modules_install;make install

   

    安装调试信息:

    cp vmlinux /lib/modules/2.6.18-prep

 

    用新内核起动。

 

2.       下载/编译/安装elfutils

wget http://ftp.wustl.edu/pub/cygwin/systemtap/elfutils/elfutils-0.125.tar.gz

tar zxvf elfutils-0.125.tar.gz

cd elfutils-0.125

./configure ;make;make install

 

3.       下载/编译/安装systemtap

wget ftp://sources.redhat.com/pub/systemtap/snapshots/systemtap-20070602.tar.bz2

tar jxvf systemtap-20070602.tar.bz2

cd systemtap

./configure;make;make install

 

4.       试试

#stap -ve 'probe begin { log("hello world") exit () }'

#stap -c df -e 'probe syscall.open { if (target()==pid()) log(name." ".argstr) }'

 

好,可以工作了,下一步开始研究内核吧。

 

参考资源:

http://sourceware.org/systemtap/

 

~~end~~

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/absurd/archive/2007/06/07/1643003.aspx

 

漏洞:

stap-client /; ...
stap-client -; ...
stap-client -D 'asdf ; ls /etc' ...
stap-client -e 'script' -D 'asdf ; /; '

目录
相关文章
|
关系型数据库 MySQL Apache
window下修改MySQL密码
window下修改MySQL密码
380 6
|
存储 Oracle Java
分代 ZGC 详解
本文主要介绍JDK21中的分代ZGC详解,包括染色指针、内存屏障等核心概念及ZGC JVM参数介绍 ZGC(Z Garbage Collector)是Java平台上的一种垃圾收集器,它是由Oracle开发的,旨在解决大堆的低延迟垃圾收集问题。ZGC是一种并发的分代垃圾收集器,它主要针对具有大内存需求和低停顿时间要求的应用程序。
分代 ZGC 详解
pip镜像源大全及配置
在中国使用pip时,可以配置国内镜像源来提高安装速度和稳定性。以下是一些常见的国内镜像源:
17620 0
|
10月前
|
人工智能 Serverless 开发者
最佳实践 | 轻松部署,即刻触达 Qwen2.5 的飞一般的体验
通过阿里云函数计算(FC)部署Ollama和Open WebUI,实现Qwen2.5模型的托管与交互。
|
11月前
|
人工智能 自然语言处理 数据处理
LazyGraphRAG:微软推出的图形增强生成增强检索框架
LazyGraphRAG是微软研究院推出的图形增强生成增强检索框架,旨在大幅降低数据索引成本并提高查询效率。该框架结合了最佳优先搜索和广度优先搜索,支持本地和全局查询,适用于一次性查询、探索性分析和流数据处理。LazyGraphRAG将加入开源的GraphRAG库,为开发者和企业提供更高效的技术支持。
483 0
LazyGraphRAG:微软推出的图形增强生成增强检索框架
|
运维 监控 Linux
Linux系统读写硬盘慢,如何排查?四步教你定位问题!
【8月更文挑战第24天】在Linux系统运维中,硬盘读写速度慢是一个常见且影响重大的问题。它不仅会导致服务器性能下降,还会影响用户体验。本文将详细介绍四个步骤,帮助你快速定位并解决Linux系统硬盘读写慢的问题。
1878 0
|
边缘计算 Linux 云计算
Docker的诞生背景与设计初衷,以及发展前景
Docker是一种开源的容器化技术,它使得应用程序可以在任何Docker环境中快速、可靠地运行,而无需进行大量的配置和安装工作。由于其强大的功能和厂 泛的应用,Docker的发展前景非常广阔。其在云计算、边缘计算等领域的应用将会越来越广泛,同时随着技术的不断完善和更新,Docker也将会在未来继......
|
Kubernetes 安全 Cloud Native
Confidential Containers:云原生机密计算基础设施
后续将基于RunD安全容器打造更完整的机密容器技术,包含支持更多的 HW-TEE 平台,以及构建更完备的机密容器支持能力。
Confidential Containers:云原生机密计算基础设施
|
自然语言处理
有道词典使用离线翻译
有道词典使用离线翻译
962 0