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-frida-script-authorgit 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-frida-script-author)<a href="https://agentmods.dev/skills/dslsdzc/rev-skills/re-frida-script-author"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-frida-script-author/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-frida-script-author"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-frida-script-author.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.00075 | $0.02338 |
| Opus 5 | $0.00037 | $0.01169 |
| Sonnet 5 | $0.00015 | $0.00468 |
| Haiku 4.5 | $0.00007 | $0.00234 |
Grade A, and why
re-frida-script-author 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 9d 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 — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Frida 脚本生成
何时使用 / 何时不用
- 用:需要新脚本时——拦截(加密/网络/文件)、绕过(检测/固定)、追踪(JNI/方法调用)
- 用:现成模板没有的变体——按 [[frida-scripts]] 模板改写出目标专用脚本
- 不用:执行现成脚本 → 转 [[re-frida]](本技能只产出脚本,运行与进程管理在 re-frida)
- 不用:反检测对抗面整体分析 → [[anti-dynamic-workflow]]
- 不用:纯静态可解的问题——先走 [[re-apk]] / [[re-ghidra]] 静态路径,动态是最后手段
- 不用:目标不可达(无设备/无 root/无越狱、加固拦注入)——先解决环境([[re-frida]] 工具准备),不硬写脚本
工具准备
frida-tools(脚本编写与运行验证)
- Linux:
pip install frida-tools(或apt install frida-tools/pacman -S frida) - macOS:
pip install frida-tools/brew install frida - Windows:
pip install frida-tools/choco install frida - 验证:
frida --version、frida-ps -U(连设备后) - 注意:
frida(运行时)与frida-tools(CLI)版本需配套;跨大版本升级(16 → 17)有 API 移除,写法差异见 [[gotchas]] 版本组
python3(配合脚本调试)
- 各平台同 [[re-python]] 工具准备
反编译辅助(侦察用)
- jadx([[re-apk]])静态出类/方法清单;Ghidra/IDA([[re-ghidra]] / [[re-ida]])native 侧符号与调用点定位
- 验证: 能按包名列出目标类与方法签名
目标设备/模拟器
- Android 真机/模拟器 + frida-server(版本与主机 frida 一致,安装见 [[re-frida]] 工具准备);桌面目标直接本机
- iOS 越狱环境 frida-server 见 [[re-ios-jb]]
操作步骤
按「探 → 选 → 改 → 验」四步,先探后写,不猜。每步产物(特征清单/脚本/验证输出)记录路径 + sha256(见 [[re-triage]]),供报告引用。
-
目标侦察:
- 静态:目标包名/类名/关键 API([[re-apk]] jadx 输出)、加固商特征([[re-mobile-pack]])、Flutter/RN 混合结构([[re-hybrid-app]])
- 动态基线:原样跑一次抓崩溃与日志(崩溃特征 → 保护机制对照,见 [[anti-dynamic-workflow]])
- 产出:目标特征清单——检测点/目标 API 全限定名/输入输出形态/方法 overload 数
- 不确定的类名/方法名先小脚本枚举(
Java.enumerateLoadedClasses/Java.use(...).overloads),不猜名字 - 侦察结论记入 [[analysis-contract]] 契约字段(包名/类名/API 清单),供脚本与报告复用
-
模板选择:按特征清单对照 [[frida-scripts]] 模板表:
| 目标特征 | 模板 |
|---|---|
| HTTPS 抓包被 TLS 加密(BoringSSL) | TLS 密钥日志(SSLKEYLOGFILE) |
| 证书固定挡抓包 | SSL 固定绕过(TrustManager/CertificatePinner) |
| 加密算法/密钥要提取 | 加密拦截(Cipher/SecretKeySpec 全 overload) |
| 加固/运行时解密 | DEX dump(类加载点)/ SO dump |
| 双向 TLS 客户端证书 | keystore p12 导出 |
| JNI 动态注册要还原 | RegisterNatives + 汇聚点双 hook |
| 反调试/检测拦截 | 检测绕过表(root/属性/文件/命令) |
- 特征不匹配任何模板 → 组合改写(多个模板拼装)而非从零写
- 选完模板先读模板内已知边界注释([[frida-scripts]]),避免重复踩坑
- 改写:
- 替换占位符:包名/类名/方法名(精确匹配,Java 全限定名)
- overload 精确匹配:先
overloads枚举再逐个定义或按参数类型选(见坑 1) - 结构规范:Java 操作包在
Java.perform;保存 original 引用、带原this调用;Interceptor.attach的 onEnter/onLeave 里this.context读寄存器、this.returnValue改返回值 - 输出统一 JSON(可打印 ASCII + hex 双格式)经
send()传出;每个 hook 主体try/catch,错误发消息不静默 - 同一类多 hook 合并进一个
.implementation(缓存静默覆盖,见坑 2) - 骨架参考(Java + native 双面最小结构,按目标裁剪):
Java.perform(function () { var Cls = Java.use("com.target.Cls"); Cls.method.overload("java.lang.String").implementation = function (s) { try { send({ type: "call", arg: s ? s.toString() : null }); } catch (e) { send({ type: "error", msg: String(e) }); } return this.method(s); // 调原实现(保留原 this) }; }); Interceptor.attach( Process.getModuleByName("libtarget.so").getExportByName("func"), { onEnter: function (args) { send({ type: "native", arg0: args[0].toInt32() }); } } ); - native 侧:导出符号优先(
Process.getModuleByName(...).getExportByName;旧写法Module.getExportByName见 [[gotchas]] 版本组);非导出函数用调用点 hook 或内存特征定位
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 9d ago First seen · 121 lines · 75 tokens per session scan A 289b2424ecde
re-frida-script-author is a skill published in the GitHub repository dslsdzc/rev-skills (50 stars, last pushed 11d ago), licensed Apache-2.0. It adds 75 tokens to every session and 2,338 once invoked, about $0.0004 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.