Skip to content

v3.3.3

Choose a tag to compare

@JeanExtreme002 JeanExtreme002 released this 12 Oct 21:07
a051ea3

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_paths validates at the call. A bad ptr_size, max_depth below 1, max_results below 1 or a negative max_offset raise ValueError when you call it, and a closed process raises ClosedProcess, instead of on the first next(). 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 ClosedProcess on the next item instead of going on with a released handle, as the search_* generators already did (#117)
  • A compiled str regex is refused up front. search_by_pattern / compile_pattern raise TypeError for re.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: IsProcess64Bit falls back to the host bitness when IsWow64Process fails, as its warning says, instead of always answering 64-bit. OpenProcess(...).is_64bit already 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