Skip to main content

A Python interface to libVEX and VEX IR

Project description

PyVEX

Latest Release Python Version PyPI Statistics License

PyVEX is Python bindings for the VEX IR.

Project Links

Project repository: https://github.com/angr/pyvex

Documentation: https://api.angr.io/projects/pyvex/en/latest/

Installing PyVEX

PyVEX can be pip-installed:

pip install pyvex

Using PyVEX

import pyvex
import archinfo

# translate an AMD64 basic block (of nops) at 0x400400 into VEX
irsb = pyvex.lift(b"\x90\x90\x90\x90\x90", 0x400400, archinfo.ArchAMD64())

# pretty-print the basic block
irsb.pp()

# this is the IR Expression of the jump target of the unconditional exit at the end of the basic block
print(irsb.next)

# this is the type of the unconditional exit (i.e., a call, ret, syscall, etc)
print(irsb.jumpkind)

# you can also pretty-print it
irsb.next.pp()

# iterate through each statement and print all the statements
for stmt in irsb.statements:
    stmt.pp()

# pretty-print the IR expression representing the data, and the *type* of that IR expression written by every store statement
import pyvex
for stmt in irsb.statements:
    if isinstance(stmt, pyvex.IRStmt.Store):
        print("Data:", end="")
        stmt.data.pp()
        print("")

        print("Type:", end="")
        print(stmt.data.result_type)
        print("")

# pretty-print the condition and jump target of every conditional exit from the basic block
for stmt in irsb.statements:
    if isinstance(stmt, pyvex.IRStmt.Exit):
        print("Condition:", end="")
        stmt.guard.pp()
        print("")

        print("Target:", end="")
        stmt.dst.pp()
        print("")

# these are the types of every temp in the IRSB
print(irsb.tyenv.types)

# here is one way to get the type of temp 0
print(irsb.tyenv.types[0])

Keep in mind that this is a syntactic representation of a basic block. That is, it'll tell you what the block means, but you don't have any context to say, for example, what actual data is written by a store instruction.

VEX Intermediate Representation

To deal with widely diverse architectures, it is useful to carry out analyses on an intermediate representation. An IR abstracts away several architecture differences when dealing with different architectures, allowing a single analysis to be run on all of them:

  • Register names. The quantity and names of registers differ between architectures, but modern CPU designs hold to a common theme: each CPU contains several general purpose registers, a register to hold the stack pointer, a set of registers to store condition flags, and so forth. The IR provides a consistent, abstracted interface to registers on different platforms. Specifically, VEX models the registers as a separate memory space, with integer offsets (i.e., AMD64's rax is stored starting at address 16 in this memory space).
  • Memory access. Different architectures access memory in different ways. For example, ARM can access memory in both little-endian and big-endian modes. The IR must abstract away these differences.
  • Memory segmentation. Some architectures, such as x86, support memory segmentation through the use of special segment registers. The IR understands such memory access mechanisms.
  • Instruction side-effects. Most instructions have side-effects. For example, most operations in Thumb mode on ARM update the condition flags, and stack push/pop instructions update the stack pointer. Tracking these side-effects in an ad hoc manner in the analysis would be crazy, so the IR makes these effects explicit.

There are lots of choices for an IR. We use VEX, since the uplifting of binary code into VEX is quite well supported. VEX is an architecture-agnostic, side-effects-free representation of a number of target machine languages. It abstracts machine code into a representation designed to make program analysis easier. This representation has five main classes of objects:

  • Expressions. IR Expressions represent a calculated or constant value. This includes memory loads, register reads, and results of arithmetic operations.
  • Operations. IR Operations describe a modification of IR Expressions. This includes integer arithmetic, floating-point arithmetic, bit operations, and so forth. An IR Operation applied to IR Expressions yields an IR Expression as a result.
  • Temporary variables. VEX uses temporary variables as internal registers: IR Expressions are stored in temporary variables between use. The content of a temporary variable can be retrieved using an IR Expression. These temporaries are numbered, starting at t0. These temporaries are strongly typed (i.e., "64-bit integer" or "32-bit float").
  • Statements. IR Statements model changes in the state of the target machine, such as the effect of memory stores and register writes. IR Statements use IR Expressions for values they may need. For example, a memory store IR Statement uses an IR Expression for the target address of the write, and another IR Expression for the content.
  • Blocks. An IR Block is a collection of IR Statements, representing an extended basic block (termed "IR Super Block" or "IRSB") in the target architecture. A block can have several exits. For conditional exits from the middle of a basic block, a special Exit IR Statement is used. An IR Expression is used to represent the target of the unconditional exit at the end of the block.

VEX IR is actually quite well documented in the libvex_ir.h file (https://github.com/angr/vex/blob/dev/pub/libvex_ir.h) in the VEX repository. For the lazy, we'll detail some parts of VEX that you'll likely interact with fairly frequently. To begin with, here are some IR Expressions:

IR Expression Evaluated Value VEX Output Example
Constant A constant value. 0x4:I32
Read Temp The value stored in a VEX temporary variable. RdTmp(t10)
Get Register The value stored in a register. GET:I32(16)
Load Memory The value stored at a memory address, with the address specified by another IR Expression. LDle:I32 / LDbe:I64
Operation A result of a specified IR Operation, applied to specified IR Expression arguments. Add32
If-Then-Else If a given IR Expression evaluates to 0, return one IR Expression. Otherwise, return another. ITE
Helper Function VEX uses C helper functions for certain operations, such as computing the conditional flags registers of certain architectures. These functions return IR Expressions. function_name()

These expressions are then, in turn, used in IR Statements. Here are some common ones:

IR Statement Meaning VEX Output Example
Write Temp Set a VEX temporary variable to the value of the given IR Expression. WrTmp(t1) = (IR Expression)
Put Register Update a register with the value of the given IR Expression. PUT(16) = (IR Expression)
Store Memory Update a location in memory, given as an IR Expression, with a value, also given as an IR Expression. STle(0x1000) = (IR Expression)
Exit A conditional exit from a basic block, with the jump target specified by an IR Expression. The condition is specified by an IR Expression. if (condition) goto (Boring) 0x4000A00:I32

An example of an IR translation, on ARM, is produced below. In the example, the subtraction operation is translated into a single IR block comprising 5 IR Statements, each of which contains at least one IR Expression (although, in real life, an IR block would typically consist of more than one instruction). Register names are translated into numerical indices given to the GET Expression and PUT Statement. The astute reader will observe that the actual subtraction is modeled by the first 4 IR Statements of the block, and the incrementing of the program counter to point to the next instruction (which, in this case, is located at 0x59FC8) is modeled by the last statement.

The following ARM instruction:

subs R2, R2, #8

Becomes this VEX IR:

t0 = GET:I32(16)
t1 = 0x8:I32
t3 = Sub32(t0,t1)
PUT(16) = t3
PUT(68) = 0x59FC8:I32

Cool stuff!

Citing PyVEX

If you use PyVEX in an academic work, please cite the paper for which it was developed:

@article{shoshitaishvili2015firmalice,
  title={Firmalice - Automatic Detection of Authentication Bypass Vulnerabilities in Binary Firmware},
  author={Shoshitaishvili, Yan and Wang, Ruoyu and Hauser, Christophe and Kruegel, Christopher and Vigna, Giovanni},
  booktitle={NDSS},
  year={2015}
}

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pyvex-9.2.213.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

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

pyvex-9.2.213-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

pyvex-9.2.213-cp314-cp314-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pyvex-9.2.213-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pyvex-9.2.213-cp314-cp314-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyvex-9.2.213-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pyvex-9.2.213-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyvex-9.2.213-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pyvex-9.2.213-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyvex-9.2.213-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pyvex-9.2.213-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyvex-9.2.213-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pyvex-9.2.213-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyvex-9.2.213-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pyvex-9.2.213-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyvex-9.2.213-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pyvex-9.2.213-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyvex-9.2.213-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.213-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyvex-9.2.213-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pyvex-9.2.213-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pyvex-9.2.213.tar.gz.

File metadata

  • Download URL: pyvex-9.2.213.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213.tar.gz
Algorithm Hash digest
SHA256 772a3588b5fdff1ca3b57379b2906a2f1ca1ee68290cd9c75a730183245d38fc
MD5 9c8d8a61e2353615a0776484313fec1a
BLAKE2b-256 b2d54df75aa08d1759bc67df8d3c1e1828605d38d2185dea81baff805c8a8742

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213.tar.gz:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.213-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2a83f56df6c606566cdba5c6647b805f96f67746693ba0902f9603f3720dd37c
MD5 8c99e3f88ad3ce3600359e76095e6cd6
BLAKE2b-256 8ba6f2822757a93d11f08b9c99f3ebaf7fcd2845185d88689ed48353045a5eb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp314-cp314-win_amd64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 de3f2ec8adbf0796d2ae9e3e0d63e063adf3c520aec9b528253288aff8a25313
MD5 3014837b3ad52e4acab0c0a45673e6a2
BLAKE2b-256 62b5557a6ef2d86f131873b6327eae7ca1b73af6e77a648b67b8cba04f4cbb4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 034ec2d5c605709168e27dac068c7f6f6b88025c054f508222abf3ff84dc7235
MD5 c714b0efea2388dcb567ddeed007cdd7
BLAKE2b-256 5293d23b185dbfaec4de3d104371833f7076b901876990928c7e99eec734a439

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c6b6adae8bbd64e8b536576f91f681b138b3c4aaaefecf1ed4d682b1f94ac96
MD5 f742fb81e1defc0edfd54c3f80fc41e4
BLAKE2b-256 5797f19f6714fefeed97256f7d783b7b2ccd730bd3aa239819d8afe78a62ed85

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.213-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 646390226bd546c164454570310426fe9a8f3eddac10443cca67d598c2af0ee5
MD5 bb8b71e79ef5b6f896cf35b0cd44bb5e
BLAKE2b-256 73a8d6f442de3789a94d72ac02d9b437c19a1d4f1d5fc8450b0e19996c1bbdd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp313-cp313-win_amd64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffb8f8a18ba6e9aafcf16ab0720b4e94904c63bcf7271a7b63dadeca4de52751
MD5 2f7fee16fe7805a186ae8b384506cb95
BLAKE2b-256 fbe81fa1326c513e79608f7e6c730161d787e690a2da6ea1544445c1da0a40e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e4bef37cb7b7ddf220545464bc3aaabb772b8b53962b3e45fc98faf4deed222e
MD5 5275bd0a271022dffb094826ccd651b2
BLAKE2b-256 bbff3b6e4fe3c936809469961223e93687c69574d96760937082fe1426834170

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a698204377833c55796f614014abfd8f88e7d1402f055cdaf4ebe5c3b23a636b
MD5 3530bd9a1bac8e9b3334314a18522e91
BLAKE2b-256 32eee03b99d757894269db6fb7f42c582aa9fe7b1117a3ee1339e6a541b8d2fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.213-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 19b06e5489edc22cea4076bbc91d9e2b996df2dbfdfe96ad51d194bfe43dd998
MD5 e2bffd5b548e5e43975de682f77be93f
BLAKE2b-256 24f582ceb8c28bb472ed9e87fd9bdbb9574f06b623d0a8c7eb558909ea6c4798

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp312-cp312-win_amd64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec154cacc8f0609039271015c624c9bc2af638c511c890c631cc7bdf9b051d3e
MD5 c9cc3072a65881c94ce6cbd2db88d848
BLAKE2b-256 9d1806b411dc19de0a50a20be7e5a6dab558d7473fb599bf69938e4f4eec230f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6dce3f2a0db644ef839417f15506640a8d37de3fa87bf608517766987908c09a
MD5 ab1ad90220c5f7c110acf2ab648fc1cb
BLAKE2b-256 7d4d17a9dd131de756d0af7e599512fdf25c49d5c1eb4df53805dfe9734a189c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9650447e41e212c48cbca1fa2c61d4587fbcb5221e9beb9723114c95b62f4223
MD5 1ae5337d0dd2c595dc431a6f7a6bcad4
BLAKE2b-256 01e57bf55cc4df66086d288dc09e1cf5c75850f174e347501a601fada6e32794

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.213-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e541c563aec00f9f91f1f974fa9300221932de6338a66fd20ef552d9027a592a
MD5 ad1019878e6b0874a1c46174d845c895
BLAKE2b-256 c725dd40398d88320d75296a195e1b22a0bfd11e883cc50976dfdc5182fe367c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp311-cp311-win_amd64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97c809f1faf36e27a5790f84ab513ed6848997e286d0736505ea6407e3ff7353
MD5 71299be11a53575a4a8179a9bb600da2
BLAKE2b-256 9b38ce8864b5fdfc4b6f342a4224ea4874fbad0063091ffa8e31122ac0413543

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42fc9d80605e706970fe62ac39ed16db0cfcf9d1797c29ff39d4df67919c3661
MD5 2fa611f782e28af192d4bc00491b4e13
BLAKE2b-256 59506b5006628364ebecc8e4e9ac199ef13aa4cb55c282625c1bb266cb46e7ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7644e2f2b4cba77ab36a4204a570989fd8dab5686f5568a6aa217f1e762c1b1b
MD5 0027df1d244774f0109b4361ea7c6f67
BLAKE2b-256 adb97b939d26a492ba08657d57e2227fa9325db681dc7d353a98064fccd93ade

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.213-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.213-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a4eeed8cf543f749dfc5657c42e4ec5fcee774df8480ae70a8bb402582cc9513
MD5 65735b297250f5b7a2ed7ad234761f52
BLAKE2b-256 0ad2947303ae9b264b6c9fbd549aaa64ad1e985d3c4134ad10b83adec77f12ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp310-cp310-win_amd64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40f1faefb4375a4ed2f58ab7c14d5e5ce22674bb94516a0f194ad49114601b35
MD5 cd7691f96adb91551294b555f8e791f6
BLAKE2b-256 cd3155ed5b0f41bd5f54fd88c6207ba671519a767c3cc38a75d2978b3b34b1ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7fc15fd20fe95444cbbb140bad1961a8ad1af74c4d3f8a6dfaa6f368bffc1572
MD5 fdc43bb350a60f10a02fc740a7551aa7
BLAKE2b-256 39244045c3782cfaaa583b6f1499a3f21ce62d569cfc3b5e6e7aa2d5f610b917

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: angr-release.yml on angr/ci-settings

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

File details

Details for the file pyvex-9.2.213-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.213-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60a52ae1f8c517ec29a4fd6c4af561d7657a7fbda028f0efc7b26bb93f0ed03e
MD5 96413d54936ed0e8df5901f811a116c3
BLAKE2b-256 10a4df3e4c3faf1057c36157b8b5c563d4a271ee2f2e202704abd777bdae0769

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.213-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: angr-release.yml on angr/ci-settings

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