Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/allsmog/pwn-claude-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/allsmog/pwn-claude-plugin/pwn-static)<a href="https://agentmods.dev/commands/allsmog/pwn-claude-plugin/pwn-static"><img src="https://agentmods.dev/badge/commands/allsmog/pwn-claude-plugin/pwn-static/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/allsmog/pwn-claude-plugin/pwn-static"><img src="https://agentmods.dev/badge/commands/allsmog/pwn-claude-plugin/pwn-static.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00017 | $0.00782 |
| Opus 5 | $0.00009 | $0.00391 |
| Sonnet 5 | $0.00003 | $0.00156 |
| Haiku 4.5 | $0.00002 | $0.00078 |
Grade A, and why
pwn-static scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PWN Static - Static Analysis
Perform static analysis on a binary to identify vulnerabilities through disassembly.
Execution Steps
Step 1: Disassemble Main Function
objdump -d -M intel <binary> | grep -A 50 '<main>:'
Step 2: Identify and Disassemble Vulnerable Functions
First find interesting functions:
nm <binary> 2>/dev/null | grep -iE '(vuln|read_input|get_input|buffer)'
Then disassemble each:
objdump -d -M intel <binary> | grep -A 30 '<vuln>:'
Step 3: Find Dangerous Function Calls
objdump -d <binary> | grep -E 'call.*<(gets|strcpy|sprintf|strcat|scanf|printf|read)@plt>'
Step 4: Calculate Buffer Sizes
From disassembly, identify:
- Stack allocation:
sub rsp, 0xXXorsub esp, 0xXX - Buffer location:
lea rax, [rbp-0xXX]orlea eax, [ebp-0xXX]
Calculate offset to return address:
- x86_64: buffer_offset + 8 (saved RBP) = offset to RIP
- x86: buffer_offset + 4 (saved EBP) = offset to EIP
Step 5: Find Win Functions or Useful Gadgets
# Win functions
nm <binary> 2>/dev/null | grep -iE '(win|flag|shell|system)'
# Check if system@plt exists
objdump -d <binary> | grep '<system@plt>'
# Basic gadget search
objdump -d <binary> | grep -E '(ret$|pop.*ret)'
Output Format
## Static Analysis
### Findings
- Vulnerability: Buffer overflow in vuln() via gets()
- Buffer: 64 bytes at [rbp-0x40]
- Offset to RIP: 72 bytes (64 + 8)
- Win function: 0x401234
- Dangerous calls:
- gets@plt at 0x401186
- printf@plt at 0x401190 (check if format string)
### Disassembly Highlights
```asm
0000000000401156 <vuln>:
401156: push rbp
401157: mov rbp,rsp
40115a: sub rsp,0x40 ; 64 bytes
40115e: lea rax,[rbp-0x40] ; buffer start
401162: mov rdi,rax
401165: call 401030 <gets@plt> ; VULNERABLE
40116a: nop
40116b: leave
40116c: ret
Implications
- Direct ret2win: Overflow buffer (72 bytes) + win address
- Stack alignment may be needed (add ret gadget before win)
- No format string (printf has format specifier)
Next Steps
- Verify offset with cyclic pattern in GDB
- Check win() function requirements (arguments?)
- Craft payload: b'A'*72 + p64(0x401234)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 101 lines · 17 tokens per session scan A af613f73240c
pwn-static is a command published in the GitHub repository allsmog/pwn-claude-plugin (2 stars, last pushed 6mo ago), licensed MIT. It adds 17 tokens to every session and 782 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
linkerd
Linkerd-specific diagnostics — mTLS verification, proxy injection issues, authorization policy debugging, traffic management, and multi-cluster connectivity problems.
debug
Systematic debugging with hypotheses and evidence gathering.
ia-report-bug
Report a bug in the whetstone plugin.
data-flow-analysis
Trace how data flows through the system from input to output.
duck-off
Turn off Rubber Duck mode and answer normally.
bug
Reproduce then TDD-fix a ready-for-agent bug ticket in this checkout. Web bugs get a browser repro first.