Update to Capstone6-alpha5 (#3274)

* Update to CapstoneV6 alpha 5

* Add riscv32 test

* Add loongarch64 test to ensure branch targets are resolved correctly

* Makefile cleanup

* Upgrade version of uv
pull/3288/head
OBarronCS 3 months ago committed by GitHub
parent d0607e188b
commit 4dd7300a50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -44,7 +44,6 @@ from capstone.riscv import RISCV_INS_C_JALR
from capstone.riscv import RISCV_INS_C_JR
from capstone.riscv import RISCV_INS_JAL
from capstone.riscv import RISCV_INS_JALR
from capstone.sparc import SPARC_INS_JMP
from capstone.sparc import SPARC_INS_JMPL
from capstone.systemz import SYSTEMZ_INS_B
from capstone.systemz import SYSTEMZ_INS_BAL
@ -73,7 +72,7 @@ UNCONDITIONAL_JUMP_INSTRUCTIONS: Dict[int, Set[int]] = {
MIPS_INS_B,
MIPS_INS_ALIAS_B,
},
CS_ARCH_SPARC: {SPARC_INS_JMP, SPARC_INS_JMPL},
CS_ARCH_SPARC: {SPARC_INS_JMPL},
CS_ARCH_ARM: {
ARM_INS_TBB,
ARM_INS_TBH,

@ -76,22 +76,6 @@ class Loong64DisassemblyAssistant(pwndbg.aglib.disasm.arch.DisassemblyAssistant)
if instruction.id == LOONGARCH_INS_ALIAS_RET:
return self._read_register_name(instruction, "ra", emu)
# Manually compute target addresses for relative branches
if instruction.id in (
LOONGARCH_INS_B,
LOONGARCH_INS_BL,
LOONGARCH_INS_BEQ,
LOONGARCH_INS_BNE,
LOONGARCH_INS_BLT,
LOONGARCH_INS_BGE,
LOONGARCH_INS_BGEU,
LOONGARCH_INS_BLTU,
LOONGARCH_INS_BEQZ,
LOONGARCH_INS_BNEZ,
):
# The relative offset is always the last operand
return instruction.address + instruction.operands[-1].before_value
if instruction.id == LOONGARCH_INS_JIRL:
if (offset_reg := instruction.operands[1].before_value) is not None:
return offset_reg + (instruction.operands[2].before_value << 2)

@ -6,7 +6,7 @@ authors = [{ name = "Dominik 'disconnect3d' Czarnota", email = "dominik.b.czarno
requires-python = "~=3.10"
readme = "README.md"
dependencies = [
"capstone==6.0.0a4",
"capstone==6.0.0a5",
"unicorn>=2.1.3,<3",
"pwntools>=4.14.0,<5",
"sortedcontainers>=2.4.0,<3",

@ -2,32 +2,33 @@
ZIGCC = uv run python3 -m ziglang cc
ARCHS = aarch64 arm riscv64 mips32 mipsel32 mips64 loongarch64 s390x powerpc32 powerpc64
# In case we ever need a different compiler for an arch, fill it in here:
CC.aarch64 = ${ZIGCC}
CC.arm = ${ZIGCC}
# CC.riscv32 = ${ZIGCC}
CC.riscv32 = ${ZIGCC}
CC.riscv64 = ${ZIGCC}
CC.mips32 = ${ZIGCC}
CC.mipsel32 = ${ZIGCC}
CC.mips64 = ${ZIGCC}
# CC.loongarch64 = ${ZIGCC}
# CC.s390x = ${ZIGCC}
CC.loongarch64 = ${ZIGCC}
CC.s390x = ${ZIGCC}
CC.powerpc32 = ${ZIGCC}
CC.powerpc64 = ${ZIGCC}
CC.sparc64 = ${ZIGCC}
ALL_FLAGS = -g
# These flags should be used when compiling a program that uses LIBC
# Note the list of architectures that musl supports: https://wiki.musl-libc.org/supported-platforms
CFLAGS.aarch64 = $(ALL_FLAGS) --target=aarch64-linux-musl
CFLAGS.arm = $(ALL_FLAGS) --target=arm-linux-musleabihf
# CFLAGS.riscv32 = $(ALL_FLAGS) --target=riscv32-linux-musl
CFLAGS.riscv32 = $(ALL_FLAGS) --target=riscv32-linux-musl
CFLAGS.riscv64 = $(ALL_FLAGS) --target=riscv64-linux-musl
CFLAGS.mips32 = $(ALL_FLAGS) --target=mips-linux-musleabi # Big-endian MIPS
CFLAGS.mipsel32 = $(ALL_FLAGS) --target=mipsel-linux-musleabi # Little-endian MIPS
CFLAGS.mips64 = $(ALL_FLAGS) --target=mips64-linux-muslabi64
# CFLAGS.loongarch64 = $(ALL_FLAGS) --target=loongarch64-linux-musl
# CFLAGS.s390x = $(ALL_FLAGS) --target=s390x-linux-musl -mcpu=z13
CFLAGS.loongarch64 = $(ALL_FLAGS) --target=loongarch64-linux-musl
CFLAGS.s390x = $(ALL_FLAGS) --target=s390x-linux-musl -mcpu=z13
CFLAGS.powerpc32 = $(ALL_FLAGS) --target=powerpc-linux-musl
CFLAGS.powerpc64 = $(ALL_FLAGS) --target=powerpc64-linux-musl
@ -65,9 +66,12 @@ POWERPC32_TARGETS := $(POWERPC32_SOURCES:.powerpc32.c=.powerpc32.out)
POWERPC64_SOURCES := $(wildcard *.powerpc64.c)
POWERPC64_TARGETS := $(POWERPC64_SOURCES:.powerpc64.c=.powerpc64.out)
SPARC64_SOURCES := $(wildcard *.sparc64.c)
SPARC64_TARGETS := $(SPARC64_SOURCES:.sparc64.c=.sparc64.out)
ARCHES_TO_COMPILE_BASIC = aarch64 arm riscv64 mips32 mipsel32 mips64
# Build basic.c for these architectures
ARCHES_TO_COMPILE_BASIC = aarch64 arm riscv32 riscv64 mips32 mipsel32 mips64 loongarch64 s390x
# Build basic.c (which relies on libc) for these architectures
BASIC_C_TARGETS = $(ARCHES_TO_COMPILE_BASIC:%=basic.%.out)
basic.%.out: basic.c
@echo "[+] Building '$@'"

@ -33,7 +33,7 @@ COMPILATION_TARGETS_TYPE = Literal[
"mipsel32",
"mips64",
"s390x",
"sparc",
"sparc64",
]
COMPILATION_TARGETS: list[COMPILATION_TARGETS_TYPE] = list(
@ -51,7 +51,7 @@ COMPILE_AND_RUN_INFO: Dict[COMPILATION_TARGETS_TYPE, Tuple[str, Tuple[str, ...],
"mips64": ("mips64-freestanding", (), "mips64"),
"loongarch64": ("loongarch64-freestanding", (), "loongarch64"),
"s390x": ("s390x-freestanding", (), "s390x"),
"sparc": ("sparc64-freestanding", (), "sparc64"),
"sparc64": ("sparc64-freestanding", (), "sparc64"),
"powerpc32": ("powerpc-freestanding", (), "ppc"),
"powerpc64": ("powerpc64-freestanding", (), "ppc64"),
}

@ -43,6 +43,10 @@ def test_basic_riscv64(qemu_start_binary):
helper(qemu_start_binary, "basic.riscv64.out", "riscv64")
def test_basic_riscv32(qemu_start_binary):
helper(qemu_start_binary, "basic.riscv32.out", "riscv32")
def test_basic_mips64(qemu_start_binary):
# pwnlib.context.endian defaults to "little", but these MIPS binaries are compiled to big endian.
helper(qemu_start_binary, "basic.mips64.out", "mips64")
@ -54,3 +58,11 @@ def test_basic_mips32(qemu_start_binary):
def test_basic_mipsel32(qemu_start_binary):
helper(qemu_start_binary, "basic.mipsel32.out", "mipsel32")
def test_basic_s390x(qemu_start_binary):
helper(qemu_start_binary, "basic.s390x.out", "s390x")
def test_basic_loongarch64(qemu_start_binary):
helper(qemu_start_binary, "basic.loongarch64.out", "loongarch64")

@ -0,0 +1,65 @@
from __future__ import annotations
import gdb
import pwndbg.color
LOONGARCH64_PREAMBLE = """
.text
.globl _start
_start:
"""
LOONGARCH64_BRANCHES = f"""
{LOONGARCH64_PREAMBLE}
one:
beqz $a0, two
nop
nop
two:
la $t0, func
jirl $ra,$t0,0
b end
nop
nop
func:
add.d $a0,$a0,$a1
jr $ra
nop
end:
nop
nop
nop
"""
def test_loongarch64_simple_branches(qemu_assembly_run):
qemu_assembly_run(LOONGARCH64_BRANCHES, "loongarch64")
dis = gdb.execute("context disasm", to_string=True)
dis = pwndbg.color.strip(dis)
expected = (
"LEGEND: STACK | HEAP | CODE | DATA | WX | RODATA\n"
"───────────────────[ DISASM / loongarch64 / set emulate on ]────────────────────\n"
" ► 0x1010190 <_start> ✔ beqz $a0, two <two>\n"
"\n"
" 0x101019c <two> pcalau12i $t0, 0x10\n"
" 0x10101a0 <two+4> ld.d $t0, $t0, 0x1f4\n"
" 0x10101a4 <two+8> jirl $ra, $t0, 0\n"
" \n"
" 0x10101a8 <two+12> b end <end>\n"
"\n"
" 0x10101c0 <end> nop \n"
" 0x10101c4 <end+4> nop \n"
" 0x10101c8 <end+8> nop \n"
"────────────────────────────────────────────────────────────────────────────────\n"
)
assert dis == expected

@ -1,5 +1,5 @@
version = 1
revision = 2
revision = 3
requires-python = ">=3.10, <4"
resolution-markers = [
"python_full_version >= '3.13'",
@ -94,46 +94,18 @@ filecache = [
[[package]]
name = "capstone"
version = "6.0.0a4"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/2e/e8/ed930d72d01d84705b85f49d28285eb0667af793d31ac29ca296f5b67b5f/capstone-6.0.0a4.tar.gz", hash = "sha256:62ca96f952e8d38913cf1e1edafbfc6cba533031b45c6dcf3854e8a68605e965", size = 4799040, upload-time = "2025-04-14T11:28:12.091Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/63/94/a20c93bf0692f073545689a09febc3332ce99255212aa650ee7f953147c7/capstone-6.0.0a4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c043156a9b36208e73e3c4f700a97732bebc6be92ea391f78f83e9ed5b4e41c8", size = 3489947, upload-time = "2025-04-14T11:26:55.527Z" },
{ url = "https://files.pythonhosted.org/packages/c6/0f/641267fb861383b8a1656de33b57337d5dd1723c0d595715ad6ac203e6de/capstone-6.0.0a4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99fefe28c7da22e817b13dfc59a06a7cd79ab12a4a2edd5d82114298e7f2109c", size = 1895902, upload-time = "2025-04-14T11:26:57.326Z" },
{ url = "https://files.pythonhosted.org/packages/15/a2/1b685deb8e1cff3ffeb3e9122cf016ba71514bf63a9354bf76fd1bb5af4b/capstone-6.0.0a4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48bbfbcc4f5f22c2f07081db2bc1ad974d5c03fdc29d690d37e7e99047714b41", size = 1961921, upload-time = "2025-04-14T11:26:58.481Z" },
{ url = "https://files.pythonhosted.org/packages/03/2f/aecf2347dffd9930ef0f771166297088900e5413205dd8e72bf5f1e780b7/capstone-6.0.0a4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6d8dddd9dc1d1cedef8186f02c0d2156f2c734e5ff40e7c0c7572df7f4be26b", size = 2279893, upload-time = "2025-04-14T11:26:59.694Z" },
{ url = "https://files.pythonhosted.org/packages/42/ab/2e6c55b7166ce162dd8d764878caae2b0286beaf0a6a022b550f81e449f5/capstone-6.0.0a4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8351afe611a8ec50df753fe843be3abf740f186f5a535fcc6cf40392771a2f02", size = 2321918, upload-time = "2025-04-14T11:27:00.784Z" },
{ url = "https://files.pythonhosted.org/packages/33/b0/17e6c6d68ffe33fe87593f50e5788749d3b5fed82f1e3c0685f73106d56c/capstone-6.0.0a4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d40ea5ca2404bc71815b73a5ef743c5240b484da28bd195d1f19526e66841e28", size = 2289663, upload-time = "2025-04-14T11:27:02.427Z" },
{ url = "https://files.pythonhosted.org/packages/51/d1/618cd90822204c7b86edeb857c8beae27d24bb3c823a8cd5ff37b3523456/capstone-6.0.0a4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:999b9a85adcd389c0b71fec2e340f5445c392cf2826aa30b96793a11c24e90e0", size = 2312542, upload-time = "2025-04-14T11:27:07.341Z" },
{ url = "https://files.pythonhosted.org/packages/fd/ce/fdf624f12da45dc9b314175d3454c49f33df7c6c6a1c81f14a3d7e9155be/capstone-6.0.0a4-cp310-cp310-win_amd64.whl", hash = "sha256:3a31629da8b276036badc7ac1cd9978d7de4205a0175306b48e74e1337cb4ac1", size = 2252118, upload-time = "2025-04-14T11:27:08.431Z" },
{ url = "https://files.pythonhosted.org/packages/ab/11/1e820781491b60958a4393d2bfb4705374ebc5d2c034f8e7b7695811c181/capstone-6.0.0a4-cp310-cp310-win_arm64.whl", hash = "sha256:c95f411183ef714bf341073d6093642c6c00a0377b9e9fc581a3b77d9d9e0fe1", size = 2210983, upload-time = "2025-04-14T11:27:09.845Z" },
{ url = "https://files.pythonhosted.org/packages/52/ea/55e7e726fc5692842fa0288c1be2f7397edd83c71aa3545176a6634728ad/capstone-6.0.0a4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:624db65efa6b6c76e561b8b678ca47b1bc98fdba8c0841d884ac23dad1df21e6", size = 3489946, upload-time = "2025-04-14T11:27:11.451Z" },
{ url = "https://files.pythonhosted.org/packages/7a/68/0fe8b7472f7d0705ff733b73a627de40539e13fc24fabe0925d5168d5103/capstone-6.0.0a4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b907666508d244b947bb598334954e61f0749c9d7619d2ff5d189fd50facd55a", size = 1895902, upload-time = "2025-04-14T11:27:12.67Z" },
{ url = "https://files.pythonhosted.org/packages/2a/58/361dd9c17aa6fe0c03a468c24482471ac4199860ee2cd77189a845e2603b/capstone-6.0.0a4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c132a9f5d024fdb5a45db2e78ace7bb8bdb92661a61262921693aa94234c22f", size = 1961922, upload-time = "2025-04-14T11:27:14.386Z" },
{ url = "https://files.pythonhosted.org/packages/0d/2a/3d63fe56098e7de6ee8fb5ba538a340bc5c62c204b15880af1a786750932/capstone-6.0.0a4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4d5ef6beb87338e637b6d8b04adef463a82f2ea8b99926e9f08ed38df8a19bd", size = 2279891, upload-time = "2025-04-14T11:27:15.928Z" },
{ url = "https://files.pythonhosted.org/packages/7f/17/b23a035203fe3f1f50951078fd7ab41d41581751badca21d4c321b05d291/capstone-6.0.0a4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac4f8ac1b9ca4337adffe12a2a5c2e82f546f864e3d102207269991e8a047691", size = 2321919, upload-time = "2025-04-14T11:27:17.014Z" },
{ url = "https://files.pythonhosted.org/packages/de/e1/a20c3a0d85450ef7c9ce2bce8af12c52853869adf2a316ca589f9954b34e/capstone-6.0.0a4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fea6dde6f356a9d3eacda72e93107146265db3e02b06c9e3d82c6d13ce90310c", size = 2289664, upload-time = "2025-04-14T11:27:18.591Z" },
{ url = "https://files.pythonhosted.org/packages/0c/0b/fa5d56d7095a9853b3702981e284e31fd3326951ab7315a8c6fe98dd87d9/capstone-6.0.0a4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b4dd5ede5c2ac679ed8d1e18ef72cf7bbaceaecbf27eb41a76556bfd1331d418", size = 2312539, upload-time = "2025-04-14T11:27:20.133Z" },
{ url = "https://files.pythonhosted.org/packages/bc/b8/b836911c854ac93b4cdaef4f938ae9fd6d3e8df3960e40adb1d1e8a2ec18/capstone-6.0.0a4-cp311-cp311-win_amd64.whl", hash = "sha256:9f1cb304f7330ecfad18d94fe64169ca2d98c4188574b2e8bfd9515ae9a9c2b0", size = 2252118, upload-time = "2025-04-14T11:27:21.317Z" },
{ url = "https://files.pythonhosted.org/packages/c3/81/fccc557cd0ff316a6fcc7c7e97cf3a05bcd07357372c14aa3542abf5c79a/capstone-6.0.0a4-cp311-cp311-win_arm64.whl", hash = "sha256:b23a9200fcf878879925fc674311d0431f9de5d07d8a442c353a62b6f3082b25", size = 2210984, upload-time = "2025-04-14T11:27:22.429Z" },
{ url = "https://files.pythonhosted.org/packages/b0/47/ff0a5fd95060aaf450490a1145e7955fad029be0a063fe866b0306bb79d9/capstone-6.0.0a4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e3a9350abd4433f7a50a43dec9845f58709c14e7c4644d7dcd540a66b985ecc6", size = 3489948, upload-time = "2025-04-14T11:27:23.712Z" },
{ url = "https://files.pythonhosted.org/packages/c9/54/2b0b473b58cf7fb181c05cb9b1b9f47fd1c2457029d6e5591a127d484c23/capstone-6.0.0a4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a39e8421a61e8e6324a3cdb18f9d599be4c1fdf9ca2d38bf3c2cc513a4331e6b", size = 1895904, upload-time = "2025-04-14T11:27:25.384Z" },
{ url = "https://files.pythonhosted.org/packages/3a/51/310375f014eeb923ccde94ad0b3809cc2548029f558b7830b8a7766e1389/capstone-6.0.0a4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a8d72f398ead1a51115350b7e57415f7dbd118cecbb9193bc663c481a10baf0", size = 1961922, upload-time = "2025-04-14T11:27:26.904Z" },
{ url = "https://files.pythonhosted.org/packages/ba/a0/fff69eaba09fd4f1c5fe95a4001bcbbd777dc451e245313dd16e1c7db1ae/capstone-6.0.0a4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:513e392bbaf5e9310a7409eba0699077767b44a0dd41ce70c30fd2132d431ce5", size = 2279894, upload-time = "2025-04-14T11:27:28.448Z" },
{ url = "https://files.pythonhosted.org/packages/c0/ad/efaa0c8704548da3fa0f8801e4b8d9288e65c6e05fc0e3b861b302676664/capstone-6.0.0a4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e700366f05c291289c994329e00f6ba4899503d02ca77c768734f555841cb7", size = 2321918, upload-time = "2025-04-14T11:27:29.663Z" },
{ url = "https://files.pythonhosted.org/packages/5c/7d/a2715b78e0342a18f5778e5a92eafd3a5c25494558054c39a89c9c92dcd5/capstone-6.0.0a4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3bc925fa3ad432010132eb8fdc4688cbc7e47aa3f5e2952307f414f25de486fd", size = 2289667, upload-time = "2025-04-14T11:27:31.234Z" },
{ url = "https://files.pythonhosted.org/packages/7c/3c/482adad4a45f23fe183bbc66870e816101c208b8365bad5c81f131893ef8/capstone-6.0.0a4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:643e77dc7ae9ee5e8333303b66a7e783162d0d05fe7f2deeba094f5f2cfd68d1", size = 2312538, upload-time = "2025-04-14T11:27:32.777Z" },
{ url = "https://files.pythonhosted.org/packages/d1/95/0eaf2857319fe44c1fde718a3f3bf0e07907951102863469aa2d16e6e71d/capstone-6.0.0a4-cp312-cp312-win_amd64.whl", hash = "sha256:bfb634ac0085a98031b42aaed64d12cdc46fc383a43cd224ef239bfdee22c9f0", size = 2252117, upload-time = "2025-04-14T11:27:34.276Z" },
{ url = "https://files.pythonhosted.org/packages/db/32/d6caccaa374070903e520742d47a2e367f93aafd030e52bab753918df011/capstone-6.0.0a4-cp312-cp312-win_arm64.whl", hash = "sha256:9a88f020e01e1f451028cd2db609213ac5951c9c473457740fb4e368137464c3", size = 2210985, upload-time = "2025-04-14T11:27:36.256Z" },
{ url = "https://files.pythonhosted.org/packages/ad/9d/2b84d5d465a44c0c4357279885f4c6de4feff8aef6320744a2650f9612c1/capstone-6.0.0a4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5db66c3c273c82f70ae68751d4b9c6241f7327bbeed9ee55ce4116ef5fcdbc6e", size = 3489946, upload-time = "2025-04-14T11:27:37.541Z" },
{ url = "https://files.pythonhosted.org/packages/35/81/9366d6de1d7516e759e3110da1118c430db2c1ed33f27f9c67fad14d30cb/capstone-6.0.0a4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4041ff19810d5a81582f8e33c0e39c6db0704945188c21945234c92e0900c465", size = 1895904, upload-time = "2025-04-14T11:27:38.701Z" },
{ url = "https://files.pythonhosted.org/packages/86/2a/e16249fd0ca2464ad6696d826598015f3e0ee1b8f9deec8b7076f34a8b85/capstone-6.0.0a4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:32fce2e387182a65c2a3bcf4d1e13a5410c45f56f73247777ba0bdea0b365b50", size = 1961922, upload-time = "2025-04-14T11:27:40.223Z" },
{ url = "https://files.pythonhosted.org/packages/c2/f6/e2c85f0e37321bcc6156bc2ac91dbb9ce403d0832c6c4fca65122d9f1971/capstone-6.0.0a4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:805b5a908525d17bb92922316bbeeaba571758f283085bd7d98219f4083761c4", size = 2279893, upload-time = "2025-04-14T11:27:43.005Z" },
{ url = "https://files.pythonhosted.org/packages/12/13/0f8f7b88611a430e576142976a05d4a2581fbc64617cc3b2070b668ce1b0/capstone-6.0.0a4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f43a8d9d0c483a6b1540829acf47488cd1d2e0de7b5e6a92084234f37461932", size = 2321918, upload-time = "2025-04-14T11:27:44.222Z" },
{ url = "https://files.pythonhosted.org/packages/00/25/b253ae59c03e5bc33c3cad30137216f0d9a482a80e68eb77492d1a6a2903/capstone-6.0.0a4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d8ebbc57e5437c5345d101c1076d5faff50e21b4c3c1caa0738c6372deaeaf2", size = 2289664, upload-time = "2025-04-14T11:27:45.345Z" },
{ url = "https://files.pythonhosted.org/packages/b3/7f/2d8a702508d0b19e572bcd10a09a93b0c73caaecea106183b00b9cdcbb1b/capstone-6.0.0a4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a04bb61d769141afd7639b121ff47c9e0b20362f33780083c2f05f3446ee5b58", size = 2312542, upload-time = "2025-04-14T11:27:46.957Z" },
{ url = "https://files.pythonhosted.org/packages/da/58/fc08a41ce1483b83434cbe9e739bfa1f765bc8a2e27ff4c651c3e4a63bc4/capstone-6.0.0a4-cp313-cp313-win_amd64.whl", hash = "sha256:8c38b86e7b4a9752643d470676ba8996bbdd8e2e7a22eca52485292c439ff93f", size = 2252117, upload-time = "2025-04-14T11:27:48.501Z" },
{ url = "https://files.pythonhosted.org/packages/13/6d/e7cc611c59f33ab0114827e2c10a2f815a498e669ecaca0235f680c30e54/capstone-6.0.0a4-cp313-cp313-win_arm64.whl", hash = "sha256:8864fac943ac1eb18e051ce20f99ff614adb707ef606df591c3cfaf414dff99d", size = 2210983, upload-time = "2025-04-14T11:27:49.716Z" },
version = "6.0.0a5"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/00/d3/41b6b8689d54478e680907fbd512106e450594581c6898d7ad82090cc2a0/capstone-6.0.0a5.tar.gz", hash = "sha256:8f33b3ec2e2e93998d7bcb1b4d83faf2a2e27ac8516f8b1a945f956bd32d27f7", size = 4906056, upload-time = "2025-08-03T15:05:12.899Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/55/f5/9264cec292f66bdedb11650534ff07289499859dfcaea74455c3099a5fab/capstone-6.0.0a5-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d82f08ad53bc5cef99afb4ec795ac48a3b6f60b87b6be59f5cd471f33297590", size = 1886083, upload-time = "2025-08-03T15:05:01.782Z" },
{ url = "https://files.pythonhosted.org/packages/e7/82/512eec0561a8d25b55066dc924987264e99d9254a22f5fe56be7decc8968/capstone-6.0.0a5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:946e9c6d22b71ff223bc673d67bdebb6a29ce0b633663e63748b7c20ee9dfd32", size = 1954096, upload-time = "2025-08-03T15:05:03.588Z" },
{ url = "https://files.pythonhosted.org/packages/c7/00/ea0266c352eb19d9a4de027cde4bc1237a01b8c37651197e7f4b257912bc/capstone-6.0.0a5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:469e8c2103dd55dfa19a257dc51cdeee0b580ef038bd5bc51538939990ca2901", size = 2231113, upload-time = "2025-08-03T15:05:05.22Z" },
{ url = "https://files.pythonhosted.org/packages/f6/c0/a7d08f537c0b8caf61b99a7a47f7641b0aedda087c2cfa9d9132a08c46bd/capstone-6.0.0a5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8c75b2596b7fd81a4072fe6ca69d979b13f2e2d503b1743606137314aa7fcb79", size = 2285342, upload-time = "2025-08-03T15:05:06.315Z" },
{ url = "https://files.pythonhosted.org/packages/6b/98/9890cbf39aac7bb0bf3ae8a5da0d2efb2f16132c5d8537add290ce3ecc65/capstone-6.0.0a5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4be0b926f86091044584409e30a9f7415e54dba866fade11b7606ddcaca1015f", size = 2236292, upload-time = "2025-08-03T15:05:07.706Z" },
{ url = "https://files.pythonhosted.org/packages/06/dc/e75de4b26c95d3ea7dbba153d953c43dd59dc42cb28083f7f3b5798e087b/capstone-6.0.0a5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:226dfa4c35052d77bc32b15001e5d28e96bd7091b3b90ce1a9d348d8b7d3243a", size = 2289685, upload-time = "2025-08-03T15:05:09.125Z" },
{ url = "https://files.pythonhosted.org/packages/17/6c/8f8f071bf513468456bf8028695bdee5ed919780d523eda5d81a5542a0d4/capstone-6.0.0a5-cp38-abi3-win_amd64.whl", hash = "sha256:3f72c8a23f2008fea7b00f524b2ce6d1a3792d24c6a98e23e0941614479b8831", size = 2252281, upload-time = "2025-08-03T15:05:10.656Z" },
{ url = "https://files.pythonhosted.org/packages/2e/d5/da2a39f41562d6d2fcdf7b71f9055f26407111a0d540569fddcd1cda0a8e/capstone-6.0.0a5-cp38-abi3-win_arm64.whl", hash = "sha256:a39abe2e5c0cbf9f03c78e08ff83cbf36e666a2d84a5030f4259e6a86f80cb0a", size = 2216355, upload-time = "2025-08-03T15:05:11.79Z" },
]
[[package]]
@ -1361,7 +1333,7 @@ tests = [
[package.metadata]
requires-dist = [
{ name = "capstone", specifier = "==6.0.0a4" },
{ name = "capstone", specifier = "==6.0.0a5" },
{ name = "gdb-for-pwndbg", marker = "extra == 'gdb'", specifier = "==16.3.0.post1" },
{ name = "gnureadline", marker = "sys_platform != 'win32' and extra == 'lldb'", specifier = ">=8.2.10,<9" },
{ name = "ipython", specifier = ">=8.27.0,<9" },

Loading…
Cancel
Save