mirror of
https://github.com/mandiant/capa.git
synced 2025-12-12 23:59:48 -08:00
* Add deptry support This commit resolves #1497. Note: known_first_party refers to modules that are supposed to be local, i.e. idaapi, ghidra, java, binaryninja, ... etc. * adjust running stages for deptry hook * adjust deptry exclusions, and humanize dependency --------- Co-authored-by: Soufiane Fariss <soufiane.fariss@um5s.net.ma>
187 lines
4.9 KiB
TOML
187 lines
4.9 KiB
TOML
# Copyright (C) 2023 Mandiant, Inc. All Rights Reserved.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at: [package root]/LICENSE.txt
|
|
# Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and limitations under the License.
|
|
|
|
[build-system]
|
|
requires = ["setuptools", "setuptools-scm"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "flare-capa"
|
|
authors = [
|
|
{name = "Willi Ballenthin", email = "william.ballenthin@mandiant.com"},
|
|
{name = "Moritz Raabe", email = "moritz.raabe@mandiant.com"},
|
|
{name = "Mike Hunhoff", email = "michael.hunhoff@mandiant.com"},
|
|
]
|
|
description = "The FLARE team's open-source tool to identify capabilities in executable files."
|
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
license = {file = "LICENSE.txt"}
|
|
requires-python = ">=3.8"
|
|
keywords = ["malware analysis", "reverse engineering", "capability detection", "software behaviors", "capa", "FLARE"]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Information Technology",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Natural Language :: English",
|
|
"Programming Language :: Python :: 3",
|
|
"Topic :: Security",
|
|
]
|
|
dependencies = [
|
|
"tqdm==4.66.4",
|
|
"pyyaml==6.0.1",
|
|
"tabulate==0.9.0",
|
|
"colorama==0.4.6",
|
|
"termcolor==2.4.0",
|
|
"wcwidth==0.2.13",
|
|
"ida-settings==2.1.0",
|
|
"viv-utils[flirt]==0.7.9",
|
|
"networkx==3.1",
|
|
"ruamel.yaml==0.18.6",
|
|
"vivisect==1.1.1",
|
|
"pefile==2023.2.7",
|
|
"pyelftools==0.31",
|
|
"dnfile==0.14.1",
|
|
"dncil==1.0.2",
|
|
"pydantic==2.7.1",
|
|
"rich==13.4.2",
|
|
"humanize==4.9.0",
|
|
"protobuf==5.27.0",
|
|
]
|
|
dynamic = ["version"]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "capa.version.__version__"}
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["capa*"]
|
|
namespaces = false
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pre-commit==3.5.0",
|
|
"pytest==8.0.0",
|
|
"pytest-sugar==1.0.0",
|
|
"pytest-instafail==0.5.0",
|
|
"pytest-cov==5.0.0",
|
|
"flake8==7.0.0",
|
|
"flake8-bugbear==24.4.26",
|
|
"flake8-encodings==0.5.1",
|
|
"flake8-comprehensions==3.14.0",
|
|
"flake8-logging-format==0.9.0",
|
|
"flake8-no-implicit-concat==0.3.5",
|
|
"flake8-print==5.0.0",
|
|
"flake8-todos==0.3.1",
|
|
"flake8-simplify==0.21.0",
|
|
"flake8-use-pathlib==0.3.0",
|
|
"flake8-copyright==0.2.4",
|
|
"ruff==0.4.5",
|
|
"black==24.4.2",
|
|
"isort==5.13.2",
|
|
"mypy==1.10.0",
|
|
"psutil==5.9.2",
|
|
"stix2==3.0.1",
|
|
"requests==2.31.0",
|
|
"mypy-protobuf==3.6.0",
|
|
# type stubs for mypy
|
|
"types-backports==0.1.3",
|
|
"types-colorama==0.4.15.11",
|
|
"types-PyYAML==6.0.8",
|
|
"types-tabulate==0.9.0.20240106",
|
|
"types-termcolor==1.1.4",
|
|
"types-psutil==5.8.23",
|
|
"types_requests==2.32.0.20240523",
|
|
"types-protobuf==5.26.0.20240422",
|
|
"deptry==0.14"
|
|
]
|
|
build = [
|
|
"pyinstaller==6.7.0",
|
|
"setuptools==69.5.1",
|
|
"build==1.2.1"
|
|
]
|
|
|
|
[tool.deptry]
|
|
extend_exclude = [
|
|
"sigs",
|
|
"tests"
|
|
]
|
|
|
|
# dependencies marked as first party, to inform deptry that they are local
|
|
known_first_party = [
|
|
"backports",
|
|
"binaryninja",
|
|
"flirt",
|
|
"ghidra",
|
|
"ida_bytes",
|
|
"ida_entry",
|
|
"ida_funcs",
|
|
"ida_kernwin",
|
|
"ida_loader",
|
|
"ida_nalt",
|
|
"ida_segment",
|
|
"idaapi",
|
|
"idautils",
|
|
"idc",
|
|
"java",
|
|
"netnode",
|
|
"PyQt5"
|
|
]
|
|
|
|
[tool.deptry.per_rule_ignores]
|
|
# dependencies defined but not used in the codebase
|
|
DEP002 = [
|
|
"black",
|
|
"build",
|
|
"deptry",
|
|
"flake8",
|
|
"flake8-bugbear",
|
|
"flake8-comprehensions",
|
|
"flake8-copyright",
|
|
"flake8-encodings",
|
|
"flake8-logging-format",
|
|
"flake8-no-implicit-concat",
|
|
"flake8-print",
|
|
"flake8-simplify",
|
|
"flake8-todos",
|
|
"flake8-use-pathlib",
|
|
"isort",
|
|
"mypy",
|
|
"mypy-protobuf",
|
|
"pre-commit",
|
|
"pyinstaller",
|
|
"pytest",
|
|
"pytest-cov",
|
|
"pytest-instafail",
|
|
"pytest-sugar",
|
|
"ruff",
|
|
"setuptools",
|
|
"types-backports",
|
|
"types-colorama",
|
|
"types-protobuf",
|
|
"types-psutil",
|
|
"types-PyYAML",
|
|
"types-tabulate",
|
|
"types-termcolor",
|
|
"types_requests",
|
|
"wcwidth"
|
|
]
|
|
|
|
# dependencies imported but missing from definitions
|
|
DEP003 = [
|
|
"typing_extensions" # TODO(s-ff): remove when Python 3.9 is deprecated, see #1699
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/mandiant/capa"
|
|
Repository = "https://github.com/mandiant/capa.git"
|
|
Documentation = "https://github.com/mandiant/capa/tree/master/doc"
|
|
Rules = "https://github.com/mandiant/capa-rules"
|
|
"Rules Documentation" = "https://github.com/mandiant/capa-rules/tree/master/doc"
|
|
|
|
[project.scripts]
|
|
capa = "capa.main:main"
|