safety
Skill0 starsChanged 48 days agoMITView on GitHub
The rules for any game reverse-engineering, memory-editing or game-hacking work with Pointer Lab, pe-mcp, Signature Lab, sigscan or procpcap. Use before attaching to a process, scanning memory, patching, injecting or capturing traffic, when the user names a game or program to work on, when a Pointer Lab write tool is blocked, or when the user asks about GRC_ALLOW_WRITES, anti-cheat, online games or whether a target is allowed.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- grechj/Australian-Builders-Braintheir own version, first seen Oct 17, 2026
- langchain-ai/deepagentstheir own version, first seen Oct 13, 2026
- danmaps/gis-agent-skillstheir own version, first seen Oct 11, 2026
- davidhozic/mujoco-rstheir own version, first seen Oct 9, 2026
- hifly81/bikescouttheir own version, first seen May 7, 2026
- ffsshhttiikk/opencode-agents-skillstheir own version, first seen Feb 28, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- langchain-ai/deepagents★ 31ksame name
- davidhozic/mujoco-rs★ 85same name
- danmaps/gis-agent-skills★ 30same name
- hifly81/bikescout★ 20same name
- ZackKorman/skills★ 19same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
- grechj/Australian-Builders-Brain★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository7 other files it gives its agents.
- find-a-valueSkill
- find-what-writesSkill
- make-a-signatureSkill
- netcode-first-lookSkill
- static-reconSkill
- walk-a-pointer-chainSkill
- write-a-trainerSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
When the target is not clear from the process name, ask what it is before calling attach.
- Very specific: line 66
Never blocked: every read and scan, pointer scans, access_watch_*, hardware breakpoints (kind execute, write or readwrite), aa_check, and …
- Distinctive: line 72
When a call is blocked:
- Very specific: line 74
Do not retry it, and do not look for another route to the same change.
- Very specific: line 78
Never set GRC_ALLOW_WRITES yourself.
- Very specific: line 96
Check an auto-assembler script with aa_check before aa_set_enabled.
- Distinctive: line 103
When the work is done, offer to put the target back and let go of it:
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Safety: what to work on, and what changes a process
Game reverse engineering is taught in The Game Hacker's Handbook against
targets the reader owns. These rules keep the work there. They apply to every
other skill and command in this plugin. Handbook: Ch. 43 Ethics, Legality, and
Community. Tutorial: every lesson of PointerLabTutorial.exe is a safe target.
1. Check the target before anything else
Allowed targets:
- The Pointer Lab tutorial,
PointerLabTutorial.exeorPointerLabTutorial32.exe. - Programs the user wrote, or builds they made themselves.
- Single-player games the user owns, played offline.
- Open-source games, and servers the user runs on their own machine.
- CTF binaries and the Handbook's lab targets.
Refuse, and say why, when the target is:
- An online, multiplayer or competitive game, or any game while it is connected to servers the user does not run.
- Anything protected by anti-cheat. Do not explain how to hide from, disable or get past an anti-cheat, even "just to look".
- Software the user does not own or is not authorized to analyze, or another person's machine, account or traffic.
When the target is not clear from the process name, ask what it is before
calling attach. When the answer is an online game, stop and suggest the
tutorial lesson that teaches the same technique. Reading the memory of an
online game will very likely trip anti-cheat and get the account banned, and
modifying software without permission may be illegal where the user lives.
2. Know what Pointer Lab's MCP server does without asking
Pointer Lab asks before it allocates, injects, patches or detaches, except through its MCP server. Pressing Start server is the only confirmation. While it runs, anything holding the token can read and write the target's memory, patch its code, allocate, load a DLL and start threads, with no further prompt. Nothing is undone when the client disconnects: patches stay applied, allocations stay allocated, loaded DLLs stay loaded, frozen values stay frozen.
This plugin adds one guard on top: a PreToolUse hook.
3. The write guard and GRC_ALLOW_WRITES
The hook blocks these Pointer Lab tools unless GRC_ALLOW_WRITES is 1 in the
environment Claude Code was started from:
| Tool | Why it is blocked |
write, write_bytes, update_value | Writes the target's memory |
set_frozen with frozen: true | Writes the value twenty times a second |
patch_apply, patch_set_enabled with enabled: true | Patches code |
alloc, free | Allocates or frees memory in the target |
create_thread, load_library | Runs code or loads a DLL in the target |
aa_set_enabled with enabled: true | Runs an auto-assembler script |
speed_load, speed_set_scale | Injects the speed DLL and changes the clock |
breakpoint_add with kind software or no kind | Writes an int3 into code |
project_load | Frozen entries in the table start writing as it opens |
Never blocked: every read and scan, pointer scans, access_watch_*, hardware
breakpoints (kind execute, write or readwrite), aa_check, and undo:
patch_restore_all, patch_remove, set_frozen with frozen: false,
patch_set_enabled and aa_set_enabled with enabled: false,
aa_disable_all, speed_reset, breakpoint_remove.
When a call is blocked:
- Do not retry it, and do not look for another route to the same change.
That means no
curlto Pointer Lab's port, no reading the token out of Claude Code's config, no Lua, and no C++ or PowerShell that callsWriteProcessMemoryrun through Bash. - Never set
GRC_ALLOW_WRITESyourself. A variable set inside a Bash call does not reach the hook anyway. Opting in is the user's decision. - Tell the user what was blocked and quote the opt-in steps the hook printed:
close Claude Code, then start it again with the variable set, for example
$env:GRC_ALLOW_WRITES = "1"; claudein PowerShell. - Offer the manual route: the same change can be made by hand in Pointer Lab's window (Address List, Patches panel, Scripts panel).
4. After the user opts in
The hook stops blocking, and Claude Code's own permission prompt still asks for each call. Before every change:
- Say exactly what will change: the address, the old and new bytes or value,
and which instruction a patch replaces (
disassembleit first). - Say how to undo it. Patches:
patch_restore_all. Freezes:set_frozenwithfrozen: false. Scripts:aa_disable_all. There is no undo foralloc,load_libraryorcreate_thread; they last until the target exits. - Check an auto-assembler script with
aa_checkbeforeaa_set_enabled. It resolves every symbol and computes the layout without writing anything. - Pad patches to whole instructions (
patch_applydoes by default; leavepadtrue). A patch shorter than the code it replaces crashes the target.
5. Clean up at the end
When the work is done, offer to put the target back and let go of it:
patches_list {}
patch_restore_all {}
aa_disable_all {}
access_watch_stop {}
debugger_detach {}
detach {}patch_restore_all and aa_disable_all only matter if something was changed.
Then remind the user to press Stop server in Pointer Lab's MCP panel.
Detaching does not stop it, and neither does closing the target.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

