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.
npx skills add dslsdzc/rev-skills --skill re-crypto-keysgit clone --depth 1 https://github.com/dslsdzc/rev-skillsWrote 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/skills/dslsdzc/rev-skills/re-crypto-keys)<a href="https://agentmods.dev/skills/dslsdzc/rev-skills/re-crypto-keys"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-crypto-keys/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/skills/dslsdzc/rev-skills/re-crypto-keys"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-crypto-keys.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00041 | $0.03286 |
| Opus 5 | $0.00020 | $0.01643 |
| Sonnet 5 | $0.00008 | $0.00657 |
| Haiku 4.5 | $0.00004 | $0.00329 |
Grade A, and why
re-crypto-keys 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 11d 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 — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
密钥与口令提取
何时使用 / 何时不用
- 用:需要解密数据/流量但不知道密钥时(静态优先:硬编码 → 资源 → 导入表;动态:内存转储)
- 用:确认样本是否硬编码了密钥/口令(配置提取)
- 用:密钥是运行时派生的(PBKDF/HKDF)需要还原派生过程
- 不用:算法都还没确认(先 [[re-crypto-id]])
- 不用:密钥通过外部配置/服务器下发(没有本地密钥可提取——诚实告诉用户,见坑 2)
- 不用:只做静态格式分析([[re-triage]] / [[re-format-pe]])
工具准备
所有工具先验证再使用。静态搜索可免沙箱;内存转储/动态环节按 [[re-memdump]] 默认转储优先 + [[platform-tips]] 最高原则(运行样本进沙箱)。
strings —— 可打印串快速扫描(全平台)
- Linux:
apt install binutils/dnf install binutils/pacman -S binutils(多数自带) - macOS: 系统自带 /usr/bin/strings
- Windows/WSL: WSL 内 Linux 版;Windows 本机用 Ghidra 或
strings.exe(Sysinternals) - 验证:
strings --version(GNU 版有 --version)
ghidra / rizin —— 反编译与交叉引用搜索(安装见 [[re-ghidra]] / [[re-radare2]])
- 搜索常量/字符串的交叉引用是找"谁用了这个密钥"的关键
- 验证:
ghidra(GUI)或rz-ghidra插件可用;rizin -v
转储产物 —— 内存搜索原料([[re-memdump]] 默认转储)
- 按 [[re-memdump]] 步骤 1 用
gcore -o out <pid>转储;脱壳样本等到 OEP 后再 dump(见 [[platform-tips]] 关键经验) - 验证:
file out确认为 ELF core,eu-stack -e out能跑
python3 —— 熵块/模式扫描脚本
- 安装与验证见 [[re-proto-rev]] 工具准备(python3)
操作步骤
按顺序执行,每步记下结果。策略顺序:先静态后动态(见坑 3),每步产物(密钥/口令 + 来源证据:偏移、函数名、转储路径)记录供 [[re-crypto-decrypt]] 使用。
-
静态:strings / 交叉引用找硬编码:
strings -n 6 sample.bin | grep -iE 'key|secret|pass|token|crypt|iv' | head -50 strings -el sample.bin | grep -iE 'key|secret|pass' | head -20 # UTF-16LE(Windows 常见) strings -n 8 sample.bin | head -100 # 全量扫描人工过一遍- 可疑串(看起来像密钥的固定串)用反编译器查交叉引用:[[re-ghidra]] / [[re-ida]] 右键 Find References——看它被哪个函数读、怎么参与运算(直接进加密参数 → 是密钥;参与查表/比较 → 是口令或盐)
- 反编译器里搜常量(
Search > Memory/:> /v 0x...):32 字节十六进制串、重复的随机数据段 - 十六进制侧: 用 [[re-crypto-id]] 步骤 1 的脚本找 AES S-box 等常量表后,表附近的内存数据常是密钥材料
-
内存:转储后搜密钥模式(16/32 字节熵块、口令可打印串):
gcore -o out <pid> # 默认转储([[re-memdump]]),等 OEP 解密后data = open('out','rb').read() import collections, math # 16/32 字节高熵块(AES-128/256 密钥候选) def ent(blk): c = collections.Counter(blk); n = len(blk) return -sum((v/n)*math.log2(v/n) for v in c.values()) for base in range(0, len(data)-32, 32): blk = data[base:base+32] if ent(blk) > 7.0 and 16 <= len(set(blk)) <= 24: print(f"0x{base:x}: 32B 高熵块") # 口令/可打印串 import re for m in re.finditer(rb'[ -~]{8,64}', data): s = m.group() if any(k in s.lower() for k in (b'key', b'pass', b'secret', b'pwd')): print(f"0x{m.start():x}: {s}")- 高熵块命中太多(整个堆都是)→ 结合 [[re-memdump]] 的 maps/偏移缩小到加密上下文附近,或先用步骤 4 的导入表定位函数再取参数
- 密钥可能在堆/栈上碎片化或异或混淆(见坑 1)——找到后先在解密脚本里验证一次([[re-crypto-decrypt]] 步骤 4)
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.
- 11d ago First seen · 123 lines · 41 tokens per session scan A b174402fe42b
re-crypto-keys is a skill published in the GitHub repository dslsdzc/rev-skills (52 stars, last pushed 12d ago), licensed Apache-2.0. It adds 41 tokens to every session and 3,286 once invoked, about $0.0002 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-30.
Other skills, from other repositories
Reverse Engineering & Binary Analysis
Binary analysis, assembly interpretation, disassembly, decompilation, firmware RE, and protocol reverse engineering.
deobfuscating-powershell-obfuscated-malware
Systematically deobfuscates multi-layer PowerShell malware using AST analysis, dynamic tracing, and tools like PSDecode and PowerDecode to reveal hidden payloads and C2 infrastructure. Use during incident response or malware analysis when a PowerShell script is obfuscated with encoding, string manipulation, or…
conducting-malware-incident-response
Respond to malware infections across enterprise endpoints by identifying the malware family, determining infection vectors, assessing spread, and executing containment, analysis, eradication, and recovery procedures aligned to MITRE ATT&CK. Use when responding to a confirmed or suspected malware infection, including…
analyzing-golang-malware-with-ghidra
Reverse engineer Go-compiled malware in Ghidra by parsing Go buildinfo and pclntab structures, recovering stripped/obfuscated function names (e.g. via GoResolver), and extracting embedded module/dependency strings and types from Go binaries. Use when analyzing a Go-language malware sample, deobfuscating a…
analyzing-network-covert-channels-in-malware
Detect and analyze covert communication channels used by malware, including DNS tunneling, ICMP exfiltration, steganographic HTTP, and other protocol abuse used for C2 and data exfiltration. Use when investigating suspicious DNS/ICMP/HTTP traffic patterns, hunting for hidden C2 channels in network captures, or…
analyzing-golang-malware-with-ghidra
Reverse engineer Go-compiled malware using Ghidra with specialized scripts for function recovery, string extraction, and type reconstruction in stripped Go binaries.