最近有取证需求,在制作受害机器元数据符号遇到一个问题:
make -C //lib/modules/5.15.0-91-generic/build CONFIG_DEBUG_INFO=y M="/root/volatility/tools/linux" modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-91-generic'
MODPOST /root/volatility/tools/linux/Module.symvers
ERROR: modpost: missing MODULE_LICENSE() in /root/volatility/tools/linux/module.o
make[2]: *** [scripts/Makefile.modpost:133: /root/volatility/tools/linux/Module.symvers] Error 1
make[2]: *** Deleting file '/root/volatility/tools/linux/Module.symvers'
make[1]: *** [Makefile:1830: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-91-generic'
make: *** [Makefile:10: dwarf] Error 2
解决办法,在 module.c
末尾加入
MODULE_LICENSE("GPL");
如果你不知道
module.c
在哪,它位于/root/volatility/tools/linux
再次make
,就没问题了
我看社区里边没有关于内存分析的知识我简单的写一下,想到哪写到哪,欢迎大佬补充
制作Profile
因为应急环境中,需要分析内存的都是出问题的,一般都是断网的,所以需要记录受害机器的内核及发行版本,如果你能拿到系统镜像或虚拟机就很简单了
- 如果你没办法在受害机器编译执行相关操作,请记录内核版本及发行版本,下载对应镜像获取相应版本的软件更新
- 如果你有受害机器镜像或可以直接在受害机器操作,直接按照本文操作即可
对于不同发行版本的Linux
需要安装相关的内核头文件、必要开发文件及编译工具(make),其他发行版系统自行百度,比如Ubuntu
需要linux-kernel-headers
和linux-source-x.xx.x
apt install -y linux-kernel-headers linux-source-5.15.0
首先去这个网站下载libdwarf
源码,直接搜索Reason for release
跳转到的相关下载位置
下载完之后,解压
tar -xz libdwarf-0.9.2.tar.xz
进入到libdwarf
目录执行以下:
./configure
make -j12
make install
成功安装输出dw
按tab
会有如下图所示
然后进行提取,注意volatility
为你的vol
项目目录如果你是安装的请找出vol安装路径,如果是git clone volatility
,目录应是以下
cd volatility/tools/linux
make
zip $(lsb_release -i -s)_$(uname -r)_profile.zip module.dwarf /boot/System.map-$(uname -r)
如果以上操作没有任何报错,制作成功后,会在该路径下出现这样的文件发行版本名称+内核版本_profile.zip
,如以下
Ubuntu_5.15.0-91-generic_profile.zip