Skip to content

Read and write Windows process memory. A fork of memoryjs.

License

Notifications You must be signed in to change notification settings

JoShMiQueL/memoryprocess

Repository files navigation

Banner
MemoryProcess is an NPM package to read and write process memory
This is a fork of the original memoryjs package, maintained by JoShMiQueL

GitHub License GitHub Actions Workflow Status NPM Downloads NPM Version


⚙️ Bundling with Bun

If you want to bundle your .ts code to .js using Bun, add memoryprocess to the --external option when running bun build. For example:

bun build src/index.ts --external memoryprocess

📖 API References (src)

Main Functions

  • openProcess(processIdentifier: string | number, callback?): Process
    Opens a process by name or ID. Returns the process handle or undefined if not found.

  • closeHandle(handle: number): boolean
    Closes a process handle.

  • getProcesses(callback?): Process[]
    Returns the list of running processes.

  • findModule(moduleName: string, processId: number, callback?): Module | undefined
    Finds a module by name in a process.

  • getModules(processId: number, callback?): Module[]
    Returns the modules loaded by a process.

  • readMemory(handle: number, address: number, dataType: T, callback?): MemoryData | undefined
    Reads a value from a process's memory.

  • writeMemory(handle: number, address: number, value: any, dataType: DataType): boolean
    Writes a value to a process's memory.

  • findPattern(...)
    Scans memory patterns (multiple overloads).

  • callFunction(handle: number, args: any[], returnType: number, address: number, callback?): any
    Calls a function in the process's memory.

  • Debugger
    Utility class for process debugging. Main methods: attach, detach, setHardwareBreakpoint, removeHardwareBreakpoint, monitor.

  • virtualAllocEx, virtualProtectEx, getRegions, virtualQueryEx, injectDll, unloadDll, openFileMapping, mapViewOfFile
    Advanced memory and DLL manipulation functions.

Main Types and Constants (types.ts)

  • type DataType
    Supported data types for memory read/write: 'byte', 'int32', 'float', 'string', 'vector3', etc.

  • type MemoryData
    Maps a DataType to its corresponding JS type (number, bigint, string, {x,y,z}...)

  • interface Process
    Information about an opened process (PID, handle, etc).

  • interface Module
    Information about a module loaded in a process.

  • type Protection, PageProtection, AllocationType, BreakpointTriggerType
    Auxiliary types for memory flags and protection.

  • const FunctionTypes, SignatureTypes, MemoryAccessFlags, MemoryPageFlags, HardwareDebugRegisters, BreakpointTriggerTypes
    Constants for flags and function types.


See the src folder for full details and comments on each function/type.