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.209.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.209-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pyvex-9.2.209-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.209-cp314-cp314-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

pyvex-9.2.209-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.209-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.209-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pyvex-9.2.209-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.209-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.209-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pyvex-9.2.209-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.209-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.209-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.209-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.209-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.209-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.209.tar.gz.

File metadata

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

File hashes

Hashes for pyvex-9.2.209.tar.gz
Algorithm Hash digest
SHA256 ff2c6a5d474f29621d7772df8c3418b84d7bcf149d733e0f2be4cd7b2505966c
MD5 964976ac7dee79c2516042c9d1a54b56
BLAKE2b-256 511e1136544d89070b6c40c35a1639303cba22653ce485fc0b37b84a60eb45df

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209.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.209-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.209-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.7

File hashes

Hashes for pyvex-9.2.209-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f3ea0a1d0aeeae2419fb659b300c6dcb4e86a8fde08aaface1078f1895a50e7
MD5 1bcd4a72b22d25504d25033db6ef4f08
BLAKE2b-256 de7cd4718dd88baaf26c2d62e34bb9e92c0dc9faa13cf8a87eb8db1e3d259ca6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d08f900d61fb6c448efc7dfa53e590a5e2e79fd6ae8e263f262825c2b4b2b53f
MD5 c81cb01913bd1d496420bcaf9d26825f
BLAKE2b-256 33af6fe5eb7f1a7aea7af83a4774a891c5b25f66898249e068e81c90121a38c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a98a7c20bc43e3fea1c8eaa9c1a2109310b7787e26931f86da178de81c9555d
MD5 e9c40a1310df3d61eca34855aa956177
BLAKE2b-256 3c43a85db8a630bce401e941960b092e163f4043e4f4a466e5e801b2043e39ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1786d985fb49bf5a09189554c64ca076578af50a13bb31130d933863243e3661
MD5 226677cff39f0e325e5486666547b365
BLAKE2b-256 94608846de913abba3f792769ed8b1bb6ff19ad9c9b2114024f94964ebaacb45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.209-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.7

File hashes

Hashes for pyvex-9.2.209-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4a6ba9b09ddf63be5c14a3bffa46e09c1a957a5e5771b580703509697173194b
MD5 67e1c7d5562c30c64996f5a9c5a902c8
BLAKE2b-256 753c7901e32a01e491c8786fc8a92b4a4c0b86e2fb70b8beb696e49a4d52b11b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d72b8020fd301e6c6a0045c20224731582eb282feda74d40fe3e7d04024c624a
MD5 73f75de2ebfeea5f7c1b4fb2a5d5c543
BLAKE2b-256 69e1770c1e3dd02904293ce5af6daeba9d7eef254b143840e3b142f339b630ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c1d85c678c6aadcc1415d44fa0521eaea56cd6a2ddd61e4abea1e488260491d5
MD5 cedabfe88ed95c1a0b3c802419b27967
BLAKE2b-256 2b5a0a48bf5d7ea54a02d83f6bd1b4a567aaed2b49ad3e8410e017e5f648f2db

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e9bfe27b2c0676d296a57621160925d071fde6b3770e330f971c7555811118b
MD5 9b80ceb70f051157ab613bf0fa22f3bf
BLAKE2b-256 10f8d7c8d9024e270d7cabd8e6d6be82c07c3b178af4f6bea63f5eafcaf07d26

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.209-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.7

File hashes

Hashes for pyvex-9.2.209-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 91ea73e5ab821c2500bac4c66d7c621adde1cde407fb9769898aec6b5df1a6e6
MD5 293d317f9d69016c9041232ebd8146e9
BLAKE2b-256 5247fa20a64cb6438c72d2e1fe65e85bc39630acc0aaec9bb31d549e0cf7e159

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 68b1a7c705b4272acc5a5d77658ca675a5a52017f96d5f18c4551a70d26e46a8
MD5 9b071f8c65007ac5a238824a8c09d5fd
BLAKE2b-256 65fd8ddfd3c4840109ff38f56952a2da3400f4bb96a3ad71934c9ad59653babd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93d23fa0f181f9bb8bc3998b923836cf0fa0d0bf5f09538d4c1d35020f0bfee8
MD5 3eacc4ba6642fee26e5fccac4f2df0af
BLAKE2b-256 26d5a02b12b4463c79634f9a5722019fd68c9d4b80eb34923459bd066c65892a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4895bd47b6116d0282cdb5db18b5bd9f0ecc0142b7490055937dc267ffd184f1
MD5 13575cb06acc0912bc1b5292abb34574
BLAKE2b-256 2881c567425811cf9657a54894bafe427def8b75bc5af0e877a36b60c6d152eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.209-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.7

File hashes

Hashes for pyvex-9.2.209-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 066ff15c4c16a92212bb763e4b0ed364e60111325888f1874e8c9a4b744ffeb5
MD5 f2c2210360aaec0317471703c5582356
BLAKE2b-256 97a9fba299e13969b2d23edbbb252ece75ee1abf15c62b20451172ce99e2fa8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b935178dbafcb29304b007cfd4fa86dc9e51c8fb1085f226d38fed058c5f775
MD5 1c5e6e8e548829c7195a6aba4afb6715
BLAKE2b-256 9ea0b5c3d07ce92b7b248aceda0e3588bec03c597e2eed36994e6282db2ae015

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f05819f7dccb92b172fecb6cd4c6e2ef9b23835bb2597ee90274d6e1351cf985
MD5 f5b21b27b4e3b0fdf40df8f74cc59569
BLAKE2b-256 69a9c363d56193b88740e192f3dbeadf890d92b87e68a4e439ce71a05db402f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf01e7d1d016d15b61b6a8dcae98f4c2bede1a870c712e1c17e130db347eacd5
MD5 1a4c6b03b59508768946165928c4301b
BLAKE2b-256 8f5d1a58cd3565c4fab9238e5b055fb6ca18129a2ffd9d911ffdf9dc3e09e9a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.209-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.7

File hashes

Hashes for pyvex-9.2.209-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b020c10bb5a712ea49cb96cab095c844845babee29953df24f0d2a4d4a473dcd
MD5 14e8608f4d9b8c155da5ad5a5142f52f
BLAKE2b-256 e9c40c169c41540ef9ab494d3d20482fe6522eee9ec0b30608ba7b0e03025df0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53a9e5b64759e601dc8e2cb60f50f07519ce2b3e24feaaa2a9a054b96ffa7cc3
MD5 bcc093261d49759df2e6a9152e9e8996
BLAKE2b-256 850ecef90985f62492a0d397c74b42edefe2c5cb8d7e940a9f9e5f20cdb04ab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 47c512e25e6ea65af82c2b24f959509d81dbdcfc2478da0529b8116430c9eaa3
MD5 eb77bb412e0a7153e5e8f88c0f32455b
BLAKE2b-256 25ce5416442143fcde443a0a82398d401a5c874325bba80594a02cb540727f05

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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.209-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.209-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f25826f637db8c3cf66c9aab84689d91749b5463906dd66974f4360a07975609
MD5 72367825162b9beabc52e437b953e74f
BLAKE2b-256 47bcac0f16002f852ed5aff7f18a8ba325c3d5d670c80915e0cbea47c08d5324

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.209-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