是否可以从系统物理内存的快照中计算出 Linux 内核版本?

Posted

技术标签:

【中文标题】是否可以从系统物理内存的快照中计算出 Linux 内核版本?【英文标题】:Is it possible to figure Linux kernel version from a snapshot of system physical memory? 【发布时间】:2017-11-02 00:01:48 【问题描述】:

我想知道如果给出运行 Linux 操作系统的物理内存操作系统系统的快照,是否有可能弄清楚它运行的内核版本是什么?我无权访问图片或任何内容。

【问题讨论】:

内存转储,或者:核心转储? 【参考方案1】:

内核版本在内核的物理内存转储中,由 /proc/version 从定义在 include/uapi/linux/utsname.h 中的 struct new_utsname 返回。我建议首先在内核转储中尝试“字符串”命令,并尝试识别通常由 /proc/version 返回的模式的一部分。

Linux 源码 init/version.c 定义如下:

const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"

因此,在转储中搜索字符串“Linux 版本”应该会为您提供包含 /proc/version 返回的信息的 linux_banner 字符串的位置。

【讨论】:

以上是关于是否可以从系统物理内存的快照中计算出 Linux 内核版本?的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核的内存管理 - 概念

逆向IDA远程调试与内存快照

Linux 操作系统原理 — 内存 — 物理存储器与虚拟存储器

Linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)

Linux系统清除缓存

Linux计算真实可用内存