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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.207-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.207-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.207-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.207.tar.gz.

File metadata

  • Download URL: pyvex-9.2.207.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.207.tar.gz
Algorithm Hash digest
SHA256 12198e4b4ec3614651bc51d24b866762cdb2ca2cfc51da5a9911838a00622fad
MD5 7cdf00d4c6d0ee881de2b2387108d634
BLAKE2b-256 50d30aaf8a5228b7c548bb3be46212717056b674feb8a96ebbcad6f8bb120f2e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.207-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.207-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6b65729d54e3afec6986671e46b0c8aa5c9f4bb2bc88098394dd191110bf68e0
MD5 e53e29b7f2e4a63c11753d213a2c891c
BLAKE2b-256 57601fac5c9f8663f32b3011b58c26b4ece68dea00ce6a929b05d470a8b44a0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0512fbda290d47612879819532e385275b4f24780acfa34bc6621234c149c302
MD5 17d3d40fad57be6e1ea2f7dc67c14129
BLAKE2b-256 3e528eaac5b3b6e345b7f026386b9e2b7233c91c2c4e22b3f50f50e863b5209b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8836d630813b93eb629b41213635cd3529c0448611f8b6d31b273d083e8f172a
MD5 cff8e637954c74711ab8dd097f53c99b
BLAKE2b-256 73b43b5fc0a3240768cd67e93f532a26e2fdb6d642101e313afde45d6b0ede19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1aa5ae8ea1a13c96de16261397cf05534b52ed54896406a391b2d111f139d221
MD5 3223bf3cf00b260e113b51b6515838b4
BLAKE2b-256 3a73b987c0d30cff87326361f75b136d1e0811374e15fe66eb2c1534a4d0c35e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.207-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.207-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 823af2718676351f42f56981e67cdea5d9929e3e69066135678cfb5afa60ffb0
MD5 e0ea9ccc09e3ae693357b548d5485ad7
BLAKE2b-256 bd24505d13b39e86c52f2bf8cde9cdb39e23b0cb0522b5e193bd51b0712f2662

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8eaee56590daf290507554ee9a3ad3e6579fd911074b467f0fc9cb79f57ba422
MD5 db7cd3f67349399c2cf8dd34985e0616
BLAKE2b-256 382901a7d3a472c68d235ca9417c0c0c5ff09a049a36fa21c3470ae4a6969723

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c0992b5ff2e090b83e2b068658c97bd5666ec5c9c6b81ec0cc4ab057ede3f057
MD5 fce163b7b037d2805c0be5f421541152
BLAKE2b-256 a83edf8dc107f574fb9131ebb2fd21183ca2d3cbf0a06dc0d0d1d70a01b2ee9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8dbf3857e58f1d168dd479fcb1c0621d2a70410fe5f61c2f9b8582d9e7ccd0b0
MD5 c975d69114eeac952c49dee7c33bf7ee
BLAKE2b-256 41784c8f6403a5ecaf50bd5de95b112c499f9bedcaad3b7896c004521db28146

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.207-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.207-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fe041747458d5c967dbfb42f8c7db32cad0d9c169bfe38c64907ca64839d4781
MD5 ebda58f3cd82832a34b10beaa4f76a6b
BLAKE2b-256 b999d4b0220138775c09c08b042d01f87c5a0ff75f915ca9f2bd32435c022d6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ccb9c16dc7772ad91a493b683a54ef3edbf6536f696fcfc667a9306cb5bf1820
MD5 66b4c8e18b69ac0be2ff165264c4690c
BLAKE2b-256 4290e07749bfde664ecf54d0b279145bf8e929cce7d9ec6433509206aac8bea2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e394972e2d43552fdffd21db1d074bafb22753e3bf7ee4834d8ec817d547b821
MD5 c4f26c95ef74b19f3b1f9c71831caaef
BLAKE2b-256 fc056d02206a9a2cf65193b16dc49dc041b26a296c2a87001d72c25a71f11e4c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed8337aef63e87fc9e3885ee4b8a1d84aba2f9abcede621bcadeeba24a55d8cd
MD5 44fb1b59d4a4bf51e16d0fd475669647
BLAKE2b-256 902dfc5d23b6526d694ca5505c828b417b767c9026e725337ad2c6b8191b01d1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.207-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.207-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cabf4b6734480343a9131d317dee85e8380e8184cd268ec67a8cd343e3e77622
MD5 cc7ba56f3a64a1954e732c10f5855d9e
BLAKE2b-256 d76baf41ebd009c3301233a884612d6f45decb9e38a4fee7d51f247bdc9fc4ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ce1a401a47bab3f651536c5a1e2e366160c38e3561535ca307ec863590b5186
MD5 42ff362e17d2f674272431f4ab4d545f
BLAKE2b-256 d914f081da304ec275871c7b78c2e61a6ed206a8044499988f6d08631c7c9393

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b13c8227cd5b32702d2ed9f10d1dbdf075ab3f52d62a704d6e8069b46c1a87b1
MD5 8659b3ab9e668fd72d1b0ca59c8d7cfc
BLAKE2b-256 922681e17aecfc4903dcd23709eaf325129b244f1da3ddb1c177c5c9b21593c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7aae1385d5c58c7913b4585ef18578403bab5cc75f8d8492c9554e7717e0314e
MD5 3062f512c77c3f61f699e15873768084
BLAKE2b-256 6bcad7d260229c649f018049231c73f61d54d9155afa5a256b898f96071bd819

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.207-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.207-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f905cad565ee80211ff9af5806d42c0435ab0843ade6372f7e1fca5d23eabfa6
MD5 1b6ea75bffff29173f4e4fcfb70f9f7b
BLAKE2b-256 6a4554e202ca6c7ae235dff0c2241a9ee150a57111c9e8798c1e08bba7b5af52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abcc30248bc8eaa462316eb669ed9bc7739e8b59a8c025ff57f980d8c36de9a1
MD5 f9328ee531e3ab23843c57b1aa0ad306
BLAKE2b-256 2ec91e554aa3a14e8fd6b7f4fe908b59147156ba0868ac9f302566e59d3559ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d75b3e60b104ae2364f6e43692d1bdc0334d5398065aeacc17b9b2eeff01cfd
MD5 fe3c3816a365bcec840f2b3147a45657
BLAKE2b-256 535699772c3fd97de45f1303159250b122b540e2d50a9547368109a38394fe6f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.207-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7d560715767ca11eb7f60756105ba8c7ee3f4f38d91ff80c68ef4db9e9ac9cc
MD5 dec04e11237d1e349639e21ba4600ac9
BLAKE2b-256 5baacdb3211a0c86bb7fb5d510de7024f4a7eb16def5a7804339dfba6626ccb4

See more details on using hashes here.

Provenance

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