[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] dynamic = ["version", "scripts"] name = "pwntools" description = "Pwntools CTF framework and exploit development library." license = {text = "Mostly MIT, some GPL/BSD, see LICENSE-pwntools.txt"} readme = "README.md" authors = [{name = "Gallopsled et al.", email = "pwntools-users@googlegroups.com"}] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Topic :: Security", "Topic :: Software Development :: Assemblers", "Topic :: Software Development :: Debuggers", "Topic :: Software Development :: Disassemblers", "Topic :: Software Development :: Embedded Systems", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: System Shells", "Topic :: Utilities", ] keywords = ["pwntools", "exploit", "ctf", "capture", "the", "flag", "binary", "wargame", "overflow", "stack", "heap", "defcon"] requires-python = ">=3.10" dependencies = [ "paramiko>=1.15.2", "mako>=1.0.0", "pyelftools>=0.32", "capstone>=4.0.0", "ropgadget>=5.3", "pyserial>=2.7", "requests>=2.0", "pygments>=2.0", "pysocks", "packaging", "psutil>=3.3.0", "intervaltree>=3.0", "sortedcontainers", "unicorn>=2.0.1", "rpyc", "colored_traceback", "unix-ar", "backports.zstd>=1.0.0 ; python_version<'3.14'", ] [project.urls] homepage = "https://pwntools.com" download = "https://github.com/Gallopsled/pwntools/releases" [dependency-groups] dev = [ "mypy-baseline", "mypy", "types-beautifulsoup4", "types-docutils", "types-gdb", "types-paramiko", "types-psutil", "types-Pygments", "types-pyserial", "types-PySocks", "types-python-dateutil", "types-requests", ] [tool.distutils.bdist_wheel] universal = 1 [tool.setuptools] include-package-data = false [tool.setuptools.packages.find] namespaces = false [tool.coverage.run] branch = true parallel = true concurrency = ["thread", "multiprocessing"] omit = [ "*/constants/*", ] source = [ "pwn", "pwnlib", "~/.cache/.pwntools-cache-3.10/", "~/.cache/.pwntools-cache-3.11/", "~/.cache/.pwntools-cache-3.12/", "~/.cache/.pwntools-cache-3.13/", ] disable_warnings = ["module-not-imported"] [tool.coverage.paths] pwnlib = ["pwnlib", "*/pwntools/pwnlib", "*\\pwntools\\pwnlib"] pwn = ["pwn", "*/pwntools/pwn", "*\\pwntools\\pwn"] [tool.mypy] files = [ "pwn/**/*.py", "pwnlib/**/*.py", ] allow_redefinition = true [[tool.mypy.overrides]] module = [ "unix_ar.*", "capstone.*", "colored_traceback.*", "intervaltree.*", "mako.*", "ropgadget.*", "rpyc.*", "sortedcontainers.*", ] ignore_missing_imports = true