mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-08-17 20:35:40 +02:00
Instead of using the tree-sitter third party library, this uses Python's `ast` module to parse the source code and traverse the tree with a visitor pattern. This is preferred because it's native to the language itself, and Python developers are more likely to be familiar with it. The traversal also handles nested scopes better than the prior implementation. For example, classes that are declared inside of other classes can now be looked up even though they don't exist at the top level of the module namespace, since any time a class definition is entered, that class is pushed to the top of a stack that can be examined when visiting inner classes. This also adds lots of log messages at different levels, plus a command line argument for specifying verbosity, which should help with debugging down the line.
99 lines
2.2 KiB
TOML
99 lines
2.2 KiB
TOML
[project]
|
|
name = "volatility3"
|
|
description = "Memory forensics framework"
|
|
keywords = [
|
|
"volatility",
|
|
"memory",
|
|
"forensics",
|
|
"framework",
|
|
"windows",
|
|
"linux",
|
|
"volshell",
|
|
]
|
|
readme = "README.md"
|
|
authors = [
|
|
{ name = "Volatility Foundation", email = "volatility@volatilityfoundation.org" },
|
|
]
|
|
requires-python = ">=3.8.0"
|
|
license = { text = "VSL" }
|
|
dynamic = ["version"]
|
|
|
|
dependencies = ["pefile>=2024.8.26"]
|
|
|
|
[project.optional-dependencies]
|
|
full = [
|
|
"yara-python>=4.5.1,<5",
|
|
"capstone>=5.0.3,<6",
|
|
"pycryptodome>=3.21.0,<4",
|
|
"leechcorepyc>=2.19.2,<3; sys_platform != 'darwin'",
|
|
# https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst
|
|
# 10.0.0 dropped support for Python3.7
|
|
# 11.0.0 dropped support for Python3.8, which is still supported by Volatility3
|
|
"pillow>=10.0.0,<11.0.0",
|
|
]
|
|
|
|
cloud = ["gcsfs>=2024.10.0", "s3fs>=2024.10.0"]
|
|
|
|
dev = [
|
|
"volatility3[full,cloud]",
|
|
"jsonschema>=4.23.0,<5",
|
|
"pyinstaller>=6.5.0,<7",
|
|
"pyinstaller-hooks-contrib>=2024.9",
|
|
"types-jsonschema>=4.23.0,<5",
|
|
]
|
|
|
|
test = [
|
|
"volatility3[dev]",
|
|
"pytest>=8.3.3,<9",
|
|
"yara-x>=0.10.0,<1",
|
|
]
|
|
|
|
docs = [
|
|
"volatility3[dev]",
|
|
"sphinx>=4.0.0,<9",
|
|
"sphinx-autodoc-typehints>=2.0.0,<3",
|
|
"sphinx-rtd-theme>=3.0.1,<4",
|
|
]
|
|
|
|
[project.urls]
|
|
homepage = "https://github.com/volatilityfoundation/volatility3/"
|
|
documentation = "https://volatility3.readthedocs.io/"
|
|
repository = "https://github.com/volatilityfoundation/volatility3"
|
|
issues = "https://github.com/volatilityfoundation/volatility3/issues"
|
|
|
|
[project.scripts]
|
|
vol = "volatility3.cli:main"
|
|
volshell = "volatility3.cli.volshell:main"
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = { attr = "volatility3.framework.constants._version.PACKAGE_VERSION" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["volatility3*"]
|
|
|
|
[tool.mypy]
|
|
mypy_path = "./stubs"
|
|
show_traceback = true
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py38"
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"F", # pyflakes
|
|
"E", # pycodestyle errors
|
|
"W", # pycodestyle warnings
|
|
"G", # flake8-logging-format
|
|
"PIE", # flake8-pie
|
|
"UP", # pyupgrade
|
|
]
|
|
|
|
ignore = [
|
|
"E501", # ignore due to conflict with formatter
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|