Repository navigation
v3.3.3
What's changed
A bug-fix release: the GUI app no longer risks crashing while a scan runs, and scan_pointer_paths now checks its arguments and the process when you call it, like every search_* method.
Fixed
- App: a crash while a background task runs. Python's garbage collector could run inside one of the app's worker threads (scans, pointer scans, cheat polling, the process list) and destroy Qt objects that belong to the GUI thread from there, crashing the app (a segfault on macOS, an access violation on Windows). The app now runs the collector on the GUI thread only, and restores its previous setting when
main()returns (#120) scan_pointer_pathsvalidates at the call. A badptr_size,max_depthbelow 1,max_resultsbelow 1 or a negativemax_offsetraiseValueErrorwhen you call it, and a closed process raisesClosedProcess, instead of on the firstnext(). The out-of-range limits used to build the whole pointer map and then silently yield nothing. The map is still built and walked lazily, as you iterate (#117)- A pointer scan stops once the process is closed. The returned generator raises
ClosedProcesson the next item instead of going on with a released handle, as thesearch_*generators already did (#117) - A compiled
strregex is refused up front.search_by_pattern/compile_patternraiseTypeErrorforre.compile("...")instead of failing mid-scan with "cannot use a string pattern on a bytes-like object"; pass a bytes regex (re.compile(rb"...")) (#117) - Windows:
IsProcess64Bitfalls back to the host bitness whenIsWow64Processfails, as its warning says, instead of always answering 64-bit.OpenProcess(...).is_64bitalready did (#117)
Subclasses of AbstractProcess written against the 3.3 contract keep working with scan_pointer_paths.
Internal
- The MCP server's test suite no longer fails when a CI runner process happens to own one of its made-up pids (#118)
Install
pip install --upgrade PyMemoryEditor📖 Full documentation: pymemoryeditor.readthedocs.io · MCP guide: pymemoryeditor.readthedocs.io/en/latest/mcp.html
Full Changelog: v3.3.2...v3.3.3