美文网首页
Volatility初步学习

Volatility初步学习

作者: WebSSO | 来源:发表于2017-08-16 19:03 被阅读45次

    Volatility是一个内存分析工具,其能够分析操作系统的物理内存,获取其语义信息。

    针对一个Linux操作系统(安装文件),Volatility进行内存分析时,其需要获取profile,profile包括两个内容:systemmap和dwarf,

    其中systemmap列出了一系列符号的虚拟地址;

    dwarf是使用Volatility中的工具生成的文件,包含了内核中一系列数据的结构信息,其是通过将Linux内核的源代码输入工具中,工具进行分析,确定一系列结构的信息,其以树状形式反应,<1>开头的表示是根,<2>表示是根下面的结构信息,比如struct task_struct中,task_struct中包括tasks,则dwarf文件中的形式为<1> task_struct <2> tasks <offset=111>

    真实分析的时候,Volatility应该是如下进行的:

    1. 首先根据systemmap获取虚拟地址,然后进行虚拟地址到物理地址的转换;

    线性地址结构如下图所示:

    Page Map level 4        Page Directory Pointer    Page Table Selector     Page Table   Enter                页内字节寻址

    ---------------------                ------------------------             ---------------------     ----------------------                  ----------------------

    47                       39    38                           30    29                       21       20                          12          11                          0

    概念:

    PML4T(Page Map Level4 Table)及表内的PML4E结构,每个表为4K,内含512个PML4E结构,每个8字节

    PDPT (Page Directory Pointer Table)及表内的PDPTE结构,每个表4K,内含512个PDPTE结构,每个8字节

    PDT (Page Directory Table) 及表内的PDE结构,每个表4K,内含512个PDE结构,每个8字节

    PT(Page Table)及表内额PTE结构,每个表4K,内含512个PTE结构,每个8字节。

    2. 取出对应物理地址的内容,然后按照dwarf中获取的结构信息,解析语义信息,获取语义。

    通过分析,针对进程而言,可以获取dtb、进程名称(至多16个字符)、uid、gid、pid

    针对文件,可以获取打开文件的进程名称、pid、文件路径信息。

    相关文章

      网友评论

          本文标题:Volatility初步学习

          本文链接:https://www.haomeiwen.com/subject/xthwrxtx.html