GitHub地址:https://github.com/volatilityfoundation/volatility
distorm3网盘地址:
链接:https://pan.baidu.com/s/1xyZ4bnwNylv1tzsm79zrkg
提取码:cnmd
1 windows下安装
1.1 缺少Crypto.Hash
pip2 install pycryptr
不要注册 pip2 install Crypto,注册了就卸载
1.2 缺少distorm3
1.2.1 下载
python2一般安装不上,那就源码安装
distorm3下载地址:
https://files.pythonhosted.org/packages/93/c4/71dcf0fa683c887253319d92c5d2319fb94cc3f89f7d908fd8275df48cc5/distorm3-3.5.1.tar.gz 这个install错了就用下一个
或者
https://github.com/gdabah/distorm
1.2.2 安装
python2 setup.py build
python2 setup.py install
1.2.3 在python环境下import distorm3出错
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “build\bdist.win-amd64\egg\distorm3\__init__.py”, line 57, in <module>
File “build\bdist.win-amd64\egg\distorm3\__init__.py”, line 55, in _load_distorm
ImportError: Error loading the diStorm dynamic library (or cannot load library into process)
这就是因为缺少DLL导致
在distorm3-3.5.1下make/win32目录打开distorm.sln生成一个DLL
生成的DLL修改为“_distorm3.dll”放到~Python27\Lib\site-packages目录下
然后就可以使用了。
2 使用教程
Volatility分析的是内存dump文件
2.1 VTypes
Volatility框架中数据结构定义以及解析的语言。
大部分操作系统底层都是使用C语言编写的,其中大量使用数据结构来组织和管理相关的变量以及属性.因为Volatility是用Python语言编写的,所以我们需要一种方式在Python源文件中表示C语言的数据结构.VTypes正是用于实现这一点的.
2.2 Profiles(配置文件)
profile是特定操作系统版本以及硬件体系结构(x86,x64,ARM)中VTypes,共用体,对象类型的集合.除了这些组件以外,profile还包括如下:
元数据:操作系统的名称(例如:”windows”,”mac”,”linux”),内核版本,以及编译号.
系统调用信息:索引以及系统调用的名称
常量值:全局变量-在某些操作系统中能够在硬编码的地址处找到的全局变量
系统映射:关键全局变量和函数的地址(仅限Linux和Mac)
每个profile(配置文件)有个一个唯一的名称,通常是由操作系统的名称,版本,服务包,系统结构等信息组成.例如:Win7SP1x64是64位的Windows 7 SP1系统配置文件的名称.
为什么要设置配置文件这个选项呢,因为不同版本的操作系统,其中的内核数据结构成员以及偏移可能会发生改变.