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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyvex-9.2.208-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.208-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.208-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.208.tar.gz.

File metadata

  • Download URL: pyvex-9.2.208.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.208.tar.gz
Algorithm Hash digest
SHA256 990bbc9287cd0a9eabf8928b6dacdba9c184c77d6af343b80a408a3f65d2e672
MD5 9224bf8f8bcd4e0cca4acbfcf3515267
BLAKE2b-256 d4f592d59ba1c3ec3dc3197a7dcba88e4c4f5b2fba0f9530dc89f2158071edd0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.208-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.208-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 da14adb0a43e5e7f8da3f23ce2c0c69cd5dc4c298da73bcf6cf8f6238f10eae4
MD5 10441d09d92712b2abe7ff003761e76e
BLAKE2b-256 acb8009ba3a9e0b9dd5fd5fae85e7cd3d0ad25bbdb98d008aaa63248069443d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e46e38a3a9628cebb8b0addc26777d6a7c7a69408527a4ef1448d9ea1118c233
MD5 0f72fe052e8b6b3f7dd8d5e8ec5d0fe2
BLAKE2b-256 91c2a542d0c2ab72d56adc24a879208e12bfada4568d87fc67322bd86b9d52b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 32c7dc222d1a3ec2a55902752c40c94a478ff83068b7b06b675bbf9c82386594
MD5 781489442deef3d661bd11871513d79c
BLAKE2b-256 4bb9526a58e765d209a60a532af17747264963e8e0b5e5dbb084d0a591bc714d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3bd8d5c97b0cb5ee29215e9e11569dd70a919006bd85e41dff09770049d4cc3
MD5 9597933ac48a8512bd02b57f69948c95
BLAKE2b-256 33c0c5e77c978787b71298f2d5b1010435d4cb87bf1085bfea33db427a17cd6d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.208-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.208-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 48013102d94e9df62cf40b004cf12df90c0c5ef8a63c5840d9e887adab3880a8
MD5 3168d7e8e09f2ed5dcd9c3e63101d8ac
BLAKE2b-256 edb26175318c8488bcd69693c516b8900c6444c8aea435ed769f651f0a21b9ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 912e75977ef09069a9068c4f383298128aa583b589be53b348cb63ac85110585
MD5 2e83a62cb9f28cc75d3674b36fe8d576
BLAKE2b-256 d40863d10a26bcbe5c9460d01751e6f8d6ca34e9c03b75c42716e74c345ed12b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5c6447da9cea6a664e9e5a7295807122593ae742a69a7f101c01c65b5372df86
MD5 c59f9ceef5a6d9238cbf0080a43443eb
BLAKE2b-256 1162f4d6ec76e37070c79e40007f47c3e11fb19593cdc783a085af5165ebf7f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b75cb99dac73ba2cd1941f575697f3825762c37e421c0f8251b8f87daf4a086
MD5 b363cafcea767742c05ee8b324c51706
BLAKE2b-256 6c2dca84ca65e93449f71f5f0ee1917c5a914657b458f693643188cac1b07e1c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.208-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.208-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 270b01a25045c0f5957044fe5361e9b86b3594520827f6e71538b5720203d3d7
MD5 f61bee6dc103e56fab4137a1c755448b
BLAKE2b-256 80bed721da80244de637fa5aede48e8372f1f52a74f2abad4b915ed61f17b842

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 839d8280fa3ad6dc268f09241a9fe0b4abf8b56ded0047aec1a6e44a49c5b0dc
MD5 c03f84e68c71b85b0b21ac689f3d430d
BLAKE2b-256 60603686faeaeead24753a05b98a980fe3fdbdc82d3b346b63a6f8cfa3e97c60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1f34879260b6ff93dc8ef84ffe7522b633373f3280a063ef43d92cba27b38ca0
MD5 509cba80a78aeb1c3e462a5f781b18bd
BLAKE2b-256 3f5b839754f511819055ebd6f661ac0223350fcffdb01d29dc2281ea0c6e8cfc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f734c8dbe15b08bf508871f9ec15acf3a628568c43277902f9cc34d6835947ac
MD5 4cef6985d340d5b843b87d949a375c6a
BLAKE2b-256 06889d5cc0f56bdbdf7542d0e4b7423d67981dd662f2ef745a51886a70dabb57

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.208-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.208-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 710588d6ca37892c657ff8cf4268634d19375a7d9151c9fdd14818a3a6f881ff
MD5 6ef2892ee9b7c6c0aef20c7552ea95a3
BLAKE2b-256 a0ce385856d148c1d8731ae18922e7008ae1f9c9eb3a26a899407a5859a7e418

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d12be226a60e27f09315fbe0ad2b72d6f560b84395f0307fba7709154a23a82
MD5 ca5c570f6ba56c767a050c7d158c9b7d
BLAKE2b-256 953eba853864149c2eb9a42763078a7c9a74f41aaab6a2c01fc00c0c4f1f9568

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eac02bc965beb07ecaff14344396b101f62915e6dfcac38fee85e458dada0227
MD5 fcedb39134858b2307a2df230ec09862
BLAKE2b-256 ad035617328f98d480e652578cd8dc6ededa7c2f48b0c84b6729c16e40cf8579

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8c0af0bac4c29d8a2aecf29fe7a066e6477ff1ebf2f0cc6b03692e2e78df4f7
MD5 bed30a4d9945e361fd30b4a8d39f474d
BLAKE2b-256 8f966996fb05c331949163b191f126b322661f9fdf8f1d21dd792846a78ee82b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyvex-9.2.208-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.208-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3ef33f1312cac6531d7c46104a8166c2073615a49a283684993c39088badcab2
MD5 e5aa3bb13580c9e0ee709bce90e28cd1
BLAKE2b-256 6b4e8fa14f3bc8bdf874da48956e7442479d266c6dd238e335b3b495306fe37a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3beab5198f371ffccd81835c13266317f9e830c6aca73dbc70976a88970c5773
MD5 e140873f32df3953d52df92dcfbc3be2
BLAKE2b-256 2d21de605b7e004cb0cb4545c114daf2a7e5d04dedf2b6053ad148f6cf24a97a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 02ec372d12d40d9e1a329f9de6ba04f66c061a72780ca5cb716fa947f8431340
MD5 8a6d5d9a244ef300ac74c44f6cfa65b6
BLAKE2b-256 e56d1c435764da5e321e31ec162622b49301a57cd9473886a99044898403a340

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyvex-9.2.208-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c61d06ccfef8af5d37604a70db38a70c451f2ec212d8ef6e9dba648e036f44a9
MD5 986ac3fe80ee7d9f7ff4fc43ce3aeb9d
BLAKE2b-256 e8272d280a04878d773c102d552adb50950e7592388dcbaf30889539f5a282e9

See more details on using hashes here.

Provenance

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