PyMemoryEditor Logo
Star on GitHub
  • Why PyMemoryEditor?
    • What you get
    • Who it’s for
    • Why not just use ctypes directly?
    • See it in action
  • Installation
    • Requirements
    • Install the library
    • Install with the bundled GUI app
    • Install with scan acceleration (speed)
    • Install from source
    • Verifying the installation
    • Platform-specific notes
  • Quick Start
    • 1. Install
    • 2. Open a process
    • 3. Read and write a value
    • 4. Run your first scan
    • 5. The Cheat Engine workflow
    • 6. Pointer scanning — make an address survive restarts
    • Next steps
  • User Guide
    • What’s covered
      • Opening a process
      • Reading and writing memory
      • Searching memory
      • Pattern scan (AOB / regex)
      • Memory regions
      • Modules and threads
      • Pointers
      • Pointer scan (reverse)
      • Allocating and freeing memory
  • The PyMemoryEditor GUI App
    • Install
    • Launch
    • What’s inside
    • Typical workflow
    • Importing & exporting
    • When to use the app vs the library
  • API Reference
    • At a glance
      • OpenProcess (process API)
      • Enums
      • MemoryRegion
      • RemotePointer
      • PointerPath
      • ModuleInfo
      • ThreadInfo
      • Errors
      • Utilities
  • Platform Notes
    • 🪟 Windows
      • Process name matching
      • The permission keyword
      • Running as Administrator
      • Memory allocation
    • 🐧 Linux
      • The permission keyword
      • ptrace_scope
      • Memory allocation — not supported
    • 🍎 macOS
      • The permission keyword
      • Opening another process
      • Opening the current process
      • macOS write side effect
      • ModuleInfo.size quirk
      • Allocation under the hardened runtime
    • Summary
  • Troubleshooting
    • Permission errors
      • PermissionError when opening another process
      • PermissionError from a specific operation (Windows)
    • Process lookup errors
      • ProcessNotFoundError
      • AmbiguousProcessNameError
      • ProcessIDNotExistsError
    • Read / write failures
      • A scan returns nothing on Windows
      • Reading an address gives garbage or raises OSError
      • ValueError: bufflength is required
      • ResourceWarning on macOS writes
    • Pointer issues
      • resolve_pointer_chain returns garbage
      • path.rebase() raises ValueError
      • path.rebase() raises LookupError
    • Logging
    • Reporting a bug
  • Logging and diagnostics
    • Turning logging on
    • Log levels
    • Routing logs
    • The bundled GUI app
    • macOS write-side-effect warning
  • Glossary
  • How to Contribute
    • Development setup
    • Running the test suite
    • Linting
    • Type checking
    • Before you push
    • Project layout
      • Platform-specific test notes
    • Submitting changes
    • Reporting bugs
    • Security
  • License
PyMemoryEditor
  • Search


© Copyright 2026, Jean Loui Bernard Silva de Jesus.

Built with Sphinx using a theme provided by Read the Docs.