refs #566 refactor dependencies

This commit is contained in:
iMHLv2
2021-10-06 12:47:04 -05:00
parent 3c578aa605
commit 8ec52c7178
5 changed files with 58 additions and 16 deletions
+16 -5
View File
@@ -18,13 +18,24 @@ the Volatility Software License (VSL). See the [LICENSE](LICENSE.txt) file for m
## Requirements
- Python 3.6.0 or later. <https://www.python.org>
- Pefile 2017.8.1 or later. <https://pypi.org/project/pefile/>
Volatility 3 requires Python 3.6.0 or later. To install the most minimal set of dependencies (some plugins will not work) use a command such as:
## Optional Dependencies
```shell
pip3 install requirements-minimal.txt
```
- yara-python 3.8.0 or later. <https://github.com/VirusTotal/yara-python>
- capstone 3.0.0 or later. <https://www.capstone-engine.org/download.html>
Alternately, the minimal packages can be installed automatically when Volatility 3 is installed. However, as noted in the Quick Start section below, Volatility 3 does not *need* to be installed prior to using it.
```shell
python3 setup.py build
python3 setup.py install
```
To enable the full range of Volatility 3 functionality, use a command like the one below. For partial functionality, comment out any unnecessary packages in [requirements.txt](requirements.txt) prior to running the command.
```shell
pip3 install requirements.txt
```
## Downloading Volatility
+4
View File
@@ -0,0 +1,4 @@
# These packages are required for building the documentation.
sphinx>=1.8.2
sphinx_autodoc_typehints>=1.4.0
sphinx-rtd-theme>=0.4.3
+2
View File
@@ -0,0 +1,2 @@
# These packages are required for core functionality.
pefile>=2017.8.1 #foo
+24
View File
@@ -0,0 +1,24 @@
# The following packages are required for core functionality.
pefile>=2017.8.1
# The following packages are optional.
# If certain packages are not necessary, place a comment (#) at the start of the line.
# This is required for the yara plugins
yara-python>=3.8.0
# This is required for several plugins that perform malware analysis and disassemble code.
# It can also improve accuracy of Windows 8 and later memory samples.
capstone>=3.0.5
# This is required by plugins that decrypt passwords, password hashes, etc.
pycryptodome
# This can improve error messages regarding improperly configured ISF files.
jsonschema>=2.3.0
# This is required for memory acquisition via leech.
leechcorepyc>=2.4.0
# This is required for analyzing Linux samples acquired with AVML.
python-snappy==0.6.0
+12 -11
View File
@@ -9,6 +9,16 @@ from volatility3.framework import constants
with open("README.md", "r", encoding = "utf-8") as fh:
long_description = fh.read()
def get_install_requires():
requirements = []
with open("requirements-minimal.txt", "r", encoding="utf-8") as fh:
for line in fh.readlines():
stripped_line = line.strip()
if stripped_line == "" or stripped_line.startswith("#"):
continue
requirements.append(stripped_line)
return requirements
setuptools.setup(name = "volatility3",
description = "Memory forensics framework",
version = constants.PACKAGE_VERSION,
@@ -24,7 +34,7 @@ setuptools.setup(name = "volatility3",
"Documentation": "https://volatility3.readthedocs.io/",
"Source Code": "https://github.com/volatilityfoundation/volatility3",
},
python_requires = '>=3.5.3',
python_requires = '>=3.6.0',
include_package_data = True,
exclude_package_data = {
'': ['development', 'development.*'],
@@ -37,13 +47,4 @@ setuptools.setup(name = "volatility3",
'volshell = volatility3.cli.volshell:main',
],
},
install_requires = ["pefile"],
extras_require = {
'leechcorepyc': ["leechcorepyc>=2.4.0"],
'jsonschema': ["jsonschema>=2.3.0"],
'yara': ["yara-python>=3.8.0"],
'crypto': ["pycryptodome>=3"],
'disasm': ["capstone;platform_system=='Linux'", "capstone-windows;platform_system=='Windows'"],
'doc': ["sphinx>=1.8.2", "sphinx_autodoc_typehints>=1.4.0", "sphinx-rtd-theme>=0.4.3"],
'avml': ["python-snappy==0.6.0"],
})
install_requires = get_install_requires())