wsl 借助 anaconda 配置 volatility
短学期课程中 misc
模块的一道题目,也是初次见识到
conda
环境管理的威力,之后大概会借助其重构
wsl
.
题目要求
配置好相关 python 环境,成功运行 volatility 2.6 版本,并复现例题。要求:
从官方 GitHub 下载 volatility 2 的源码(不要 volatility 3);
直接在本机 / 虚拟机 / wsl 上配置环境,成功运行;
复现例题。
给的提示里面有一条是 python 的环境管理推荐使用 conda ( miniconda 和 anaconda 都可以)。
于是就又开始了配环境之旅。
安装 conda
笔者配置的环境还是在 wsl 下的,安装的是 anaconda[1]。
首先是从官网上下载对应架构的 Linux 版本,然后放进 wsl 下。 (应该也是可以从终端下下载的,但没捣鼓)
然后安装的话使用 bash filename 即可,filename 就是下载的版本名称。之后的要求全 yes 就行,只要记录一下 conda 的路径就行,因为要用于添加进环境变量中。然后笔者因为已经配置了 zsh ,所以就是 vim ~/.zshrc ,然后添加 export PATH = $anaconda_path 就好了。
创建 volatility 环境
volatility 2.6 要求的环境是 python = 2.9 及以上,但不能是 python 3.x ,但我们现在正常安装的都是 python 3.x ,如果这二者放在一块会有奇怪的错误发生,而 conda 提供了创建隔离的虚拟环境的命令,即 conda create -n env_name python=python_version ,这样就可以互不干扰了。执行命令后可以用 conda info -e 列出所有的环境,而 conda list 可以列出该环境下所有的包。默认进入是 base 环境,想进入其他环境就需要 conda activate env_name ,退出则是 conda deactivate,且 base 环境也是可以退出的。
先把 volatility 的源码下载下来,观察一下,发现没有 volatility 名称的可执行文件,只有名为 vol.py 的文件,所以命令中的 volatility 均被替换成了 vol.py,然后补齐依赖包,可以先跑个命令看看报错,再下包。pycrypto 是 conda 下的,因为是 wsl,用的是 pycrypto 而不是 pycryptodemo,distorm3 是 pip 下的,因为 python2 下 pip 可以直接在 wsl 里面下,conda 不行。至此,需要的环境就基本上搭建完成了。
后记
conda
的环境管理确实十分强大,而一想起自己之前混乱的的环境管理和包安装就十分汗颜,所以会考虑重装一下
wsl ,到时候重配 zsh 的话应该又能水水了。不过 conda
的使用也有点小问题,比如在 base 环境下它也无法识别 sage ,或许是因为
sage 不仅仅是一个包这么简单,但这使得我必须退出 base 环境才能运行,而且
vscode 还会抽风,之后摸索摸索看能不能解决一下。