PyMemoryEditor 3.4.1__py3-none-any.whl → 3.4.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PyMemoryEditor/__init__.py +1 -1
- PyMemoryEditor/mcp/toolset.py +15 -2
- {pymemoryeditor-3.4.1.dist-info → pymemoryeditor-3.4.2.dist-info}/METADATA +1 -1
- {pymemoryeditor-3.4.1.dist-info → pymemoryeditor-3.4.2.dist-info}/RECORD +7 -7
- {pymemoryeditor-3.4.1.dist-info → pymemoryeditor-3.4.2.dist-info}/WHEEL +0 -0
- {pymemoryeditor-3.4.1.dist-info → pymemoryeditor-3.4.2.dist-info}/entry_points.txt +0 -0
- {pymemoryeditor-3.4.1.dist-info → pymemoryeditor-3.4.2.dist-info}/licenses/LICENSE +0 -0
PyMemoryEditor/__init__.py
CHANGED
PyMemoryEditor/mcp/toolset.py
CHANGED
|
@@ -1946,9 +1946,13 @@ class MemoryToolset:
|
|
|
1946
1946
|
# per region, so one whole multi-gigabyte heap would be
|
|
1947
1947
|
# mapped however far past the budget that ran. Aligned
|
|
1948
1948
|
# seams cut no pointer slot, and the map merges adjacent
|
|
1949
|
-
# ranges back, so the result is unchanged.
|
|
1949
|
+
# ranges back, so the result is unchanged. Unreadable
|
|
1950
|
+
# regions are left out before cutting: the map skips them
|
|
1951
|
+
# anyway, and on Windows they are most of the address
|
|
1952
|
+
# space -- millions of pieces for nothing (#127).
|
|
1950
1953
|
memory_regions=split_regions(
|
|
1951
|
-
regions
|
|
1954
|
+
[region for region in regions if region.is_readable],
|
|
1955
|
+
self.config.scan_batch_bytes,
|
|
1952
1956
|
),
|
|
1953
1957
|
progress_callback=progress,
|
|
1954
1958
|
should_stop=should_stop,
|
|
@@ -2247,6 +2251,15 @@ class MemoryToolset:
|
|
|
2247
2251
|
truncated = False
|
|
2248
2252
|
timed_out = False
|
|
2249
2253
|
|
|
2254
|
+
# Only readable memory can hold a match, and the library drops the
|
|
2255
|
+
# rest itself -- but only once a batch reaches it, after the cutting
|
|
2256
|
+
# and batching here have been paid for. On Windows the snapshot spans
|
|
2257
|
+
# the whole address space, MEM_FREE and MEM_RESERVE included (~128 TiB
|
|
2258
|
+
# on a 64-bit target): cut into 64 MiB pieces, that was ~2 million
|
|
2259
|
+
# batches, and the scan spent its whole budget on them before it
|
|
2260
|
+
# reached the heap (#127).
|
|
2261
|
+
regions = [region for region in regions if region.is_readable]
|
|
2262
|
+
|
|
2250
2263
|
if split_overlap is not None:
|
|
2251
2264
|
regions = split_regions(
|
|
2252
2265
|
regions, self.config.scan_batch_bytes, overlap=split_overlap
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: PyMemoryEditor
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.2
|
|
4
4
|
Summary: Read, write and scan process memory in a few lines of Python — Cheat Engine-style scans, pointer chains and AOB search on Windows, Linux and macOS.
|
|
5
5
|
Project-URL: Homepage, https://github.com/JeanExtreme002/PyMemoryEditor
|
|
6
6
|
Project-URL: Documentation, https://pymemoryeditor.readthedocs.io
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
PyMemoryEditor/__init__.py,sha256=
|
|
1
|
+
PyMemoryEditor/__init__.py,sha256=1c8lK8lbGxqpOECcbbgtr99xFf6m-_-doiQi0CROKUg,3234
|
|
2
2
|
PyMemoryEditor/__main__.py,sha256=xukvvLjQ0BnYnnxMZda1cvyZ-BurSUk8dAGQybIqMD4,95
|
|
3
3
|
PyMemoryEditor/enums.py,sha256=q_SWQYgh4F7yyAa7sZvNo2Sw91TSm3aTqPfTA7OqldM,322
|
|
4
4
|
PyMemoryEditor/app/__init__.py,sha256=DGCYWpqGKPSeBa7cvzL7GmmhIfDDgF6vtim0VtLcfOo,357
|
|
@@ -40,7 +40,7 @@ PyMemoryEditor/mcp/policy.py,sha256=cfG1A-IR1kTe_neLZFtd-JAqkZ_vcE4QYrPgNUv3yb0,
|
|
|
40
40
|
PyMemoryEditor/mcp/procinfo.py,sha256=ufT07yoffyfA7KiBrdaQm7Hkf1WbpGveZMwcSmR8NQQ,10136
|
|
41
41
|
PyMemoryEditor/mcp/server.py,sha256=YBJDMM2pXaavG_o-CnO8yL6aFecdsNfv6wEIqqard-o,33564
|
|
42
42
|
PyMemoryEditor/mcp/session.py,sha256=0gy629j8lJrq4VxqUTMbxJ-D-D1IJo47T-UwtAIEzZE,31645
|
|
43
|
-
PyMemoryEditor/mcp/toolset.py,sha256=
|
|
43
|
+
PyMemoryEditor/mcp/toolset.py,sha256=uLivIP1CIhFhVaXh2v8yjXrkNFiVwZAA8YRXrpA5LIU,119450
|
|
44
44
|
PyMemoryEditor/process/__init__.py,sha256=Xh5jngBqZyNIA9y3uwE49LxK8uH8YYsu6qotx1mP_WE,213
|
|
45
45
|
PyMemoryEditor/process/_guard.py,sha256=91TKDEpFthFn99QNOioMD9hp2kzAOHA_qtkEgW9tJtI,1471
|
|
46
46
|
PyMemoryEditor/process/abstract.py,sha256=1cmPkKqZgb4RCZGlvEgYbL4D_RJUq6PXrB9v5YCGgoQ,75572
|
|
@@ -69,8 +69,8 @@ PyMemoryEditor/win32/enums/process_operations.py,sha256=wn-aMl01VVg-2rFavR9szBNR
|
|
|
69
69
|
PyMemoryEditor/win32/enums/standard_access_rights.py,sha256=VGWlTagW4hvbm2AjZ4NK56ZrQwRmEl9Kz9GSCG8o-HI,738
|
|
70
70
|
PyMemoryEditor/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
71
|
PyMemoryEditor/app/assets/icon.svg,sha256=T7OqR7ldqC_dK2Ib2ntsH2rWO-Z5RzNK4WdD1wFwgM4,7132
|
|
72
|
-
pymemoryeditor-3.4.
|
|
73
|
-
pymemoryeditor-3.4.
|
|
74
|
-
pymemoryeditor-3.4.
|
|
75
|
-
pymemoryeditor-3.4.
|
|
76
|
-
pymemoryeditor-3.4.
|
|
72
|
+
pymemoryeditor-3.4.2.dist-info/METADATA,sha256=Jq7RrtePHoFzLpPjMMhZYbP_MwoCk-VjzX57KLPRqm8,11372
|
|
73
|
+
pymemoryeditor-3.4.2.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
74
|
+
pymemoryeditor-3.4.2.dist-info/entry_points.txt,sha256=qxto0CWCXsjLmE0jClEgz1Xriljr6IV6d3AySjIlw7E,127
|
|
75
|
+
pymemoryeditor-3.4.2.dist-info/licenses/LICENSE,sha256=YkOx6Nvkavq36bgiAc3eF85SBG0Qu14KMAvxmv6Ssjc,1089
|
|
76
|
+
pymemoryeditor-3.4.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|