Glossary
A short reference of the terms used throughout this documentation.
- Address
A numeric position in a process’s virtual memory. PyMemoryEditor uses Python
ints for addresses and prints them as hex (0x14010F4F4).- ASLR
Address Space Layout Randomization — a kernel feature that loads modules (and randomizes some allocations) at different base addresses each run. It is the reason a scanned address is “gone” on the next launch, and the reason pointer scans exist.
- AOB
Array Of Bytes — a byte signature used to locate code or data by its shape. PyMemoryEditor accepts IDA-style strings (
"48 8B ? ? 00") as well as raw bytes regex patterns. See Pattern scan.- Base address
The address at which a module is loaded for the current run. Combine it with a static offset (
module.base_address + 0x10F4F4) to reach a known location despite ASLR.- Cheat table
A list of saved addresses (and the values to write to them). The bundled GUI app stores cheat tables as JSON.
- ctypes
The Python stdlib module used by PyMemoryEditor to call OS APIs without a native build step.
- Direct handle
A RemotePointer whose
offsetsisNone— its resolved address is just thebase_address, with no dereferencing. The result of wrapping a freshly-scanned address.- Memory region
A contiguous block of virtual memory in a process, with a single set of permissions (R/W/X/shared).
get_memory_regions()enumerates them.- Module
A file mapped into a process — the main executable plus every shared library it loaded. PyMemoryEditor surfaces them as
- py:
class:
ModuleInfo.
- Pointer chain
A static base plus a series of offsets:
module + offset → [+x] → [+y] → ... → +n. Walking the chain lands on a value’s current address — useful because the value typically lives at a different absolute address every run.- Pointer scan
The reverse of walking a chain: given a value’s current address, find the chains (recipes) that resolve to it. See Pointer scan.
- Process
An OS-level running program. PyMemoryEditor identifies a process by name or PID.
- PID
Process Identifier — the OS-assigned integer that uniquely names a running process at a point in time.
- ptrace_scope
The Linux kernel’s policy for which non-child processes can be attached to. See Platform Notes → Linux.
- Refine scan
An iterative scan: an initial scan returns many candidates, the value changes in the target, and the candidate list is narrowed to only those that still match. The classic Cheat Engine workflow.
- RemotePointer
A live, re-resolving handle to a typed value in another process. Reading
.valuewalks any associated chain again, so the handle keeps working as the target moves things around in memory.- Scan
To search the memory of a process for an address matching some criterion — a value, a range, or a byte pattern.
- SIP
System Integrity Protection — macOS’s kernel-level protection that prevents most processes from being inspected. Affects how PyMemoryEditor attaches to processes on macOS.
- Static base
An address that is fixed at a known offset from a module’s base — the kind of address a pointer chain can start from and still work after a restart.
- TID
Thread Identifier — the OS-assigned integer naming a thread. The meaning varies per OS (see
ThreadInfo).