ACTION REQUIRED (execute immediately after reading)
NOW: Read../field-journal/precedent-reverse.mdNOW: Confirm the target isbrowser extension(crx/xpi/unpacked directory), not ordinary web page JS (ordinary →js-reverse/)NEXT: Unpack the extension; read manifestACT: Permission surface → background scripts → network/storage hooks
Applicable scenarios
- Chrome/Edge MV2/MV3 extension analysis
- Firefox extensions
- Malicious extension IOC, supply-chain extension poisoning investigation
- Reverse engineering of signature/encryption/proxy logic implemented by extensions
Workflow
1. Package
□ crx 解压 / 从 profile 取扩展目录
□ manifest.json:permissions、host_permissions、background、content_scripts
□ 评估过度权限(<all_urls>、webRequest、debugger)
2. Logic
□ service_worker / background 入口
□ content_script 注入点与世界(isolated)
□ chrome.storage / IndexedDB 密钥
□ 与 `js-reverse` 相同:Observe 网络与消息传递(runtime.sendMessage)
3. Dynamic
□ 开发者模式加载解压目录
□ chrome://extensions 检查错误
□ DevTools 附加 service worker
□ 必要时 Frida/浏览器 CDP(jshookmcp)
Toolchain
| Tool | Purpose |
|---|---|
| Unpack/jq | manifest |
| Chrome DevTools | worker debugging |
| js-reverse toolchain | Deep JS |
| YARA | Malicious extension rules |
Reference
references/extension-analysis.md- field-journal extension recovery related entries
../js-reverse/../malware-analysis/
Routing context
Upstream: MASTER R30
Downstream: Complex obfuscated JS → js-reverse; poisoning investigation → supply-chain / malware
Task completion self-check
- Are the permission surface and entry scripts listed?
- Are the key data flows reconstructed?
- Checklist?