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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

pyvex-9.2.198-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.198-cp313-cp313-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

pyvex-9.2.198-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.198-cp312-cp312-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

pyvex-9.2.198-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.198-cp311-cp311-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.198-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.198-cp310-cp310-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

pyvex-9.2.198-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.198.tar.gz.

File metadata

  • Download URL: pyvex-9.2.198.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.198.tar.gz
Algorithm Hash digest
SHA256 20cc6639ef18141d9a226d68274e78ef022bf645b14a96aafc9286a61d5d429e
MD5 b8c8896b0b2bd963218ea9e978678910
BLAKE2b-256 90f8b3e3a2f8891c8add0dac6b4fd4bcc240ac3cd71f1291f59984a3ac09fd71

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.198-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.198-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1e28b8a4becfba3f0298d46f5462c09c99ff4d8c34126460318f55e234375f94
MD5 fa691f34cd6072ec40a0fcc1c82ae76f
BLAKE2b-256 28994a3c38499009b212c9146fa1c6a9726f4a0de9d917c6ce4ac12f563de3e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 00ae35090172994ef24f0051f4da83af2df2c4d6dd05acda1a7bc7da54dddd35
MD5 a1b6da92e6426938a428573ebb0e60c8
BLAKE2b-256 744043ec4d77f5e7c4aa61826d7a8cc4cdc2102cd2ad4634de508cf43c2e4efc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5afe6b013016741b32f24eb5a57e2476a81c982e8731a4d6aa56ae7c82797a01
MD5 9bc24ef4b4a567d5d92cbb923e6dc914
BLAKE2b-256 ebf304ab5fe24a9a4abc2cb5f7b0781ab8051d65ce5a12710efe88142633033b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 843061c882661cc05a80ca0fcedb9b1c2e7cedb0d9980e4a8df9a9b03320cd6c
MD5 c41e174076b187207509ce9dc4efebca
BLAKE2b-256 d20569adb43a5f2c0a38cdf7b5429344bcaeb06697b2cc17171e68d90dc86b24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 33883e8a537a2f2a7008c24e07d40539f374e3903e1585fa527d15a754c56c78
MD5 86577d33dc79c2a7a7476d27854f40e7
BLAKE2b-256 9a37a9150c17441bbe30a9db8587ca3766d018d3d8380bb260b7e2e66a841b3c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.198-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.198-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 810f6922b7858d298ecde082917a1945d57541c135e7a8ac7c8c3463d6dcb63f
MD5 f436594b51c5207146683ad538344563
BLAKE2b-256 4744a1cbc799db746d99c44c5a3ccd6575454834047ec2883085ae7b1a9f3a6e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d7624695d1d949ec0df23ffa18d972920fc17a6762eff5e2cbaf061ea028c34b
MD5 40cc5af5bd3217c582481a5fa4a18451
BLAKE2b-256 993aa39b882c37041a370e4b846c37404f8bd07113916c890100f944acbdcaf6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b0b1f9c31737afee43cc9808993f37ddea4b57a539bc895b949146c4115b86bf
MD5 4a83a8e54e340b5832021ce489277949
BLAKE2b-256 d20c14574abce2fee39f0ee8461abda218eb0489ca34995f2c6519e5fc3e4b7e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e662b8fceaf676b1ba9acba070aa0f5f2fb30248a083508186f82e4ae784ec99
MD5 fd7c744d0005b12ae55d2c8db678d24c
BLAKE2b-256 10e8be2b25ac361c7c9008cd33d075fbb5f4f271545a26d9938d54b2350e7cfc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ef4ccba3a65e43a0e5de5746192aa4e46e0bf34b1e824422aad24d0da5ac841e
MD5 1909a175df8aa416ddfed93652b751d9
BLAKE2b-256 101dcc750578230a33febc6f045d63860ea4ad889d35d1d19be9202a30baca47

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9559aefff81b9b08cf36844219c5b3029f69f974629f0936464047b20e55d716
MD5 b747da4032cadba406aabd385b887eb7
BLAKE2b-256 8e3de2b948ac97846cc1ea996b1e4ea171ff76c54cd404561ac6cf48b1772e04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 678315817a1d8a9312a1ce3ef1a7f0f49959bb233ff335aff18dc7c8ebc4d60f
MD5 c52a3f796526fe333dec7c986274fa29
BLAKE2b-256 5bef19993b5869886c66997e63195d664eb8d12b24bdc911de9fd4d13e2226b1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.198-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.198-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 26beda5f6a64bf57c224151a59bfb2c371181307b418420776772e80c6b527ab
MD5 caeeba88c652a41c0397fc904fce8e44
BLAKE2b-256 4fe3cf8f1dbf42dd72e304deb444e8ddbbd4cc9d722947b451e2923793e8e666

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c14184c49c4d227212750ab0610f9f97568062dfe656e365efaa0f02c6b6e1fd
MD5 b7c47f2ce5e75c73de8121cb3c822f8b
BLAKE2b-256 b43ac87f930538dd00b2d461c007401cd032d101e35cb7741607975e9fb59f44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 04bf68628373b40653f4b910cd8bcec2b52bf11f4629d2477f14314622b47f41
MD5 bb877ba7c78d1fb8c827296b3f31ac69
BLAKE2b-256 377c12e32e4467a7d628ca5fff13436f7cf57c77f2b1cff49bef5823b445766a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 852c320ab82faf384c81b1bbff68d91e44ef649d8acfc6fe91054f98b0d6b66a
MD5 7e2d50a6839bd263e092cf60984e3435
BLAKE2b-256 134f7e7e90939552f42c7d2867b2c3f11406bf60f936d0697d9a1d27d6102f9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c19c4e2852639a2054c0864593ed9904b1dcab01c14740b6a9ccdba87efe8374
MD5 517acfbdd81458091f928bf475acece9
BLAKE2b-256 c88458c1133fa3655c98958a854691e8bb25ee3009f32e169e5b281b99f75c87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bfd7bb596584ff387167e4be618866687170e6c25be98e842abf72bf6d52f9d
MD5 2bf895dcc3d311c8256eab95ca55f9fc
BLAKE2b-256 4bd67985232860e8530cbb4b470d03b977fbe87ce0b883e57841d4bfc425f2b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 99db9b9d035c9bc0aee60f680cd8a4d389c0db9b691bdcfbaf45cdde313cbb8b
MD5 794a660840071043e9cb01dbf457a003
BLAKE2b-256 9862b268d8fcdb4973b16ab35889a7975b289e011096f180f3364213d0ca6c22

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.198-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.198-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c44ab8bdf6580157cb85ad88e1c65459a826428868d86418a58cd859acd69ea1
MD5 63a406a0da3ff486ac25a507c4b19a41
BLAKE2b-256 09067e90ebf169caf1ff3e7fbb53313813660b2520cd9156e9f4f1a91f64e8ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43d7f1bd06adfcb9182f37fced06e383c13649a221494c4ef122f442761685db
MD5 0418689804c5b6c561f85412fcb9a371
BLAKE2b-256 20a56da82f7c9638730d7b653698addb04d3409999ff03a5953702f1b2264c78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 951804148d53fed883d43e132c2843d5fc8df7b2bd6b833a2ec231ed62796505
MD5 d3f76daf07810e6488ef84ef06d665e4
BLAKE2b-256 fde69caf4eddde3b95fcb5c93884e82ee37c0a660dfdecc849f6adabf09bd8ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7f0829d13c63ef9ed9edde7e3eaf478e6c6ee33e6b9d203b8a55007ed6847c7
MD5 605036846eb0b0fdd387706a288f415d
BLAKE2b-256 76f6344de40200f5d6ffd9fd46ba239ffcd88afe16cdd86d5dd1f70f1535bd2c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 893db60b072dc26f36efebf74c9d3df51143666fe30bdd65c9ede4078b85ae89
MD5 7effcce880cba0710c08c7c924d8bdce
BLAKE2b-256 c05a7e7282d94095b5e541eeb46ed11f1eaea3eeea375c7aa5fb62f21401eb97

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4185f0dfbe24925280efdb87984021dd60ea6af586a521134544a52e87a5bf6
MD5 fbf4bf5916ccf340883e7934b79d52bf
BLAKE2b-256 96b5b7a953b5a8adbe0e81e46b82606676f5cd7b85a7e7eddbe4e2f496cc09b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5f110b3375181f47ad587ea460fe3c3d41125963ffc2a1e2e90738f2f4748507
MD5 55e4552972775466d08c90cd9ee75b65
BLAKE2b-256 02c383adcbd944bc51f0d7ba07544f97b97c8e2ab22f9e778c8e0f5cfff3ae66

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.198-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.198-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 48c8f587a89d2238ea25f76895beba3ab2f430cb667c9311276899f1a7721e31
MD5 7d715a5924ebd4ca0181a5bc11187bfb
BLAKE2b-256 05c52142a62403d3fd766b0826ff7d84cf2a7b14bb15b3e175f5bf3e3ffc870e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3774ac64515a77cd5c98cba82c3be5b16c36b74129c68079bb47a8a96e048f18
MD5 ac49663278314e22b1e6efc2a5b0b910
BLAKE2b-256 420463623abc9745c2ddd911500e18b9e2f75e287b139ce71343196af925fe45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ba4e944c6c5430559164784b3174b14a8d7324862d3509b105f4bbee57825be
MD5 7a4059374ff8696905fc827e508aa1fd
BLAKE2b-256 33851b05823011c926f88db7aff72a8ad9893fbc456c9107ecdf1fe488f10b63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39b8898081a7bb39d76e3d857c7337152c16484e30ebbf7c6dcdf9a2ee79b8ce
MD5 22e08daf6b47931006a07ace323adcc1
BLAKE2b-256 90088a12c945499c768fe368bbae34d49287a33badffab12e75db13835643d43

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 006ed48fe73a468a392a9c855202add4c4124414bbd6d9cf41e5069b5b5c9176
MD5 b692bcbe9ec01ffd2c37fec9aefb641b
BLAKE2b-256 7fdda3aa6fbfe3b2533520d65d59f2a82f48b0c75d54bc215bf1a558ac077b8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d1b7b545e29293d029de54a3d5b1718175f5bc2ff45e58953685db45fda3ef4
MD5 61a8ddbe6849f4b5c59001481f59c693
BLAKE2b-256 093d1f28befb931b7adbeffa8e3a5e226573cd8607288ff6fbb22204435adc2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvex-9.2.198-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.198-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyvex-9.2.198-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cdb777013238eb9d644bd2076d3c0ddbada21ba2b4b0d9856f026fd7b82f5d66
MD5 5470e21bc190e35741221e5f25b86e13
BLAKE2b-256 99a2e7bedac2ecbdf8d01e9d6f740625c1760acb15d51045eaa88deeb657a6cf

See more details on using hashes here.

Provenance

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