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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

pyvex-9.2.202-cp314-cp314-macosx_10_15_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

pyvex-9.2.202-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyvex-9.2.202-cp313-cp313-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyvex-9.2.202-cp313-cp313-macosx_10_13_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

pyvex-9.2.202-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyvex-9.2.202-cp312-cp312-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

pyvex-9.2.202-cp312-cp312-macosx_10_13_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

pyvex-9.2.202-cp311-cp311-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyvex-9.2.202-cp311-cp311-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

pyvex-9.2.202-cp311-cp311-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.202-cp310-cp310-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyvex-9.2.202-cp310-cp310-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pyvex-9.2.202-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.202-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.202-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyvex-9.2.202-cp310-cp310-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: pyvex-9.2.202.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.202.tar.gz
Algorithm Hash digest
SHA256 0838534da7f4cfbd239966ea38b173d1b0539615ad7c0c0adb82194e7be46fe3
MD5 e8da7e2039655f4167bc7638d1a4d849
BLAKE2b-256 7ceb7fc96c24eb9c7485cf7b8a9796617a61e7a746fc9cc0ebab7fc785170ee6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.202-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.202-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 023e613bf6b75a18ac6cd26c1616939dd42b2d5844862fe7b54c8da93c507d8a
MD5 18f9f42d30c4c90772a7f68dc8f7c194
BLAKE2b-256 a14b461c4ae19c3f41f9007e7baeccbfc75cdb8245753d0896470c4859a7cefb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7c588282c63a4f9ed8e0edfa8d7c95fefda6f773748bd94dfdf5fa8351354aa7
MD5 bd3b5fc2f665abe910de369da336e8f7
BLAKE2b-256 1ca66cba667fcb81a9547923ab425710c52e1604790f5eea5884ce96dd535802

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 871bcc702ad2a2362c274bc89898f5c9a9e895ac57e747d5aaf9274720673ec9
MD5 8c941789dd1412d1fc1ecd5d8f7ff5cd
BLAKE2b-256 6a8378552585bbdd1dbe0a878a84403124b78f5f60ff4937a7faa4b49b903e3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd5b6971194c2431cbe099f1877497a6557fe335fa8bbe83dcfa511b24a52523
MD5 9d81f34ae1cfae040377ce50ebc37124
BLAKE2b-256 6c80ecccbff5c4003d8dc8bfc7df6d0942653446ce953dddd8241e8ccb9e0ac3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8a0ffd9df89585148e931c1be9d7b4789e76ceb3782325d3b12c3c865c70669f
MD5 d5d874497bd6dbe56422aabf270ae082
BLAKE2b-256 f23d1c07c511e0424667131dd0ed431f0bab6df6e841e68f0e26babe8d368433

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp314-cp314-macosx_10_15_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.202-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.202-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.202-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9a38fda0ea4674706e77705bd826e73bea99341304b27b7f2c101d1c33267f4d
MD5 1cdb65957f76675697292f904c06d222
BLAKE2b-256 361d99b673da727eed61403068d1ac5c5927bfd1611d21354bb993a5496f5ebe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b1d1988862fa0683f5f34fcc810925aaeda1b4fcec060e28b9e2361cf0539308
MD5 fb061b88076e5a1dd30c64aa9dbd3711
BLAKE2b-256 1964bdb6c6564f32b34587e79d46d2386fbcaebae11cc04b7627c90943c8721a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp313-cp313-musllinux_1_2_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.202-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cdda1675ca0a6729d2ea8276a2ff8e367ae739bee68a2c2397d01cf47eb6e710
MD5 f0c1ba6c7c1e9d6c038a4407d8bf96a2
BLAKE2b-256 fe884f7a811121f71afc85c9d2688dbf88881591295607cc29fa8c2f0ecae832

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb4db586ea87741f5657b273bb83ddd7d215cd9dd1bfa2467f2a9631ab6eec81
MD5 265d091fa792d92bf9eaddb2abb660b5
BLAKE2b-256 8dee4ad7a5ff487e59990a1b642a8b02451bcc46c2e3ec1b59446ce93de7db09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d7c4a64661c733b7c015948b8f99d9986251ba7066dcd10ed0cd2737fc1ff568
MD5 c8969a12606cbde8d46254f5eb08ead9
BLAKE2b-256 654c072cad5ab7f06ef011abe3c13818ce0d5ed95d0af75d7816fda77ea8bb40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d970ecf9618cd9ae4310508e0142fef55fe73a71194394f025dceb605ae98287
MD5 69229e853d111c0837b01f5cb75e6e25
BLAKE2b-256 f96cb46f10682101e40c125a97b607cc1add748198011f84dcf9a6ab83f2d489

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0a350deeec5872aab44c3cdec443f98c51ae109d5f0686f16be6be48b98a6a14
MD5 cc5530273851cd8200f7ebf3ae676863
BLAKE2b-256 d2579a04c1546ca2908cc652061a7f89f726321ee9f83432d14da73d7f1170f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp313-cp313-macosx_10_13_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.202-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.202-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.202-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 07904e7602162c0c682105ad982d481e183cffad38a9e5915ccdf9463c78355f
MD5 a6c5e1409abb02aab2a76ce76b11896e
BLAKE2b-256 87c0a44ef86f9d0154653f08fb36d91f2f237281c8a89e98a5239c8ef049ce0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c1f2fe4fb2ee57aab986b478ecead823463508b2e9ed2394b7ed4afbf99c63dd
MD5 0cd587f3f1aed7005ff0e939633d6cb3
BLAKE2b-256 155088cccf8b01cd2bcf36d12409e939a7b6a1fc6cb76c339ebd1f5474ab73b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp312-cp312-musllinux_1_2_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.202-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f9a0c2adbaebc02b2fcb0f6a27c644b7daaf2f6aefa288155c1e4198b907f0a5
MD5 92d28506ee3e51794517756a10fc5072
BLAKE2b-256 cfbeb695fc8903cce868d49af98c5548be705094dfbaa6712b3af02ddc198902

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe5b1f3d9e452b6582f78da8aed596f7f3f0b478655e023d85dafbe81e3f1a50
MD5 ff163a9e4ee4c0ea4265656f68800b4b
BLAKE2b-256 69dcaa5b79dc7c02e1a023edad85a0678cff0f05303f21020b0eb31f39d18277

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 39e1591970627deb4c72474a6d5a0b401176aa4cd7c54a526e5aeb1bc6890067
MD5 8942667454a68a71a8b5b5e16548e865
BLAKE2b-256 89be3225da9becc887abba532e3b7d2527fa64e01ad0f50ec42ea5f0ba485cdf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9669d7f4934944ecb55e62b2ba69d0c9dbbed642c8890955b631e3b9f6a2c90b
MD5 c06c60438f64c21e32168f6517e3c7d9
BLAKE2b-256 f29f41a47a2452875a322c5ad853737c162f1bc36afb086acbd4d6bc42690ac5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 89a7d14ec9279e3179b41c9e7bb2d000b62ed9003d3556b8e2804c79497eb377
MD5 d9504f475676daf82022147147881683
BLAKE2b-256 a74b518c01655c8846cd32658b4daba5d4815a09f6da22cc4d435ed068df6ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp312-cp312-macosx_10_13_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.202-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.202-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.202-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 02cfc4927f882e3c88bf0e768b7a4258c26ff0a17967aa3fd7c0d4536e3225f7
MD5 44437461e28ffe5acb92cd2695099bd8
BLAKE2b-256 ea11437a0afef3ae1d9543032cfb7aadfe407093b176b673d2df1d87f6c663be

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e953e74d1df92eba9dcb1de9306c2cfc4e6bcc4efbf58f9ef04b2baeef48cd4
MD5 910bc1b54ca740dd123db39f3671b213
BLAKE2b-256 b5e6e6fd33abc0aa5af981eede8289d7ccb622de454630e6182f5a4ba7bf98ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp311-cp311-musllinux_1_2_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.202-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 217357a6dcff0f507504c5400b45f3ccc6398bc6d1b7ab7da34f95e85921c93b
MD5 92d21f3ff30110d34f877c080fa7c162
BLAKE2b-256 ac5cac85877d14575634d864794bfba36e0ac27b5e52fc16a75da1761a6406d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0ee74a471b0716fe4387fa707ad424dbb9c79edf8f10e6909e848fdd4209e90
MD5 cb2ad51afb5e2b669649527f8202b70a
BLAKE2b-256 e02d1fdea8eb7a54d37b1a91856c0cf4ea2db5288bba3c8df275e7a0ee05b398

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf4564fcbd306e94bfad1ca16fc74569463c76f822c11a166933fe01c1fd1d07
MD5 aa3a2869d669e8f5f14b7fc9ff670060
BLAKE2b-256 984cd220467357c7dd42d79f848b182b0a4f30b9a1c68621105aa14f15cde75e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7327753925b4dad5e0876bbd0900873f94b3adbd5e4668e75f4a38f57ab17361
MD5 02c17c9c2c0844a54010dace7a04dee0
BLAKE2b-256 08e0adf9f4b4de3e40336430b4f670159f7dcb96a4b17fbbbd0e40f00c5b3d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d8eef7ce7666980600e21193597d0779ecb7b5715e4dbf7cbe375f2ae66171b5
MD5 579d9e9e0b9d8d0138c73f15fed77678
BLAKE2b-256 0a0e51c06418b26e3e990f6d4b13d5083222bd24eca9ebef77c90e75e303c252

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp311-cp311-macosx_10_12_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.202-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyvex-9.2.202-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.202-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5c0daf0960b48435f540ff0180ae1910d763451e8c864437ce979c79b03332e4
MD5 8c0dd34789349282d9a3f5aff0f486d2
BLAKE2b-256 9f3e40fd2715e49a635c404cff81f17737b5c3940ad50ac0f21214929639e05c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-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.202-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18501738a59105481cba69cb833afbbc7d6612db7c8cace3425890b19b3cf985
MD5 fcece6e4772a5d8b2a41c1abc854ee6f
BLAKE2b-256 215af1f662f708a2d76e9e7b6b7f3430d002fea2e5e5e7c5d7978fe02a1ecb4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp310-cp310-musllinux_1_2_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.202-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2a7ff6196a11b118534c6d1a84d498da7f301483616ec17b786457a9253474c4
MD5 94de93e2daad609c6b0019795bf92d47
BLAKE2b-256 0e9428ebf74f0f605a66c5a9a84bc231dd67bca5ac659c9d766bc9d78075e1ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abb5785479d0e41cbc11aef77f73d62f99bb08aeaf0529cbac2b94c30148dbb2
MD5 6c7ebd3ee54cec7fa43c68754fc9ccf6
BLAKE2b-256 3fdd91e185e74ef5c69ae4f8ef875e4fbab2385761c04fa6e79d47e8d6c91bf9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5742b47f22cd9828ea52431561fd54a2e20315e46aad528cb7fab650a3656c03
MD5 4441a5d057800f358175ec8422aa2cb3
BLAKE2b-256 c49ccf46aba61032127aef07dafd4c61472704edb7f2f61dffabac907688864f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0be607b4bd2aaf5d75dd5b9c33346342ff6bff99595c8737462803ca9e38c3c
MD5 aab5e7ff275ffb29c48160f060e537ea
BLAKE2b-256 a040a618e7cfb246893e8266012882c92bcdd27e6f2dc3f46dcfe48eb111fc55

See more details on using hashes here.

Provenance

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

File details

Details for the file pyvex-9.2.202-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.202-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ec7e0721705d866dbaf194e396e6e8cb1b9267ab93f80b26cf2095dec454cb5a
MD5 3531f5ed2d7c3b418bb467a4df0d41dd
BLAKE2b-256 5e012aafd7ca719692d18c553c8b171529f8de457c925f393774c79ed10cb03b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.202-cp310-cp310-macosx_10_12_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.

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