Linux kernel 用于从RAM快照解码页表和描述符表的工具

Linux kernel 用于从RAM快照解码页表和描述符表的工具,linux-kernel,x86,reverse-engineering,intel,disassembly,Linux Kernel,X86,Reverse Engineering,Intel,Disassembly,我需要一种实用的方法来分析RAM+寄存器的快照,并轻松地可视化(不一定以图形方式)x86体系结构。这将包括页面表、中断描述符表、全局描述符表等 请注意,我对操作系统特定的信息(例如,进程列表等)不感兴趣,我只对体系结构感兴趣 显然,我们可以从Intel文档中找出所有这些结构(以及所有版本)的布局,但我想知道是否已经有任何简单的工具可以对它们进行解码。取证维基中列出了几种用于内存取证分析的工具,位于(的一部分;还有用于的变体)。有些工具是开源的和活动的: 内存采集工具的输出是包含系统原始物理内存的

我需要一种实用的方法来分析RAM+寄存器的快照,并轻松地可视化(不一定以图形方式)x86体系结构。这将包括页面表、中断描述符表、全局描述符表等

请注意,我对操作系统特定的信息(例如,进程列表等)不感兴趣,我只对体系结构感兴趣


显然,我们可以从Intel文档中找出所有这些结构(以及所有版本)的布局,但我想知道是否已经有任何简单的工具可以对它们进行解码。

取证维基中列出了几种用于内存取证分析的工具,位于(的一部分;还有用于的变体)。有些工具是开源的和活动的:

内存采集工具的输出是包含系统原始物理内存的内存映像。可以使用各种各样的工具来搜索内存映像中的字符串或其他模式,但要提取有关系统状态的更高级别信息,需要使用内存分析工具

Linux内存分析工具。 活跃的开源项目:

  • 是一组用Python实现的工具,用于从易失性内存(RAM)样本中提取数字工件。看。(可用性/许可证:GNU GPL)
  • 包括一个基于Python的分析框架,该框架源自Volatility,后来又添加了许多特性,以及它自己的收购工具。它可用作库,并在GRR远程实时取证项目中使用
  • 是一个可扩展的Linux内核转储分析程序。尽管它被设计为一种调试工具,但它也被用于内存取证。例如,参见AAron Walters撰写的2008年DFRWS挑战赛。(可用性/许可证:GNU GPL)
(还列出了一些非活动项目,并且有)

例如,正在使用内核和进程(windows),列出linux进程的页面()并以其他方式解析内存转储

[Rekall]还有GUI:(pip安装Rekall GUI)和用于搜索进程的插件

来自David Anderson@redhat的解决方案没有之前的两个解决方案那么通用,但仍然知道如何解析Linux内核转储。它记录在“白皮书:红帽崩溃实用程序”中

Red Hat crash analysis实用程序松散地基于SVR4 UNIX crash命令,但通过将其与GNU gdb调试器完全合并而得到了显著增强。两者的结合有效地结合了传统UNIX崩溃实用程序的内核特性和gdb的源代码级调试功能。该实用程序可用于调查:实时Linux系统、由Kdump工具创建的Linux内核核心转储、压缩的Linux内核核心


检查用于取证的内存成像工具(大多数工具和解决方案用于内存图像捕获;但有些还具有解码/搜索功能;以及)。你是怎么得到垃圾的?您是否也有CPU寄存器转储?(一些结构在特权寄存器中注册)。你知道linux内核版本吗(不精确的版本可能也会有帮助)?John,“操作系统特定的信息(例如,进程列表等),我只是对体系结构感兴趣。”-但是进程虚拟内存对于每个进程都是分开的,因此如何找到每个进程的每个虚拟映射始终是操作系统特定的。页面表的部分可以在进程之间共享(映射的内核部分在Linux和Windows中共享);用户部分可能未共享,或者可能部分共享。因此,如果你的操作系统有具有不同虚拟内存映射的进程,请尝试编写你自己的插件到取证分析工具中。谢谢你的提示,osgx。不过,我正在寻找与操作系统无关的信息,因为我基本上是在编写自己的内核。因此,其中一些工具可能有些过分,但我将更仔细地研究它们,因为它们可能包含我需要的内容。我通过虚拟机监控程序获取寄存器值(CRs等)和内存快照。