wsl 借助 anaconda 配置 volatility

短学期课程中 misc 模块的一道题目,也是初次见识到 conda环境管理的威力,之后大概会借助其重构 wsl.

题目要求

配置好相关 python 环境,成功运行 volatility 2.6 版本,并复现例题。要求:

  1. 从官方 GitHub 下载 volatility 2 的源码(不要 volatility 3);

  2. 直接在本机 / 虚拟机 / wsl 上配置环境,成功运行;

  3. 复现例题。

给的提示里面有一条是 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 还会抽风,之后摸索摸索看能不能解决一下。

参考


wsl 借助 anaconda 配置 volatility
https://shadowash0215.github.io/2023/07/30/misc-2/
Author
shad0wash
Posted on
July 30, 2023
Licensed under