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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.211-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.211-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.211-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.211.tar.gz.

File metadata

  • Download URL: pyvex-9.2.211.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.211.tar.gz
Algorithm Hash digest
SHA256 0c30fa1242e7001854cf2869e8010dbd191e6f951808a0a742904b69ee6f45ce
MD5 a17d1c86d6a94a5205bb38a9867dd756
BLAKE2b-256 fbd330ace47dcd151bc802c2f47f2b78345b35f2664c94d3229acb13adda9311

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.211-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.211-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9e69f6289bf0770af0134d3aef36d3a267275845796e817898bf4d6fe6b4ed84
MD5 a2ff100c526e82a2c2acebaad05e10d3
BLAKE2b-256 bfc7cdedc7508d3ea21cada01b26c1f1c83a335f07729b2e2507ba394e647260

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d63b71855394bae48a8db3be1d780a64b38a432a469e3db712f4eacb6e74e89f
MD5 ed6b56f98761067502725aa69cfe1b53
BLAKE2b-256 6e10ac17f709e9e2aefce76e79d19b7034d9f1ea1f4292d3ec97fab2e4d19c1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f0961c42ae2d0e27b0cae3a5ea240fae9e8ccd7d91498eccb7a891daa781775d
MD5 b77d0c139a2b67e097ea3a7cd57f17ed
BLAKE2b-256 8cb867f4b318ea8d31d51d83ba91abf5cc5940d73b13c4e89981c0caa1ba5c28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f538cf6bd25218d84baf427364dc7943b840a03cbd1735bdcdb2a44d90b416e0
MD5 4278e124317f72c745896aa91d161980
BLAKE2b-256 5d2c42d05b96e71d964d83ecee8070d8a9806cffd536ee6511296fa5a66a0ead

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.211-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.211-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7ec366d3082668d24528183f3ee333fa19dff8e8cc4aa0f0dae3b6b3a7c93eff
MD5 c7ed0b71917471fd0d3050bda7753395
BLAKE2b-256 7290da4d7709d3924f2f4e765cd7e57688a04123d5e48acf4e90c76ad9c2c246

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39355aba539d132c49a0e3f8bb301e063faa4e6fdc3c8773eda7c79847ed120b
MD5 04a786cd49d5aaebc0d7a98f311f138a
BLAKE2b-256 a937a2fb657a98e21d268ab5fc636ba21af8f3e3fb2d783cf1202784a4ec4091

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1ea64187ef01c801c29ce3a7ca51448a4221b694b4fb7ee0dddd94091bf9011a
MD5 8cc760f5128491d315ef25296b80dc49
BLAKE2b-256 2143ec1b3ce5b23358c9b986f2f4fa326fafc07a88021287a2a325a992531622

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73c67e72fccd971e920d10ad807748437a14db2d4391d3df9d6675c52af5a2e7
MD5 62fc7f547d3c26a49c8557bee6989dfb
BLAKE2b-256 8ca049acbd1051cd79ad6177fab2270649176996326171d6a76eefd0a2671408

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.211-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.211-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 effa7a8c98f02caa03536053408abcb253c24aedd6022599222e524a7a7949a2
MD5 75750e34e917eccc50bf373665a5e381
BLAKE2b-256 600830a461a7196e1d89e135f1abb147ef2480dd8a796a52cfe4fe3266ea032c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf88aff4c8f9705e37be1312c6b94decda41beb75a0f58df8938f6bc7f06daad
MD5 6a3a4204b84d625701b1a91df5f1a60f
BLAKE2b-256 354febdaf7b9f39c335ca04cc3881a9ac57cb1216c4b11fc1149862d2e8857ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92f81434a245bf19df4c3bff35c07b29fc468fcda9934dba18fd871e23d63d38
MD5 5e9ace92b7eac451ec91fe1e1fad09f8
BLAKE2b-256 f66e981fae480b71c60b22c9646d83e437aca78fde7f74e0dd087766bed0277a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e43d25d57b075e04fc42bb7387ff301fa250a7893d49a3dd879ee7563a9d5e1
MD5 a5121c33099177a0710c5d8f9c3baf89
BLAKE2b-256 e2fa80a163f0a6470665274e30190dc3ea829d2ee39fd0b44ca110497b5c1acf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.211-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.211-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 03aaa5409fc3c2d8d9db72deb7d6c377d0ff0fa6693e594973defa0628dd59ec
MD5 c8401c05d85d48f71de7a99e5cdd8268
BLAKE2b-256 7aeb7e08a2bdab602c47e3b7f9b9fbac4097334306c765b484f38a5aab17e390

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66173d2f01b8de8d906b95191e06e89281a1882fdaf3ee883a7ad7aba278b4c1
MD5 957f3ebdcac1504809d5b9c81a7e1cee
BLAKE2b-256 114e2a4b341b292cf8adbc98dd1a92d111dc49d5a89d6129e751d9e140cc98e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fc4ca705b6306b61cd206908500abf6e3f1f109731c3627540d375e7f0ddb706
MD5 135ff80c6fa3a0e9b4f33fbedb3a8d2b
BLAKE2b-256 3f4ffa6610f90d7cc51e0f21d2c0cdb4b6eb69140a9a6ebb1a4c092a819d6e24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79c5c7241fc4c9c37e8bef1f9b66debf7c04656520e1fb1ba7a86bf4ba232b9f
MD5 5d0a17484a162997290db834e18f4704
BLAKE2b-256 90ec477ecdfbcc41f00f3e4e4287a2b137be39f3ff1edb441ac0321d2f752f85

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.211-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.211-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c75ba2f616a92a89e128d68cce74ebfe7a8dbe6323cb0197982e541cb1e87f07
MD5 8d77c5466b8c5edfdaaa91f2454a4d90
BLAKE2b-256 1a3dac1ec51651bdc0454eefe875851ab745069cfe9a935ba76a4fde0f5684a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 326f1358f72f06179446e26a32985632e52f0caa6d6f55ea9e41f9ebc401c177
MD5 f11e77a24a934b0872ea097135956a06
BLAKE2b-256 d278512353a5d11e409db1359a0b2626283b94bb9b38313d2103f1f9a1b85bfc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6f655ca6f47e6fc590f270229d3f2a798295db00562b8b2939604c51234d596d
MD5 3aeb43b60086ec7525cd19b1b42b2d22
BLAKE2b-256 882aaa15fab7904c8c6e74338724fb11cd939e05a7e3805044c263b0fca6602e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.211-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 daddca6d54852efe50fa620a3576ab08dca7bf57ac5b92a1fb083e1eda4ac646
MD5 7804872396e7afff10253c2799860079
BLAKE2b-256 bb8ce12cbf9ed174f4ba8729344544785af95f89fc4cec58ee34126ea22ad261

See more details on using hashes here.

Provenance

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