Skip to main content

A Cross-Platform C++ parser library for Windows user minidumps.

Project description

Python Bindings for udmp-parser

Code style: black Licence MIT

udmp-parser is a cross-platform C++ parser library for Windows user minidumps written by 0vercl0k. The Python bindings were added by hugsy. Refer to the project page on Github for documentation, issues and pull requests.

parser

The library supports Intel 32-bit / 64-bit dumps and provides read access to things like:

  • The thread list and their context records,
  • The virtual memory,
  • The loaded modules.

Installing from PyPI

The easiest way is simply to:

pip install udmp_parser

Usage

The Python API was built around the C++ code so the names were preserved. Everything lives within the module udmp_parser. Note: For convenience, a simple pure Python script was added to generate minidumps ready to use:

$ python -i src/python/tests/utils.py
>>> pid, dmppath = generate_minidump_from_process_name("winver.exe")
Minidump generated successfully: PID=3232 -> minidump-winver.exe-1687024880.dmp
>>> pid
3232
>>> dmppath
WindowsPath('minidump-winver.exe-1687024880.dmp'))

Parsing a minidump object is as simple as:

>>> import udmp_parser
>>> udmp_parser.version.major, udmp_parser.version.minor, udmp_parser.version.release
(0, 4, '')
>>> dmp = udmp_parser.UserDumpParser()
>>> dmp.Parse(pathlib.Path("C:/temp/rundll32.dmp"))
True

Feature-wise, here are some examples of usage:

Threads

Get a hashmap of threads (as {TID: ThreadObject}), access their information:

>>> threads = dmp.Threads()
>>> len(threads)
14
>>> threads
{5292: Thread(Id=0x14ac, SuspendCount=0x1, Teb=0x2e8000),
 5300: Thread(Id=0x14b4, SuspendCount=0x1, Teb=0x2e5000),
 5316: Thread(Id=0x14c4, SuspendCount=0x1, Teb=0x2df000),
 3136: Thread(Id=0xc40, SuspendCount=0x1, Teb=0x2ee000),
 4204: Thread(Id=0x106c, SuspendCount=0x1, Teb=0x309000),
 5328: Thread(Id=0x14d0, SuspendCount=0x1, Teb=0x2e2000),
 1952: Thread(Id=0x7a0, SuspendCount=0x1, Teb=0x2f7000),
 3888: Thread(Id=0xf30, SuspendCount=0x1, Teb=0x2eb000),
 1760: Thread(Id=0x6e0, SuspendCount=0x1, Teb=0x2f4000),
 792: Thread(Id=0x318, SuspendCount=0x1, Teb=0x300000),
 1972: Thread(Id=0x7b4, SuspendCount=0x1, Teb=0x2fa000),
 1228: Thread(Id=0x4cc, SuspendCount=0x1, Teb=0x2fd000),
 516: Thread(Id=0x204, SuspendCount=0x1, Teb=0x303000),
 2416: Thread(Id=0x970, SuspendCount=0x1, Teb=0x306000)}

And access invidual thread, including their register context:

>>> thread = threads[5292]
>>> print(f"RIP={thread.Context.Rip:#x} RBP={thread.Context.Rbp:#x} RSP={thread.Context.Rsp:#x}")
RIP=0x7ffc264b0ad4 RBP=0x404fecc RSP=0x7de628

Modules

Get a hashmap of modules (as {address: ModuleObject}), access their information:

>>> modules = dmp.Modules()
>>> modules
{1572864: Module_t(BaseOfImage=0x180000, SizeOfImage=0x3000, ModuleName=C:\Windows\SysWOW64\sfc.dll),
 10813440: Module_t(BaseOfImage=0xa50000, SizeOfImage=0x14000, ModuleName=C:\Windows\SysWOW64\rundll32.exe),
 1929052160: Module_t(BaseOfImage=0x72fb0000, SizeOfImage=0x11000, ModuleName=C:\Windows\SysWOW64\wkscli.dll),
 1929183232: Module_t(BaseOfImage=0x72fd0000, SizeOfImage=0x52000, ModuleName=C:\Windows\SysWOW64\mswsock.dll),
 1929576448: Module_t(BaseOfImage=0x73030000, SizeOfImage=0xf000, ModuleName=C:\Windows\SysWOW64\browcli.dll),
 1929641984: Module_t(BaseOfImage=0x73040000, SizeOfImage=0xa000, ModuleName=C:\Windows\SysWOW64\davhlpr.dll),
 1929707520: Module_t(BaseOfImage=0x73050000, SizeOfImage=0x19000, ModuleName=C:\Windows\SysWOW64\davclnt.dll),
 1929838592: Module_t(BaseOfImage=0x73070000, SizeOfImage=0x18000, ModuleName=C:\Windows\SysWOW64\ntlanman.dll),
 [...]
 140720922427392: Module_t(BaseOfImage=0x7ffc24980000, SizeOfImage=0x83000, ModuleName=C:\Windows\System32\wow64win.dll),
 140720923017216: Module_t(BaseOfImage=0x7ffc24a10000, SizeOfImage=0x59000, ModuleName=C:\Windows\System32\wow64.dll),
 140720950280192: Module_t(BaseOfImage=0x7ffc26410000, SizeOfImage=0x1f8000, ModuleName=C:\Windows\System32\ntdll.dll)}

Access directly module info:

>>> ntdll_modules = [mod for addr, mod in dmp.Modules().items() if mod.ModuleName.lower().endswith("ntdll.dll")]
>>> len(ntdll_modules)
2
>>> for ntdll in ntdll_modules:
  print(f"{ntdll.ModuleName=} {ntdll.BaseOfImage=:#x} {ntdll.SizeOfImage=:#x}")

ntdll.ModuleName='C:\\Windows\\SysWOW64\\ntdll.dll' ntdll.BaseOfImage=0x77430000 ntdll.SizeOfImage=0x1a4000
ntdll.ModuleName='C:\\Windows\\System32\\ntdll.dll' ntdll.BaseOfImage=0x7ffc26410000 ntdll.SizeOfImage=0x1f8000

A convenience function under udmp_parser.UserDumpParser.ReadMemory() can be used to directly read memory from the dump. The signature of the function is as follow: def ReadMemory(Address: int, Size: int) -> list[int]. So to dump for instance the wow64 module, it would go as follow:

>>> wow64 = [mod for addr, mod in dmp.Modules().items() if mod.ModuleName.lower() == r"c:\windows\system32\wow64.dll"][0]
>>> print(str(wow64))
Module_t(BaseOfImage=0x7ffc24a10000, SizeOfImage=0x59000, ModuleName=C:\Windows\System32\wow64.dll)
>>> wow64_module = bytearray(dmp.ReadMemory(wow64.BaseOfImage, wow64.SizeOfImage))
>>> assert wow64_module[:2] == b'MZ'
>>> import hexdump
>>> hexdump.hexdump(wow64_module[:128])
00000000: 4D 5A 90 00 03 00 00 00  04 00 00 00 FF FF 00 00  MZ..............
00000010: B8 00 00 00 00 00 00 00  40 00 00 00 00 00 00 00  ........@.......
00000020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 E8 00 00 00  ................
00000040: 0E 1F BA 0E 00 B4 09 CD  21 B8 01 4C CD 21 54 68  ........!..L.!Th
00000050: 69 73 20 70 72 6F 67 72  61 6D 20 63 61 6E 6E 6F  is program canno
00000060: 74 20 62 65 20 72 75 6E  20 69 6E 20 44 4F 53 20  t be run in DOS
00000070: 6D 6F 64 65 2E 0D 0D 0A  24 00 00 00 00 00 00 00  mode....$.......

Memory

The memory blocks can also be enumerated in a hashmap {address: MemoryBlock}.

>>> memory = dmp.Memory()
>>> len(memory)
0x260
>>> memory
[...]
 0x7ffc26410000: [MemBlock_t(BaseAddress=0x7ffc26410000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x1000)],
 0x7ffc26411000: [MemBlock_t(BaseAddress=0x7ffc26411000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x11c000)],
 0x7ffc2652d000: [MemBlock_t(BaseAddress=0x7ffc2652d000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x49000)],
 0x7ffc26576000: [MemBlock_t(BaseAddress=0x7ffc26576000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x1000)],
 0x7ffc26577000: [MemBlock_t(BaseAddress=0x7ffc26577000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x2000)],
 0x7ffc26579000: [MemBlock_t(BaseAddress=0x7ffc26579000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x9000)],
 0x7ffc26582000: [MemBlock_t(BaseAddress=0x7ffc26582000, AllocationBase=0x7ffc26410000, AllocationProtect=0x80, RegionSize=0x86000)],
 0x7ffc26608000: [MemBlock_t(BaseAddress=0x7ffc26608000, AllocationBase=0x0, AllocationProtect=0x0, RegionSize=0x3d99e8000)]}

To facilitate the parsing in a human-friendly manner, some helper functions are provided:

  • udmp_parser.utils.TypeToString: convert the region type to its meaning (from MSDN)
  • udmp_parser.utils.StateToString: convert the region state to its meaning (from MSDN)
  • udmp_parser.utils.ProtectionToString: convert the region protection to its meaning (from MSDN)

This allows to search and filter in a more comprehensible way:

# Collect only executable memory regions
>>> exec_regions = [region for _, region in dmp.Memory().items() if "PAGE_EXECUTE_READ" in udmp_parser.utils.ProtectionToString(region.Protect)]

# Pick any, disassemble code using capstone
>>> exec_region = exec_regions[-1]
>>> mem = dmp.ReadMemory(exec_region.BaseAddress, 0x100)
>>> for insn in cs.disasm(bytearray(mem), exec_region.BaseAddress):
  print(f"{insn=}")

insn=<CsInsn 0x7ffc26582000 [cc]: int3 >
insn=<CsInsn 0x7ffc26582001 [cc]: int3 >
insn=<CsInsn 0x7ffc26582002 [cc]: int3 >
insn=<CsInsn 0x7ffc26582003 [cc]: int3 >
insn=<CsInsn 0x7ffc26582004 [cc]: int3 >
insn=<CsInsn 0x7ffc26582005 [cc]: int3 >
insn=<CsInsn 0x7ffc26582006 [cc]: int3 >
insn=<CsInsn 0x7ffc26582007 [cc]: int3 >
insn=<CsInsn 0x7ffc26582008 [cc]: int3 >
insn=<CsInsn 0x7ffc26582009 [cc]: int3 >
insn=<CsInsn 0x7ffc2658200a [cc]: int3 >
insn=<CsInsn 0x7ffc2658200b [cc]: int3 >
insn=<CsInsn 0x7ffc2658200c [cc]: int3 >
insn=<CsInsn 0x7ffc2658200d [cc]: int3 >
insn=<CsInsn 0x7ffc2658200e [cc]: int3 >
insn=<CsInsn 0x7ffc2658200f [cc]: int3 >
insn=<CsInsn 0x7ffc26582010 [48895c2410]: mov qword ptr [rsp + 0x10], rbx>
insn=<CsInsn 0x7ffc26582015 [4889742418]: mov qword ptr [rsp + 0x18], rsi>
insn=<CsInsn 0x7ffc2658201a [57]: push rdi>
insn=<CsInsn 0x7ffc2658201b [4156]: push r14>
insn=<CsInsn 0x7ffc2658201d [4157]: push r15>
[...]

Authors

Contributors

contributors-img

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

udmp_parser-0.6.0-cp313-abi3-win_amd64.whl (103.0 kB view details)

Uploaded CPython 3.13+ Windows x86-64

udmp_parser-0.6.0-cp313-abi3-win32.whl (94.7 kB view details)

Uploaded CPython 3.13+ Windows x86

udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (235.2 kB view details)

Uploaded CPython 3.13+ manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (253.4 kB view details)

Uploaded CPython 3.13+ manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp313-abi3-macosx_10_15_x86_64.whl (85.4 kB view details)

Uploaded CPython 3.13+ macOS 10.15+ x86-64

udmp_parser-0.6.0-cp312-cp312-win_amd64.whl (103.1 kB view details)

Uploaded CPython 3.12 Windows x86-64

udmp_parser-0.6.0-cp312-cp312-win32.whl (94.7 kB view details)

Uploaded CPython 3.12 Windows x86

udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (235.2 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (253.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp312-cp312-macosx_10_15_x86_64.whl (85.4 kB view details)

Uploaded CPython 3.12 macOS 10.15+ x86-64

udmp_parser-0.6.0-cp311-cp311-win_amd64.whl (103.2 kB view details)

Uploaded CPython 3.11 Windows x86-64

udmp_parser-0.6.0-cp311-cp311-win32.whl (95.0 kB view details)

Uploaded CPython 3.11 Windows x86

udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (236.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (254.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp311-cp311-macosx_10_15_x86_64.whl (85.7 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

udmp_parser-0.6.0-cp310-cp310-win_amd64.whl (102.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

udmp_parser-0.6.0-cp310-cp310-win32.whl (94.7 kB view details)

Uploaded CPython 3.10 Windows x86

udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (235.7 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (253.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp310-cp310-macosx_10_15_x86_64.whl (85.3 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

udmp_parser-0.6.0-cp39-cp39-win_amd64.whl (103.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

udmp_parser-0.6.0-cp39-cp39-win32.whl (95.0 kB view details)

Uploaded CPython 3.9 Windows x86

udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (235.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (253.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp39-cp39-macosx_10_15_x86_64.whl (85.6 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

udmp_parser-0.6.0-cp38-cp38-win_amd64.whl (103.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

udmp_parser-0.6.0-cp38-cp38-win32.whl (94.4 kB view details)

Uploaded CPython 3.8 Windows x86

udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (234.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (252.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

udmp_parser-0.6.0-cp38-cp38-macosx_10_15_x86_64.whl (84.5 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

Details for the file udmp_parser-0.6.0-cp313-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp313-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c910d5146354c83683bfa643cffc408b9747d6f23a7dab9198c8feaa2660cedb
MD5 3b0ed31be58d9978fe92efe2712fe4f8
BLAKE2b-256 1e9822b91e6d77d768ad36ec12ce6bb2412243589bfaeb3cfe23541152a64329

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp313-abi3-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp313-abi3-win32.whl
  • Upload date:
  • Size: 94.7 kB
  • Tags: CPython 3.13+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp313-abi3-win32.whl
Algorithm Hash digest
SHA256 99ffcef47ecca4b05e1e736eed2a70bd02321a008f37c051f8a6d4a49a7195e1
MD5 feb1b8aca790c441a86de9cd5ecdaa26
BLAKE2b-256 2e85212da9b34ab80a7d9a02ed001f0a8a2d6a3132482d1b6ad0ca409c6e187e

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7af1948ce5ca3346ddaf057d22ff2b615d896750f97123a9f59d7342750966d
MD5 2d6a9def6fa0b31e3c4634f896e0d089
BLAKE2b-256 80bbab9fe2653008a72e686af8f1c34bb791e4d13185c75f8b6fc16c4ae70da0

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b14e1d24fdc4c3c35278b04400ce824b5259036c033ddaed5493f95248778933
MD5 24ed6459663071ac643a7a65f9e7e0da
BLAKE2b-256 312b5475494b61c236517d8137f3a280e3a7849fa5807952efd3a108d169ce43

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp313-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp313-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 38794c00be1df77a273445ac6fc5dc4aee1b5222fd71d6a94bb0bb5da9d582a0
MD5 69ac41d73ccb2bcf731c0095c0cbc890
BLAKE2b-256 6ef9fbd1aeccc8cf93a0ac530fb6c45b55236b45622517aacf61a47caaa8f335

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7b6fed58829525a87bfb526aee40c922cd67645f2d38f896ac2032fafe47f7b6
MD5 19e7ccb5155bc4b2b6d18e12abba1949
BLAKE2b-256 96944f14d50ab2ddbbb8db1a7c3e9bc521eb3a231e2039aa313cc0211408773d

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 94.7 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 285f8c59e8b52dd471fd5778bca404282352c88b065d0fb938d1e73161c71eeb
MD5 b5628a56445bbda1cbdc8855d379757d
BLAKE2b-256 b530eefb410981f4255c0746d90cd62cd5fe8b844c888f69abceecb8cf838479

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbccde10889f1afdbbc1ad5ca4db762535736c13fae1b00a2515dab9782d0e41
MD5 6c28a413694334703b3304ff64634be6
BLAKE2b-256 64219d41ae61a19d080b9644f6d109c4745d484d35f733713d6121d0e98b46a7

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ede65641b9eac337e00d8f54c8c1fcddd905bfb51a2e3d7f709da6c45c85c2e7
MD5 f226d107d2edd8c4bdbabf1593e6a47f
BLAKE2b-256 4bd1afd8fcc5d5d97db323c4660e83eb912e6cb86fb36185dc86220aae2b9ec1

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 271ae45325b911c72742ae28356ce29b4a223b1457eaef97332188e8881f1b3a
MD5 4ed2a88fdda776ddd00105bebb095755
BLAKE2b-256 a20f578df0132dc7adef77d8cc10af7cbda0c7773853ff04d53c6bb7834e38a3

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c1b2ba514efb9b3a4eb11a954e275ac9d6b04a6a0b40a7a262d848ea60e6abcc
MD5 ec9da1b21562117dc533a016fb72ee96
BLAKE2b-256 d94c02180f328df613526328d9e27cffe6cdcdadd3c942d9f1cf71835d03b84f

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 64ee53faf086df45569db07ae79644f944c072176e6814a8406465493fd2f345
MD5 85387e402fb8e2fc7a5db6ffccbe5f76
BLAKE2b-256 74fd5bf7ed7f69074df10995a59199f6976a9d0ca79288ddec45402878e67820

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da49387698ed9725a7f3b23daf1dda6b09162564ef562d2929516ee37e24ed59
MD5 3691b69ad9c3a6977d1abe13299c0dc4
BLAKE2b-256 d90234a278e2f9c3fa4336ec70282f835a5c0571c90d2dbb4ba86a0023b4827d

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1901ab51d692d81fb1921072582fdbf63d92bfd7f068cad424de7fbc31d11e30
MD5 faad5e636fecea327503fc0205c9a452
BLAKE2b-256 5fc36b13a1ef3f47f88f3997871db46d7b57a657bcdbbe7630c91ad222c7d6f9

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 00bf1b2de73a538abc69241a1d3f2c6c0419a69b9ba04b9c274e4d5ab244e3ac
MD5 b356480352ab8fb7fa0ea4caf16076f8
BLAKE2b-256 d61c3b25ed3fe508912ea47bc6b524f85a004f038f11daae0a78a47ac21775ec

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 57eb748cb0b1b12a9e55779226895ac99d55ad12a310e897729088b1b846cdb9
MD5 61645c46327aa25692c232169b4f746a
BLAKE2b-256 eda2e1c2faecbe3ff8ecb10a60d55d37676ddd03cb92e58c6cfcd76e269a3539

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 94.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6ca40bd9c230caa6bc4687d12453cb23ad110d4b123c5d9d3bdcb28a53e08f9f
MD5 9303d838d4b60f742d44cddc32bc8fe3
BLAKE2b-256 1793508ed76856c688d813b401a5b5ab83b81acc3fe665df0d5d19fe7381c9f9

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3343cd86386a3da609b838558113e1e7858e202fe1ca2695c7f905f33381f80c
MD5 6e2640b930db5d6fe6d0166628f0aed1
BLAKE2b-256 7f20e216a9ed600c3d44da6c23e51353b0c166519c46b9fe54458d5ec2489b59

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5d7fea7cd88f56b9ddb3594d811d76bce516a9366f9a4fc5eb07e7001f80932c
MD5 aa3cd664145df67756f71b8bf297cc1f
BLAKE2b-256 aea227a8b70872db0628cf5d61be2c5a21f42ffc2ce29fdabeeefe8da8228b35

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 91a66c7d173a1cf584c16f330b87bd6c656dada62508f862175f674c9b8f1a93
MD5 62b940f0fd5fc4e12af04143991a40ba
BLAKE2b-256 60e5ff4c08e5f5cd1d05866bdeeea9440b845b8f1ea965b2daef0b5b174944a1

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 38086093c4751c64951875438d37baa6e3e8ceea1203ada95cd8d6aa64b102ce
MD5 a4ee400f3d670cb2a247933de7948e9b
BLAKE2b-256 7b7eab422fd69cf95839a8eab3ab504481db956170062c0595204d62ccd77af4

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 bc75c2b862e38f88de66f1a5da1501b08d4602ab3e8305f9600ad9c000a2c5b7
MD5 d04ebfbb92bde53e6339a5715b3afbed
BLAKE2b-256 1e2579b1aa71674093ded3de8fbf38160d276be75746bf05fa66b420ef93e0a1

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62f11d0d4d2aeaba341b93446b0220308586e950516ac3a925948af2295f3032
MD5 d246d00dcb8ca5142cf29918aca1c956
BLAKE2b-256 0c8d33989b8bf3c480f4c678f32438e0914cddfdce4b66a592af0b3dfd28680f

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef4a8fd37500f4a5e0b0bcf4a1887f84f331ca3e5b69d275172635600d6b88a1
MD5 605c95ecf89e011acac1d17cbafebd6f
BLAKE2b-256 981358bd689629b5a384bf785e7c4a447c88ac0f55afa22f6a794292c3697e28

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4e930f961459a47f21a358914d28c1401c76e9085819d1a22114ceef7dc3b34f
MD5 5b63d249307880a5d5f33736594c94fe
BLAKE2b-256 e1aaaa9d2e75d0f0fc65f5a4cd1ef0645fc7b0964832ae2a290201398acba345

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4222fba9bc966b7f86b2db1b527e86d92b87714d81b02f8a840a4aa381c0ee1d
MD5 dd659d8e301ea67c985c53b4e347ec13
BLAKE2b-256 2dfb79b905bdd82c0d89196533d2e0ac5924a6b13c5cc9bb46c670a61273c755

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: udmp_parser-0.6.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 94.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.3

File hashes

Hashes for udmp_parser-0.6.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 93ba0d7743feff2f6d4e7ef186cc59180694af16e87b99c31d4b19205a9ae66e
MD5 49950422a794b8be03df83c7e89086c1
BLAKE2b-256 75656d46835f311f1aa9920dc98c7554448970bfa042c28ff51eb4ab160b0d33

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c112ddd7f5a22ae42a491c88f6c95b647406247cdac715408f0a810492e68ef2
MD5 78df70fdf2f0ae3ad69bd6337d38f7cd
BLAKE2b-256 331021276c86b6fbabfbc7d513f71b966712f14b9a964f25892d710cab385cd8

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cb46015d5a28c50adf1b027efea3c0c65a4bd0e8a567f31dff47a7b3006519a7
MD5 133def1cc85562f0d6a611fb101b2705
BLAKE2b-256 0da317e411e1d8e1bb760dc2864df6eb7207da4060adcb972dafecc930e00bd7

See more details on using hashes here.

File details

Details for the file udmp_parser-0.6.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udmp_parser-0.6.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2891c216fdd079bc85025506e4ce64bb6fb1d9eb008e90be69608a4b1430261a
MD5 3a0dffc1da0479e7ec20888ac0d34362
BLAKE2b-256 5cc26572b2096872a6410049f7ecfe27c4b5c1ab78e06cb007a2114e8d07e6b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page