A Cross-Platform C++ parser library for Windows user minidumps.
Project description
Python Bindings for udmp-parser
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.
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
- Axel '@0vercl0k' Souchet
Contributors
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
Built Distributions
File details
Details for the file udmp_parser-0.6.0-cp313-abi3-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp313-abi3-win_amd64.whl
- Upload date:
- Size: 103.0 kB
- Tags: CPython 3.13+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c910d5146354c83683bfa643cffc408b9747d6f23a7dab9198c8feaa2660cedb |
|
MD5 | 3b0ed31be58d9978fe92efe2712fe4f8 |
|
BLAKE2b-256 | 1e9822b91e6d77d768ad36ec12ce6bb2412243589bfaeb3cfe23541152a64329 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99ffcef47ecca4b05e1e736eed2a70bd02321a008f37c051f8a6d4a49a7195e1 |
|
MD5 | feb1b8aca790c441a86de9cd5ecdaa26 |
|
BLAKE2b-256 | 2e85212da9b34ab80a7d9a02ed001f0a8a2d6a3132482d1b6ad0ca409c6e187e |
File details
Details for the file udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 235.2 kB
- Tags: CPython 3.13+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7af1948ce5ca3346ddaf057d22ff2b615d896750f97123a9f59d7342750966d |
|
MD5 | 2d6a9def6fa0b31e3c4634f896e0d089 |
|
BLAKE2b-256 | 80bbab9fe2653008a72e686af8f1c34bb791e4d13185c75f8b6fc16c4ae70da0 |
File details
Details for the file udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp313-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 253.4 kB
- Tags: CPython 3.13+, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b14e1d24fdc4c3c35278b04400ce824b5259036c033ddaed5493f95248778933 |
|
MD5 | 24ed6459663071ac643a7a65f9e7e0da |
|
BLAKE2b-256 | 312b5475494b61c236517d8137f3a280e3a7849fa5807952efd3a108d169ce43 |
File details
Details for the file udmp_parser-0.6.0-cp313-abi3-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp313-abi3-macosx_10_15_x86_64.whl
- Upload date:
- Size: 85.4 kB
- Tags: CPython 3.13+, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38794c00be1df77a273445ac6fc5dc4aee1b5222fd71d6a94bb0bb5da9d582a0 |
|
MD5 | 69ac41d73ccb2bcf731c0095c0cbc890 |
|
BLAKE2b-256 | 6ef9fbd1aeccc8cf93a0ac530fb6c45b55236b45622517aacf61a47caaa8f335 |
File details
Details for the file udmp_parser-0.6.0-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 103.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b6fed58829525a87bfb526aee40c922cd67645f2d38f896ac2032fafe47f7b6 |
|
MD5 | 19e7ccb5155bc4b2b6d18e12abba1949 |
|
BLAKE2b-256 | 96944f14d50ab2ddbbb8db1a7c3e9bc521eb3a231e2039aa313cc0211408773d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 285f8c59e8b52dd471fd5778bca404282352c88b065d0fb938d1e73161c71eeb |
|
MD5 | b5628a56445bbda1cbdc8855d379757d |
|
BLAKE2b-256 | b530eefb410981f4255c0746d90cd62cd5fe8b844c888f69abceecb8cf838479 |
File details
Details for the file udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 235.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbccde10889f1afdbbc1ad5ca4db762535736c13fae1b00a2515dab9782d0e41 |
|
MD5 | 6c28a413694334703b3304ff64634be6 |
|
BLAKE2b-256 | 64219d41ae61a19d080b9644f6d109c4745d484d35f733713d6121d0e98b46a7 |
File details
Details for the file udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 253.4 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede65641b9eac337e00d8f54c8c1fcddd905bfb51a2e3d7f709da6c45c85c2e7 |
|
MD5 | f226d107d2edd8c4bdbabf1593e6a47f |
|
BLAKE2b-256 | 4bd1afd8fcc5d5d97db323c4660e83eb912e6cb86fb36185dc86220aae2b9ec1 |
File details
Details for the file udmp_parser-0.6.0-cp312-cp312-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp312-cp312-macosx_10_15_x86_64.whl
- Upload date:
- Size: 85.4 kB
- Tags: CPython 3.12, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 271ae45325b911c72742ae28356ce29b4a223b1457eaef97332188e8881f1b3a |
|
MD5 | 4ed2a88fdda776ddd00105bebb095755 |
|
BLAKE2b-256 | a20f578df0132dc7adef77d8cc10af7cbda0c7773853ff04d53c6bb7834e38a3 |
File details
Details for the file udmp_parser-0.6.0-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 103.2 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1b2ba514efb9b3a4eb11a954e275ac9d6b04a6a0b40a7a262d848ea60e6abcc |
|
MD5 | ec9da1b21562117dc533a016fb72ee96 |
|
BLAKE2b-256 | d94c02180f328df613526328d9e27cffe6cdcdadd3c942d9f1cf71835d03b84f |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64ee53faf086df45569db07ae79644f944c072176e6814a8406465493fd2f345 |
|
MD5 | 85387e402fb8e2fc7a5db6ffccbe5f76 |
|
BLAKE2b-256 | 74fd5bf7ed7f69074df10995a59199f6976a9d0ca79288ddec45402878e67820 |
File details
Details for the file udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 236.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da49387698ed9725a7f3b23daf1dda6b09162564ef562d2929516ee37e24ed59 |
|
MD5 | 3691b69ad9c3a6977d1abe13299c0dc4 |
|
BLAKE2b-256 | d90234a278e2f9c3fa4336ec70282f835a5c0571c90d2dbb4ba86a0023b4827d |
File details
Details for the file udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 254.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1901ab51d692d81fb1921072582fdbf63d92bfd7f068cad424de7fbc31d11e30 |
|
MD5 | faad5e636fecea327503fc0205c9a452 |
|
BLAKE2b-256 | 5fc36b13a1ef3f47f88f3997871db46d7b57a657bcdbbe7630c91ad222c7d6f9 |
File details
Details for the file udmp_parser-0.6.0-cp311-cp311-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp311-cp311-macosx_10_15_x86_64.whl
- Upload date:
- Size: 85.7 kB
- Tags: CPython 3.11, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00bf1b2de73a538abc69241a1d3f2c6c0419a69b9ba04b9c274e4d5ab244e3ac |
|
MD5 | b356480352ab8fb7fa0ea4caf16076f8 |
|
BLAKE2b-256 | d61c3b25ed3fe508912ea47bc6b524f85a004f038f11daae0a78a47ac21775ec |
File details
Details for the file udmp_parser-0.6.0-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 102.9 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57eb748cb0b1b12a9e55779226895ac99d55ad12a310e897729088b1b846cdb9 |
|
MD5 | 61645c46327aa25692c232169b4f746a |
|
BLAKE2b-256 | eda2e1c2faecbe3ff8ecb10a60d55d37676ddd03cb92e58c6cfcd76e269a3539 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ca40bd9c230caa6bc4687d12453cb23ad110d4b123c5d9d3bdcb28a53e08f9f |
|
MD5 | 9303d838d4b60f742d44cddc32bc8fe3 |
|
BLAKE2b-256 | 1793508ed76856c688d813b401a5b5ab83b81acc3fe665df0d5d19fe7381c9f9 |
File details
Details for the file udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 235.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3343cd86386a3da609b838558113e1e7858e202fe1ca2695c7f905f33381f80c |
|
MD5 | 6e2640b930db5d6fe6d0166628f0aed1 |
|
BLAKE2b-256 | 7f20e216a9ed600c3d44da6c23e51353b0c166519c46b9fe54458d5ec2489b59 |
File details
Details for the file udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 253.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d7fea7cd88f56b9ddb3594d811d76bce516a9366f9a4fc5eb07e7001f80932c |
|
MD5 | aa3cd664145df67756f71b8bf297cc1f |
|
BLAKE2b-256 | aea227a8b70872db0628cf5d61be2c5a21f42ffc2ce29fdabeeefe8da8228b35 |
File details
Details for the file udmp_parser-0.6.0-cp310-cp310-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp310-cp310-macosx_10_15_x86_64.whl
- Upload date:
- Size: 85.3 kB
- Tags: CPython 3.10, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91a66c7d173a1cf584c16f330b87bd6c656dada62508f862175f674c9b8f1a93 |
|
MD5 | 62b940f0fd5fc4e12af04143991a40ba |
|
BLAKE2b-256 | 60e5ff4c08e5f5cd1d05866bdeeea9440b845b8f1ea965b2daef0b5b174944a1 |
File details
Details for the file udmp_parser-0.6.0-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 103.4 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38086093c4751c64951875438d37baa6e3e8ceea1203ada95cd8d6aa64b102ce |
|
MD5 | a4ee400f3d670cb2a247933de7948e9b |
|
BLAKE2b-256 | 7b7eab422fd69cf95839a8eab3ab504481db956170062c0595204d62ccd77af4 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc75c2b862e38f88de66f1a5da1501b08d4602ab3e8305f9600ad9c000a2c5b7 |
|
MD5 | d04ebfbb92bde53e6339a5715b3afbed |
|
BLAKE2b-256 | 1e2579b1aa71674093ded3de8fbf38160d276be75746bf05fa66b420ef93e0a1 |
File details
Details for the file udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 235.8 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62f11d0d4d2aeaba341b93446b0220308586e950516ac3a925948af2295f3032 |
|
MD5 | d246d00dcb8ca5142cf29918aca1c956 |
|
BLAKE2b-256 | 0c8d33989b8bf3c480f4c678f32438e0914cddfdce4b66a592af0b3dfd28680f |
File details
Details for the file udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 253.8 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef4a8fd37500f4a5e0b0bcf4a1887f84f331ca3e5b69d275172635600d6b88a1 |
|
MD5 | 605c95ecf89e011acac1d17cbafebd6f |
|
BLAKE2b-256 | 981358bd689629b5a384bf785e7c4a447c88ac0f55afa22f6a794292c3697e28 |
File details
Details for the file udmp_parser-0.6.0-cp39-cp39-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp39-cp39-macosx_10_15_x86_64.whl
- Upload date:
- Size: 85.6 kB
- Tags: CPython 3.9, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e930f961459a47f21a358914d28c1401c76e9085819d1a22114ceef7dc3b34f |
|
MD5 | 5b63d249307880a5d5f33736594c94fe |
|
BLAKE2b-256 | e1aaaa9d2e75d0f0fc65f5a4cd1ef0645fc7b0964832ae2a290201398acba345 |
File details
Details for the file udmp_parser-0.6.0-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 103.0 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4222fba9bc966b7f86b2db1b527e86d92b87714d81b02f8a840a4aa381c0ee1d |
|
MD5 | dd659d8e301ea67c985c53b4e347ec13 |
|
BLAKE2b-256 | 2dfb79b905bdd82c0d89196533d2e0ac5924a6b13c5cc9bb46c670a61273c755 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93ba0d7743feff2f6d4e7ef186cc59180694af16e87b99c31d4b19205a9ae66e |
|
MD5 | 49950422a794b8be03df83c7e89086c1 |
|
BLAKE2b-256 | 75656d46835f311f1aa9920dc98c7554448970bfa042c28ff51eb4ab160b0d33 |
File details
Details for the file udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 234.9 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c112ddd7f5a22ae42a491c88f6c95b647406247cdac715408f0a810492e68ef2 |
|
MD5 | 78df70fdf2f0ae3ad69bd6337d38f7cd |
|
BLAKE2b-256 | 331021276c86b6fbabfbc7d513f71b966712f14b9a964f25892d710cab385cd8 |
File details
Details for the file udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 252.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb46015d5a28c50adf1b027efea3c0c65a4bd0e8a567f31dff47a7b3006519a7 |
|
MD5 | 133def1cc85562f0d6a611fb101b2705 |
|
BLAKE2b-256 | 0da317e411e1d8e1bb760dc2864df6eb7207da4060adcb972dafecc930e00bd7 |
File details
Details for the file udmp_parser-0.6.0-cp38-cp38-macosx_10_15_x86_64.whl
.
File metadata
- Download URL: udmp_parser-0.6.0-cp38-cp38-macosx_10_15_x86_64.whl
- Upload date:
- Size: 84.5 kB
- Tags: CPython 3.8, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2891c216fdd079bc85025506e4ce64bb6fb1d9eb008e90be69608a4b1430261a |
|
MD5 | 3a0dffc1da0479e7ec20888ac0d34362 |
|
BLAKE2b-256 | 5cc26572b2096872a6410049f7ecfe27c4b5c1ab78e06cb007a2114e8d07e6b1 |