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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.212-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.212-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.212-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.212.tar.gz.

File metadata

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

File hashes

Hashes for pyvex-9.2.212.tar.gz
Algorithm Hash digest
SHA256 3c72e272ae78957eab0d0deab336ad534ee6bd02dd173e33ad536c0b24f17201
MD5 fac21591f8b405304d07761ef6c61401
BLAKE2b-256 ce83d3189a2deee0d142fd2a5aef301cf287aa6bd1641b9518d615e0812d1979

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.212-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.212-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 83937ed0ecd13c917807100cbd026fc2b593065c302d69f26f994abcb936a352
MD5 be0c775f147e5481f2e9657ff45c1cd3
BLAKE2b-256 641d4cbb07745749c6a8d257fd4e516676b39111d9f7c1614dbb2842a7dc91eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2889771e858bf767928629a477aa9a2f5fae4f4795431ad4b4036f60ba713687
MD5 e00a5d61087f1324327177805fed6010
BLAKE2b-256 31fb2f43e74d9f53e69b9c5afa15a967516c1eadf196bac74d4949c49896c87f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 582963fbf52eff3615ada4831f24e58eb795af4faf82756db57577bdd5ac4ef8
MD5 d796d34683692420bbdb5d2f583f0b9c
BLAKE2b-256 f4d0ba391d5b36fd9910b704ccc9ba2dcb8f90d44a1c95d4d7d8e6946657c4f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45480f647a2087c2a29b95ce149969e74d705f1cb0d6bba131922591f555e6ce
MD5 c5caee1281d5eb21985029b221375711
BLAKE2b-256 46cfbde5ced1b9990cd47a3ef3fff1498afb8967d22622dfa345adc889a63117

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.212-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.212-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 421b8dea54170b8027a6aff4bc16e3c116a3ac999bdac096eaa83f1003ec39a3
MD5 66c06ff3215a8b8add07486609e9acb0
BLAKE2b-256 40e2d81061cd3943f0c7f6f469b8331c11a300eb38ff1779e9f90e4e2b810543

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81e57c039842a128ad6c44d301641228f403809bb93dd10a6185533e157c134e
MD5 a2d2327eaa18db54453fd2d7d69dd21b
BLAKE2b-256 d778e631b6bdd7eb5e952f98d37a2567436e194edd542e2f1a81658058f0b87b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 49b2c113355a91bcb77b8244de45975143112558801bfd4b1b7bc0e6a8cce2d9
MD5 1d63d217bd94836237e1e946dbea4289
BLAKE2b-256 d1b7e1a9c470a70fb244e07f604866ae6c29c9e3fcb12a424c7275e431abb299

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73559d0dff055a1bc9f6f961dc72f8860435c49a79e6fc34f83d61788c3af17a
MD5 82bc80ed89ba0271c7bfda825ce2a34e
BLAKE2b-256 10bffcd06001c82615568e6570272848964249355de329ea269f3ca5a9a784b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.212-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.212-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 18379ba4a036b3d629a4e9b61921462e148e48779fb2a6ee641c3b17f0b433e0
MD5 4644c10f6b489645ab9aa932828d836e
BLAKE2b-256 2db29310a6e4503b00824b9b8d18e27b7d087a6b7d0a7feee758e6410f5a6e2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44d4bc6fe9866f80b5aecd7ddf5cb9d05df74f4d14ea588bae7a6e74075f9cdd
MD5 a78e1ade1797b15cfb8e65353641ba24
BLAKE2b-256 9bfdfb81f6dc92eed3e3a8cf77ab3066f7a0486eca7c9ba5275b4f0d65afdace

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37458ad11b10847c2ea80a6e07a98a9c24cc29db984bcd7019046421608f5707
MD5 b1fd11ab5deb582bd74e3a3cc7b6a75f
BLAKE2b-256 30cc324f7e1e63454f3176c1f11a153f0e8d9ea11ca3ca68d40403670e1dbb42

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7193c91ed32777b720d561060ec877584ffeda5352e93ab8510210f87a27ac3
MD5 7da1d8859a2d07620eba75ccfae9192d
BLAKE2b-256 c3e79d3b695e73163827a8ff8093ceb7010525bdafaaf164ee322021103a8652

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.212-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.212-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ff8ac9fa5eb199522419fd9ae4597cab1b95284a05841d1a34bfd24e830a26e7
MD5 145c7c02f3e5d020a60c95d2f024d96e
BLAKE2b-256 2a53a3a3b85b3fdf50e3d80b31d765fda3afa04203db1bec681226aee6d50acc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6fe625ff66ff288add32cda5d6713103a365048e512e513aed6cbebf9834d79
MD5 c632197926801bf69f7aad6944d4b4ea
BLAKE2b-256 60b3da7d09f77086e3849f73a4fc321f70279c73283537a2e105e7c41719d2c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0433917a59e3ddd278f93f99d353cbcb1bf6329eb32163cdcad64965dddc13f0
MD5 5701b02c2c2e62af64b5c2dddad33cb9
BLAKE2b-256 89d43c8cb1cbd58d5764519abb5e40df366a034400f6262218b0075630b06ee1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9427647d5a5216c1f2b0d9da42809681c93f415ddc281736e474f6e38c3967b
MD5 b7e94b27ac81e49f424171fc31b4105d
BLAKE2b-256 a876fe9d347f5a4270c23c755d5f677dc8c9a1a18090dceaabbbe7431fa95140

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.212-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyvex-9.2.212-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 acb280d7f70356935d86508078d3a1a0112789442056e19a73fdad65cfc376c7
MD5 00c274f8ecd4bb9dbc04f770a670f37b
BLAKE2b-256 cefaa1de6555e0cb48b5860984a8d0bd1f15cd3f4886be815bf00b83f8f90ac4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 988df1b236c4e3638dadf414cac63214353e51f7f1aeda980cbc8bfc0cc500a2
MD5 53f08d0237d710f4825a048591cfd9cf
BLAKE2b-256 565a00297ada62d97b0610a24455c47858d223f03a5a2aa926a16577ab2364fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9b188780dbda1b20adb97ff42c5b581e59d7a609a15921b4eaf42bf9a546fff7
MD5 e1f7ebcaf10722abf9ba3eab1742c287
BLAKE2b-256 abf87f08097a798cc85d90f725d3d997c9db123f3a996b6443a4436e9f5b1648

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.212-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 43dda42dc3781805654e0fb1654b76a3f4f25f290514b5fc021d60fc2ab1af25
MD5 0ca15fd1f7c9f3a1882706c75411c682
BLAKE2b-256 935c776635f68022cfe4d6638eca05ac51c9d5d14e49f872f00b13175d50e116

See more details on using hashes here.

Provenance

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