# 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.3", "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", "halo==0.0.31", "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", "protobuf==5.26.1", ] 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.2.6", "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.3.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.5.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.31.0.20240311", "types-protobuf==4.23.0.3", ] build = [ "pyinstaller==6.6.0", "setuptools==69.5.1", "build==1.2.1" ] [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"