Picklock

A Picklock session: attaching to a process, scanning for a value, and writing to it

Read, write and scan the memory of a running process from any terminal.
Pure Python. It installs on a bare server as easily as on a desktop.

Python Package Pypi License Python Version


Picklock is a terminal client for PyMemoryEditor to read, write and scan the memory of a running process from any shell, on Windows, Linux and macOS.

pip install picklock
picklock

Start with the Quick start for the five-minute version, then the User guide for the workflows. Every command’s arguments are in the Command reference, which is generated from the code and so cannot drift from what help prints at the prompt.

Enjoying Picklock?

If it saved you an afternoon, please ⭐ star it on GitHub — it is the easiest way to support the work and to help other people find it.

What you get

A prompt, quick and simple

Easy commands for quick actions. Type help to see all the features. A hex viewer, history and aliases are all there.

The whole scan cycle

Use the scan commands to search memory for a value or pattern, then narrow what you found. Every comparison is exposed as a flag. Look at where you are with scan:results.

Addresses as expressions

[[game.exe+0x1a2b3c]+0x10]+0x8 is one argument. So is #3, meaning row 3 of the last scan, instead of passing a full memory address.

Pointer chains that survive a restart

pointer:scan finds the static paths reaching an address; pointer:save, pointer:rescan and pointer:diff are the workflow that tells a real path from a coincidence.

Scriptable

The same vocabulary runs non-interactively: picklock -p 4242 -e "...", a file of Picklock commands, or a pipe.

One dependency

PyMemoryEditor, and the standard library. It installs easily anywhere.