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-browser-extgit 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-browser-ext)<a href="https://agentmods.dev/skills/dslsdzc/rev-skills/re-browser-ext"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-browser-ext/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-browser-ext"><img src="https://agentmods.dev/badge/skills/dslsdzc/rev-skills/re-browser-ext.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.00059 | $0.02724 |
| Opus 5 | $0.00030 | $0.01362 |
| Sonnet 5 | $0.00012 | $0.00545 |
| Haiku 4.5 | $0.00006 | $0.00272 |
Grade A, and why
re-browser-ext 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 — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
浏览器扩展逆向
何时使用 / 何时不用
- 用:扩展文件(crx/xpi/zip)、恶意扩展行为分析、扩展权限审计
- 用:判断扩展是否过度授权、远程代码、更新投毒(首版干净后续版本恶意)
- 不用:网页 JS 混淆([[re-script-deob]] 覆盖纯脚本)
- 不用:Chrome/Edge 浏览器本身的漏洞利用(扩展与浏览器漏洞是两个对象)
- 注意:动态加载扩展跑恶意行为属执行未知代码——沙箱内进行([[re-sandbox]],[[platform-tips]] 最高原则)
工具准备
unzip / 7z / python zipfile(解包)
- 安装与验证见 [[re-doc-malware]] 工具准备(7z)
- crx = "Cr24" 头(版本号 + 头长度;crx2 含公钥与签名、crx3 含 protobuf 头与 proof)+ 尾部 zip 数据——
unzip/7z直接解包会报extra bytes at beginning警告但结果正确;python3 -m zipfile -e sample.crx ext/无警告 - xpi 就是纯 zip,直接解
jq(manifest 解析)
- Linux:
apt install jq;macOS:brew install jq;Windows: 官方构建 - 验证:
jq --version
node / js-beautify(脚本还原)
- Linux:
apt install nodejs;macOS:brew install node;Windows: nodejs.org 官方安装包;验证:node --version - js-beautify:
npm install -g js-beautify,验证js-beautify --version(压缩 JS 先格式化再读)
浏览器加载验证(动态,沙箱)
- Chromium 系:
chrome://extensions开发者模式 → Load unpacked;Edge 同(edge://extensions) - Firefox:
about:debugging#/runtime/this-firefox→ Load Temporary Add-on(免签名临时加载) - 验证: 扩展出现在扩展列表、后台脚本/页面能打开
操作步骤
按顺序执行,每步产物存档(路径 + sha256,见 [[re-triage]])。
-
解包与结构:
unzip -o sample.crx -d ext/ 2>/dev/null || python3 -m zipfile -e sample.crx ext/ jq '.manifest_version, .name, .version' ext/manifest.json jq '.permissions, .host_permissions' ext/manifest.json # host_permissions 为 MV3 字段;MV2 站点权限在 permissions 内(含 URL 匹配模式)- 结构:manifest.json + 背景脚本(MV3 service worker / MV2 background page)+ 内容脚本(content_scripts)+ 页面(options/popup)+ 资源(web_accessible_resources)
- 先确认
manifest_version(2 还是 3)——MV2/MV3 的权限模型与能力差异决定后续所有判断(见 [[gotchas]]) - 其他关键字段:
update_url(自托管更新清单,投毒面)、key(扩展 ID 派生)、externally_connectable(外部页面消息通道)、oauth2(令牌)、optional_permissions(运行时再要权)、minimum_chrome_version(兼容边界) - 次要结构:
_locales/(i18n 消息,可藏字符串)、icons/、options_page/options_ui、commands(快捷键,触发行为入口)、incognito(隐身窗口行为声明)
-
权限审计(能力边界):
- 高危 API 权限:
tabs(读标签页 URL/标题)、storage(数据收集缓存)、webRequest(流量观察;MV3 阻断能力仅企业策略部署例外,一般改走declarativeNetRequest)、scripting(MV3 动态注入)、clipboardRead(剪贴板)、cookies(读站点 Cookie)、history、downloads、nativeMessaging(与宿主程序通信)、debugger - 站点权限(host_permissions / MV2 permissions 内 URL 模式)决定能碰哪些网站的数据——
<all_urls>或*://*/*是高危信号 - 权限与声明用途对照:装了
storage+tabs+<all_urls>但功能只是改主题——越权信号 - 权限风险速查(声明即能力,不必看代码):
- 高危 API 权限:
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 · 119 lines · 59 tokens per session scan A 320a16368f28
re-browser-ext is a skill published in the GitHub repository dslsdzc/rev-skills (50 stars, last pushed 11d ago), licensed Apache-2.0. It adds 59 tokens to every session and 2,724 once invoked, about $0.0003 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
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-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…
Reverse Engineering & Binary Analysis
Binary analysis, assembly interpretation, disassembly, decompilation, firmware RE, and protocol reverse engineering.
ctf-web-recon
A reconnaissance guide for web-based capture-the-flag (CTF) challenges, which are intentionally designed applications with clues and weaknesses.
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.
reverse-engineering-arm-binaries
Reverse engineers ARM/AArch64 malware by identifying the architecture and instruction set state (ARM/Thumb), parsing ELF/Mach-O ARM headers, and orienting analysis around the ARM calling convention. Activates for requests to reverse ARM binaries, analyze AArch64 malware, or handle ARM/Thumb instruction-set decoding.