opencode-skills-collection 4.0.42 → 4.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +49 -1
- package/bundled-skills/api-rate-limit-handler/SKILL.md +282 -0
- package/bundled-skills/api-security/SKILL.md +205 -0
- package/bundled-skills/api-security/references/jwt-oauth-testing.md +123 -0
- package/bundled-skills/api-security/references/rest-graphql-testing.md +137 -0
- package/bundled-skills/apk-reverse/SKILL.md +438 -0
- package/bundled-skills/apk-reverse/references/android-advanced.md +365 -0
- package/bundled-skills/apk-reverse/references/apk-security-checklist.md +230 -0
- package/bundled-skills/apk-reverse/references/frida-bypass-kit.md +70 -0
- package/bundled-skills/apk-reverse/references/frida-cookbook.md +472 -0
- package/bundled-skills/attack-chain/SKILL.md +185 -0
- package/bundled-skills/attack-chain/references/attack-playbooks.md +126 -0
- package/bundled-skills/attack-chain/references/evasion-cheatsheet.md +133 -0
- package/bundled-skills/attack-chain/references/lifecycle-checklist.md +37 -0
- package/bundled-skills/attack-chain/references/phases.md +490 -0
- package/bundled-skills/binary-diff/SKILL.md +320 -0
- package/bundled-skills/binary-diff/references/prompt-template.md +173 -0
- package/bundled-skills/browser-extension-reverse/SKILL.md +99 -0
- package/bundled-skills/browser-extension-reverse/references/extension-analysis.md +10 -0
- package/bundled-skills/case-review/SKILL.md +167 -0
- package/bundled-skills/cloud-k8s/SKILL.md +124 -0
- package/bundled-skills/cloud-k8s/references/k8s-cloud-checklist.md +16 -0
- package/bundled-skills/code-audit/SKILL.md +92 -0
- package/bundled-skills/code-audit/references/sast-review-checklist.md +10 -0
- package/bundled-skills/database-security/SKILL.md +81 -0
- package/bundled-skills/database-security/references/db-misconfig-checklist.md +9 -0
- package/bundled-skills/diagram-generator/SKILL.md +199 -0
- package/bundled-skills/diagram-generator/references/README.md +3 -0
- package/bundled-skills/diagram-generator/references/diagram-patterns.md +254 -0
- package/bundled-skills/digital-forensics/SKILL.md +93 -0
- package/bundled-skills/digital-forensics/references/forensics-triage.md +10 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +1 -1
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/sources/sources.md +9 -0
- package/bundled-skills/docs/users/aas-core.md +1 -1
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +3 -3
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/docs-generator/SKILL.md +197 -0
- package/bundled-skills/docs-generator/references/security-report-templates.md +348 -0
- package/bundled-skills/docs-generator/references/templates.md +102 -0
- package/bundled-skills/docs-generator/references/vendor-report-rules.md +263 -0
- package/bundled-skills/dotnet-reverse/SKILL.md +197 -0
- package/bundled-skills/dotnet-reverse/references/common-workflow.md +171 -0
- package/bundled-skills/dotnet-reverse/references/obfuscators.md +145 -0
- package/bundled-skills/dotnet-reverse/references/sharp-tools.md +164 -0
- package/bundled-skills/edr-bypass-re/SKILL.md +248 -0
- package/bundled-skills/edr-bypass-re/references/hook-survey.md +226 -0
- package/bundled-skills/edr-bypass-re/references/telemetry-blinding.md +346 -0
- package/bundled-skills/edr-bypass-re/references/unhook-techniques.md +338 -0
- package/bundled-skills/email-security/SKILL.md +81 -0
- package/bundled-skills/email-security/references/email-auth-checklist.md +8 -0
- package/bundled-skills/firmware-pentest/SKILL.md +381 -0
- package/bundled-skills/firmware-pentest/references/emba-automated-analysis.md +192 -0
- package/bundled-skills/firmware-pentest/references/emulation-and-fuzz.md +337 -0
- package/bundled-skills/firmware-pentest/references/extraction-methodology.md +285 -0
- package/bundled-skills/ghidra-reverse/SKILL.md +98 -0
- package/bundled-skills/ghidra-reverse/references/ghidra-cheatsheet.md +12 -0
- package/bundled-skills/go-rust-reverse/SKILL.md +82 -0
- package/bundled-skills/go-rust-reverse/references/go-rust-notes.md +5 -0
- package/bundled-skills/hardware-security/SKILL.md +80 -0
- package/bundled-skills/hardware-security/references/debug-interface-triage.md +7 -0
- package/bundled-skills/ida-reverse/SKILL.md +401 -0
- package/bundled-skills/ida-reverse/references/LOCAL-SETUP.md +66 -0
- package/bundled-skills/ida-reverse/references/ida-mcp-cheatsheet.md +515 -0
- package/bundled-skills/identity-federation/SKILL.md +81 -0
- package/bundled-skills/identity-federation/references/sso-flow-checklist.md +9 -0
- package/bundled-skills/instructree/SKILL.md +94 -0
- package/bundled-skills/js-reverse/SKILL.md +239 -0
- package/bundled-skills/js-reverse/references/ast-deobfuscation.md +3 -0
- package/bundled-skills/js-reverse/references/automation-entry.md +12 -0
- package/bundled-skills/js-reverse/references/env-patching.md +6 -0
- package/bundled-skills/js-reverse/references/fallbacks.md +8 -0
- package/bundled-skills/js-reverse/references/instrumentation.md +9 -0
- package/bundled-skills/js-reverse/references/local-rebuild.md +11 -0
- package/bundled-skills/js-reverse/references/mcp-task-template.md +30 -0
- package/bundled-skills/js-reverse/references/node-env-rebuild.md +9 -0
- package/bundled-skills/js-reverse/references/output-contract.md +9 -0
- package/bundled-skills/js-reverse/references/task-artifacts.md +11 -0
- package/bundled-skills/js-reverse/references/task-input-template.md +11 -0
- package/bundled-skills/js-reverse/references/tool-defaults.md +7 -0
- package/bundled-skills/llm-security/SKILL.md +160 -0
- package/bundled-skills/llm-security/references/agent-obedience-engineering.md +243 -0
- package/bundled-skills/llm-security/references/agent-security-testing.md +116 -0
- package/bundled-skills/llm-security/references/owasp-llm-top10.md +48 -0
- package/bundled-skills/llm-security/references/prompt-injection-methodology.md +107 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/lore/SKILL.md +104 -298
- package/bundled-skills/lore/references/audit-template.md +21 -4
- package/bundled-skills/lore/references/compatibility.md +51 -121
- package/bundled-skills/lore/references/config.md +22 -23
- package/bundled-skills/lore/references/entry-format.md +33 -3
- package/bundled-skills/lore/references/history-command.md +98 -2
- package/bundled-skills/lore/references/platform-mirrors.md +45 -16
- package/bundled-skills/lore/references/stale-new-markers.md +10 -8
- package/bundled-skills/lore/references/summary-template.md +8 -1
- package/bundled-skills/lore/references/workflows.md +192 -0
- package/bundled-skills/lore/scripts/README.md +14 -13
- package/bundled-skills/lore/scripts/README.zh-CN.md +14 -13
- package/bundled-skills/lore/scripts/find_duplicates.py +14 -4
- package/bundled-skills/lore/scripts/find_stale.py +68 -16
- package/bundled-skills/lore/scripts/history.py +235 -23
- package/bundled-skills/lore/scripts/id_hash.py +7 -4
- package/bundled-skills/lore/scripts/list_entries.py +82 -13
- package/bundled-skills/macos-reverse/SKILL.md +85 -0
- package/bundled-skills/macos-reverse/references/macho-triage.md +10 -0
- package/bundled-skills/malware-analysis/SKILL.md +311 -0
- package/bundled-skills/malware-analysis/references/anti-analysis-techniques.md +205 -0
- package/bundled-skills/malware-analysis/references/sandbox-orchestration.md +204 -0
- package/bundled-skills/malware-analysis/references/yara-sigma-rules.md +232 -0
- package/bundled-skills/mobile-reverse/SKILL.md +222 -0
- package/bundled-skills/mobile-reverse/references/anti-detection-bypass.md +182 -0
- package/bundled-skills/mobile-reverse/references/frida-objection-deep.md +218 -0
- package/bundled-skills/mobile-reverse/references/ios-reverse-guide.md +177 -0
- package/bundled-skills/muapi-media/SKILL.md +311 -0
- package/bundled-skills/ot-ics/SKILL.md +117 -0
- package/bundled-skills/ot-ics/references/ot-safe-assessment.md +10 -0
- package/bundled-skills/patch-diff-exploit/SKILL.md +278 -0
- package/bundled-skills/patch-diff-exploit/references/diff-tools-comparison.md +271 -0
- package/bundled-skills/patch-diff-exploit/references/patch-tuesday-workflow.md +253 -0
- package/bundled-skills/patch-diff-exploit/references/root-cause-and-poc.md +198 -0
- package/bundled-skills/pentest-tools/SKILL.md +346 -0
- package/bundled-skills/pentest-tools/references/ai-pentest-agents.md +148 -0
- package/bundled-skills/pentest-tools/references/ai-pentesting-landscape-2026.md +73 -0
- package/bundled-skills/pentest-tools/references/automation-loop-pattern.md +153 -0
- package/bundled-skills/pentest-tools/references/awesome-pentest-digest.md +175 -0
- package/bundled-skills/pentest-tools/references/burpsuite-mcp-guide.md +769 -0
- package/bundled-skills/pentest-tools/references/client-side-lab-playbook.md +155 -0
- package/bundled-skills/pentest-tools/references/kali-mcp-ecosystem.md +119 -0
- package/bundled-skills/pentest-tools/references/msf-protocol.md +169 -0
- package/bundled-skills/pentest-tools/references/network-attack-defense.md +350 -0
- package/bundled-skills/pentest-tools/references/nuclei-guide-2026.md +157 -0
- package/bundled-skills/pentest-tools/references/payloads.md +32 -0
- package/bundled-skills/pentest-tools/references/pentest-ai-agents-matrix.md +117 -0
- package/bundled-skills/pentest-tools/references/pentest-loop.md +270 -0
- package/bundled-skills/pentest-tools/references/recon-pipeline.md +154 -0
- package/bundled-skills/pentest-tools/references/templates/findings.md +21 -0
- package/bundled-skills/pentest-tools/references/templates/progress.md +17 -0
- package/bundled-skills/pentest-tools/references/templates/rules.md +35 -0
- package/bundled-skills/pentest-tools/references/templates/scope.md +29 -0
- package/bundled-skills/pentest-tools/references/templates/task_plan.md +27 -0
- package/bundled-skills/pentest-tools/references/web-attack-cheatsheet.md +387 -0
- package/bundled-skills/pentest-tools/src-hunter/SKILL.md +243 -0
- package/bundled-skills/pentest-tools/src-hunter/references/README.en.md +115 -0
- package/bundled-skills/pentest-tools/src-hunter/references/README.md +148 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/00-index.md +44 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/chinese-srcfingerprints.md +515 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/default-credentials-cn.md +274 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/00-index.md +66 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/banking-finance.md +338 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/telecom-isp.md +315 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/00-index.md +68 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/01-attack-priority.md +143 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/02-bypass-toolkit.md +357 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/03-evidence-discipline.md +205 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/04-control-gap-hunting.md +238 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/05-srctimebox-priority.md +161 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/adcs/346/224/273/345/207/273.md +254 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/exchange/346/224/273/345/207/273.md +254 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/sharepoint/346/224/273/345/207/273.md +113 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//344/277/241/346/201/257/346/224/266/351/233/206.md +947 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/205/215/346/235/200/344/270/216/350/247/204/351/201/277.md +780 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/207/255/350/257/201/347/252/203/345/217/226.md +1259 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/237/237/346/270/227/351/200/217/346/224/273/345/207/273.md +753 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/346/217/220/345/215/207.md +819 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/347/273/264/346/214/201.md +577 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/250/252/345/220/221/347/247/273/345/212/250.md +838 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//351/232/247/351/201/223/344/273/243/347/220/206.md +604 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ai/345/256/211/345/205/250.md +698 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/api/345/256/211/345/205/250.md +1935 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/csrf/350/267/250/347/253/231/350/257/267/346/261/202/344/274/252/351/200/240.md +952 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/jwt/345/256/211/345/205/250.md +496 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/lfi-rfi/346/226/207/344/273/266/345/214/205/345/220/253.md +1365 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/rce/350/277/234/347/250/213/344/273/243/347/240/201/346/211/247/350/241/214.md +1329 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/sql-nosql/346/263/250/345/205/245.md +1924 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssrf/346/234/215/345/212/241/347/253/257/350/257/267/346/261/202/344/274/252/351/200/240.md +1256 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssti/346/250/241/346/235/277/346/263/250/345/205/245.md +1151 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/websocket/345/256/211/345/205/250.md +487 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xss/350/267/250/347/253/231/350/204/232/346/234/254.md +1465 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xxe/345/256/236/344/275/223/346/263/250/345/205/245.md +815 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/270/232/345/212/241/351/200/273/350/276/221/346/274/217/346/264/236.md +594 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/272/221/345/256/211/345/205/250/346/274/217/346/264/236.md +561 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/276/233/345/272/224/351/223/276/346/224/273/345/207/273.md +399 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/216/237/345/236/213/351/223/276/346/261/241/346/237/223.md +401 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/274/200/346/224/276/351/207/215/345/256/232/345/220/221.md +396 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/226/207/344/273/266/346/274/217/346/264/236.md +0 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/241/206/346/236/266/346/274/217/346/264/236.md +2304 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/202/271/345/207/273/345/212/253/346/214/201.md +339 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/274/223/345/255/230/344/270/216cdn/345/256/211/345/205/250.md +497 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/256/244/350/257/201/346/274/217/346/264/236.md +1778 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/257/267/346/261/202/350/265/260/347/247/201.md +854 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/index.md +69 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/web/346/270/227/351/200/217.md +662 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/windows/346/270/227/351/200/217.md +100 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//344/277/241/346/201/257/346/224/266/351/233/206.md +852 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/206/205/347/275/221/346/270/227/351/200/217.md +873 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/207/255/350/257/201/347/252/203/345/217/226.md +186 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/237/237/346/270/227/351/200/217.md +50 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/257/206/347/240/201/346/224/273/345/207/273.md +462 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/235/203/351/231/220/346/217/220/345/215/207.md +168 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/274/217/346/264/236/345/210/251/347/224/250.md +445 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/263/273/347/273/237/345/221/275/344/273/244.md +410 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/272/242/351/230/237/345/267/245/345/205/267.md +64 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/274/226/347/240/201/350/247/243/347/240/201.md +226 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//351/232/247/351/201/223/344/273/243/347/220/206.md +84 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md +6504 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/00-index.md +57 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/api-rest.md +2050 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/arbitrary-x-authz.md +481 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/dos.md +615 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/file-upload.md +1365 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/graphql.md +253 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md +924 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/info-disclosure.md +432 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/intranet-postexp.md +4845 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/llm-prompt-injection.md +1394 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/logic-flaws.md +1796 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/mobile.md +397 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/oauth-saml-jwt.md +2504 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/path-traversal.md +1297 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/race-conditions.md +207 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/rce.md +4829 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/sqli.md +1620 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/ssrf-cache-host.md +2098 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/unauth-access.md +330 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/xss.md +1159 -0
- package/bundled-skills/pentest-tools/src-hunter/references/templates/report-submission.md +346 -0
- package/bundled-skills/pentest-tools/src-hunter/references/tools/mcp-jshook.md +174 -0
- package/bundled-skills/poka-yoke/SKILL.md +172 -0
- package/bundled-skills/project-state-governor/SKILL.md +1 -1
- package/bundled-skills/project-state-governor/references/project-state-schema.md +1 -1
- package/bundled-skills/protocol-reverse/SKILL.md +108 -0
- package/bundled-skills/protocol-reverse/references/protocol-workflow.md +29 -0
- package/bundled-skills/pwn-chain/SKILL.md +209 -0
- package/bundled-skills/pwn-chain/references/heap-pwn.md +283 -0
- package/bundled-skills/pwn-chain/references/kernel-pwn.md +370 -0
- package/bundled-skills/pwn-chain/references/stack-pwn.md +312 -0
- package/bundled-skills/radare2/SKILL.md +460 -0
- package/bundled-skills/radare2/references/cheatsheet.md +129 -0
- package/bundled-skills/radio-sdr/SKILL.md +77 -0
- package/bundled-skills/radio-sdr/references/sdr-lab-rules.md +6 -0
- package/bundled-skills/reverse-browser-automation/SKILL.md +249 -0
- package/bundled-skills/reverse-browser-automation/references/playwright-cheatsheet.md +425 -0
- package/bundled-skills/reverse-engineering/SKILL.md +213 -0
- package/bundled-skills/reverse-engineering/dsl-vm-reverse/SKILL.md +388 -0
- package/bundled-skills/reverse-engineering/references/ai-assisted-re.md +149 -0
- package/bundled-skills/reverse-engineering/references/anti-analysis.md +836 -0
- package/bundled-skills/reverse-engineering/references/awesome-re-resources.md +135 -0
- package/bundled-skills/reverse-engineering/references/crypto-decode-tools.md +220 -0
- package/bundled-skills/reverse-engineering/references/elf-analysis.md +296 -0
- package/bundled-skills/reverse-engineering/references/field-notes.md +540 -0
- package/bundled-skills/reverse-engineering/references/go-reverse.md +240 -0
- package/bundled-skills/reverse-engineering/references/kernel-driver-reverse.md +298 -0
- package/bundled-skills/reverse-engineering/references/languages-compiled.md +587 -0
- package/bundled-skills/reverse-engineering/references/languages-platforms.md +486 -0
- package/bundled-skills/reverse-engineering/references/languages.md +499 -0
- package/bundled-skills/reverse-engineering/references/nonpe-format-cookbook.md +301 -0
- package/bundled-skills/reverse-engineering/references/ollvm-deobfuscation.md +501 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf-2.md +397 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf-3.md +719 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf.md +532 -0
- package/bundled-skills/reverse-engineering/references/patterns.md +801 -0
- package/bundled-skills/reverse-engineering/references/platforms-hardware.md +304 -0
- package/bundled-skills/reverse-engineering/references/platforms.md +442 -0
- package/bundled-skills/reverse-engineering/references/re-agent-workflow.md +240 -0
- package/bundled-skills/reverse-engineering/references/tools-advanced.md +822 -0
- package/bundled-skills/reverse-engineering/references/tools-dynamic.md +846 -0
- package/bundled-skills/reverse-engineering/references/tools.md +546 -0
- package/bundled-skills/spec-driven-loop/SKILL.md +203 -0
- package/bundled-skills/spec-driven-loop/references/agent-and-judge-contracts.md +120 -0
- package/bundled-skills/spec-driven-loop/references/document-templates.md +184 -0
- package/bundled-skills/supply-chain-security/SKILL.md +180 -0
- package/bundled-skills/supply-chain-security/references/cicd-pipeline-security.md +137 -0
- package/bundled-skills/supply-chain-security/references/sbom-sca-methodology.md +74 -0
- package/bundled-skills/thick-client/SKILL.md +104 -0
- package/bundled-skills/thick-client/references/thick-client-checklist.md +9 -0
- package/bundled-skills/threat-hunting/SKILL.md +94 -0
- package/bundled-skills/threat-hunting/references/hunting-loop.md +5 -0
- package/bundled-skills/threat-intelligence/SKILL.md +176 -0
- package/bundled-skills/threat-intelligence/references/x-public-intelligence.md +93 -0
- package/bundled-skills/tree-ring-memory/SKILL.md +29 -9
- package/bundled-skills/wifi-wireless/SKILL.md +80 -0
- package/bundled-skills/wifi-wireless/references/wireless-lab-rules.md +6 -0
- package/bundled-skills/windows-ad/SKILL.md +109 -0
- package/bundled-skills/windows-ad/references/ad-attack-paths.md +12 -0
- package/package.json +1 -1
- package/skills_index.json +1281 -3
- package/bundled-skills/lore/README.md +0 -386
- package/bundled-skills/lore/README.zh-CN.md +0 -386
- package/bundled-skills/lore/WORKFLOWS.md +0 -216
- package/bundled-skills/lore/WORKFLOWS.zh-CN.md +0 -216
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reverse-browser-automation
|
|
3
|
+
description: "Automate browsers (Playwright) and Windows desktop applications (UI automation) for reverse-engineering evidence collection, UI-driven workflows, and network observation during analysis."
|
|
4
|
+
risk: safe
|
|
5
|
+
source: "https://github.com/zhaoxuya520/reverse-skill"
|
|
6
|
+
source_repo: "zhaoxuya520/reverse-skill"
|
|
7
|
+
source_type: community
|
|
8
|
+
date_added: "2026-08-25"
|
|
9
|
+
license: "MIT"
|
|
10
|
+
license_source: "https://github.com/zhaoxuya520/reverse-skill/blob/main/LICENSE"
|
|
11
|
+
---
|
|
12
|
+
# 自动化操作 (Desktop & Browser Automation)
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Analysis requires scripted interaction with a browser or desktop application.
|
|
16
|
+
- Collecting reproducible UI evidence (screenshots, network traces) during an assessment.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## 适用范围
|
|
20
|
+
|
|
21
|
+
当任务属于以下场景时使用本 skill:
|
|
22
|
+
|
|
23
|
+
### 浏览器场景(Playwright / agent-browser)
|
|
24
|
+
- 打开网页并操作页面元素(点击、填表、提交)
|
|
25
|
+
- 爬取页面内容或截图
|
|
26
|
+
- 自动化登录流程
|
|
27
|
+
- 渗透测试中与 Web 页面交互(提交 payload、触发 XSS)
|
|
28
|
+
- 验证码页面的自动化处理
|
|
29
|
+
- 批量表单提交
|
|
30
|
+
|
|
31
|
+
### 桌面应用场景(OpenReverse)
|
|
32
|
+
- 操作 Windows 桌面应用(IDA Pro、x64dbg、Wireshark 等)
|
|
33
|
+
- 需要视觉驱动交互(CUA 模式)
|
|
34
|
+
- 需要结构化 UI 操作(UIA 模式)
|
|
35
|
+
- 桌面应用的网络流量观察(内置 mitmproxy)
|
|
36
|
+
- 自动化逆向工具的 GUI 操作
|
|
37
|
+
- 黑盒测试桌面软件
|
|
38
|
+
|
|
39
|
+
### 与其他工具的分工
|
|
40
|
+
|
|
41
|
+
| 场景 | 用什么 |
|
|
42
|
+
|------|--------|
|
|
43
|
+
| 操作网页(浏览器内) | **Playwright / agent-browser** |
|
|
44
|
+
| 操作桌面应用(Windows GUI) | **OpenReverse** |
|
|
45
|
+
| 抓包分析、HTTP 请求捕获 | anything-analyzer 或 OpenReverse network lane |
|
|
46
|
+
| JS 断点、Hook、CDP 调试 | jshookmcp |
|
|
47
|
+
| 定位签名算法、补环境复现 | js-reverse |
|
|
48
|
+
|
|
49
|
+
简单判断:
|
|
50
|
+
- 目标是网页 → Playwright
|
|
51
|
+
- 目标是 Windows 桌面应用 → OpenReverse
|
|
52
|
+
- 两者都需要 → 组合使用
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Part 1: 浏览器自动化(Playwright / agent-browser)
|
|
57
|
+
|
|
58
|
+
### 核心工作流
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# 1. 打开页面
|
|
62
|
+
agent-browser open <url>
|
|
63
|
+
|
|
64
|
+
# 2. 获取可交互元素(返回 @e1, @e2... 引用)
|
|
65
|
+
agent-browser snapshot -i
|
|
66
|
+
|
|
67
|
+
# 3. 用引用操作元素
|
|
68
|
+
agent-browser click @e1
|
|
69
|
+
agent-browser fill @e2 "text"
|
|
70
|
+
|
|
71
|
+
# 4. 完成后关闭
|
|
72
|
+
agent-browser close
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 命令参考
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 导航
|
|
79
|
+
agent-browser open <url>
|
|
80
|
+
agent-browser close
|
|
81
|
+
|
|
82
|
+
# 页面快照
|
|
83
|
+
agent-browser snapshot # 完整无障碍树
|
|
84
|
+
agent-browser snapshot -i # 仅可交互元素(推荐)
|
|
85
|
+
|
|
86
|
+
# 交互操作
|
|
87
|
+
agent-browser click @e1
|
|
88
|
+
agent-browser fill @e2 "text"
|
|
89
|
+
agent-browser type @e2 "text"
|
|
90
|
+
agent-browser press Enter
|
|
91
|
+
agent-browser scroll down 500
|
|
92
|
+
|
|
93
|
+
# 获取信息
|
|
94
|
+
agent-browser get text @e1
|
|
95
|
+
agent-browser get title
|
|
96
|
+
agent-browser get url
|
|
97
|
+
|
|
98
|
+
# 等待
|
|
99
|
+
agent-browser wait @e1
|
|
100
|
+
agent-browser wait 2000
|
|
101
|
+
agent-browser wait --load networkidle
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 注意事项
|
|
105
|
+
- 必须执行 `agent-browser close`,否则进程泄漏
|
|
106
|
+
- 操作前先 snapshot,不要猜元素引用
|
|
107
|
+
- 提交表单后用 `wait --load networkidle` 等页面稳定
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Part 2: 桌面应用自动化(OpenReverse)
|
|
112
|
+
|
|
113
|
+
### 概述
|
|
114
|
+
|
|
115
|
+
[OpenReverse](https://github.com/zhexulong/openreverse) 是面向 AI Agent 的桌面交互与证据采集框架,支持:
|
|
116
|
+
- **UIA 模式**:Windows UI Automation,结构化桌面控件操作
|
|
117
|
+
- **CUA 模式**:视觉驱动交互(Computer Use Agent),适合复杂 GUI
|
|
118
|
+
- **网络观察**:内置 mitmproxy 代理 + 本地抓取
|
|
119
|
+
|
|
120
|
+
### 交互模式选择
|
|
121
|
+
|
|
122
|
+
| 模式 | 适合场景 | 底层 |
|
|
123
|
+
|------|---------|------|
|
|
124
|
+
| UIA | 目标应用有标准 Windows 控件(按钮、文本框、列表) | Windows UI Automation API |
|
|
125
|
+
| CUA | 目标应用 UI 复杂或非标准控件(IDA 的反汇编视图、自定义渲染界面) | 视觉识别 + 鼠标键盘 |
|
|
126
|
+
|
|
127
|
+
### 网络观察模式
|
|
128
|
+
|
|
129
|
+
| 模式 | 适合场景 |
|
|
130
|
+
|------|---------|
|
|
131
|
+
| Proxy Lane | 目标应用可以配置代理(推荐) |
|
|
132
|
+
| Local Lane | 目标应用无法走代理,需要本地抓取 |
|
|
133
|
+
|
|
134
|
+
### 安装与配置
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# 1. Clone 项目
|
|
138
|
+
git clone https://github.com/zhexulong/openreverse.git
|
|
139
|
+
cd openreverse
|
|
140
|
+
|
|
141
|
+
# 2. 安装依赖
|
|
142
|
+
npm install
|
|
143
|
+
|
|
144
|
+
# 3. 接入 Agent 宿主(Claude Code / Codex / Zed)
|
|
145
|
+
npm run init:agents -- --target=all /path/to/project
|
|
146
|
+
|
|
147
|
+
# 4. 安装 CUA runtime(如果需要视觉驱动模式)
|
|
148
|
+
npm run install:cua-runtime
|
|
149
|
+
npm run doctor:cua-runtime
|
|
150
|
+
|
|
151
|
+
# 5. 安装网络观察依赖(如果需要抓包)
|
|
152
|
+
npm run install:mitmproxy
|
|
153
|
+
npm run doctor:network
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 常见组合
|
|
157
|
+
|
|
158
|
+
| 需求 | 配置 |
|
|
159
|
+
|------|------|
|
|
160
|
+
| 只操作桌面应用 | UIA 或 CUA,不接网络 lane |
|
|
161
|
+
| 操作桌面应用 + 抓包 | UIA/CUA + proxy lane |
|
|
162
|
+
| 操作桌面应用 + 本地抓取 | UIA/CUA + local lane |
|
|
163
|
+
|
|
164
|
+
### 逆向场景示例
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
场景:自动化操作 IDA Pro 进行批量分析
|
|
168
|
+
|
|
169
|
+
1. 用 OpenReverse CUA 模式打开 IDA Pro
|
|
170
|
+
2. 自动加载目标二进制
|
|
171
|
+
3. 等待分析完成
|
|
172
|
+
4. 通过 UI 操作导出函数列表
|
|
173
|
+
5. 同时用 network lane 观察 IDA 的网络行为(如 Lumina 请求)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
场景:自动化操作 x64dbg 调试
|
|
178
|
+
|
|
179
|
+
1. 用 OpenReverse UIA 模式启动 x64dbg
|
|
180
|
+
2. 加载目标程序
|
|
181
|
+
3. 设置断点
|
|
182
|
+
4. 运行并观察寄存器/内存变化
|
|
183
|
+
5. 截图保存证据
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 按需自举(On-Demand Bootstrap)
|
|
189
|
+
|
|
190
|
+
### 自动化能力边界
|
|
191
|
+
|
|
192
|
+
| 工具 | 可自动安装 | 安装方式 | 说明 |
|
|
193
|
+
|------|-----------|---------|------|
|
|
194
|
+
| Playwright | ✓ | npm + npx playwright install | 浏览器自动化引擎 |
|
|
195
|
+
| agent-browser CLI | ✓ | npm install -g agent-browser | 浏览器操作 CLI |
|
|
196
|
+
| Node.js | ✓ | winget | 前置依赖 |
|
|
197
|
+
| OpenReverse | ✗ | 手动 clone + npm install | 实验阶段,依赖较重 |
|
|
198
|
+
| mitmproxy | ✗ | 手动安装 | OpenReverse 网络观察依赖 |
|
|
199
|
+
|
|
200
|
+
### 自举触发
|
|
201
|
+
|
|
202
|
+
- 浏览器操作缺 Playwright → 自动 bootstrap
|
|
203
|
+
- 桌面操作需要 OpenReverse → 引导用户手动安装(给出完整步骤)
|
|
204
|
+
|
|
205
|
+
### OpenReverse 手动安装引导
|
|
206
|
+
|
|
207
|
+
如果 AI 检测到需要桌面应用自动化但 OpenReverse 未安装:
|
|
208
|
+
|
|
209
|
+
```markdown
|
|
210
|
+
⚠️ **需要 OpenReverse 进行桌面应用自动化**
|
|
211
|
+
|
|
212
|
+
**安装步骤**:
|
|
213
|
+
1. `git clone https://github.com/zhexulong/openreverse.git`
|
|
214
|
+
2. `cd openreverse && npm install`
|
|
215
|
+
3. `npm run init:agents -- --target=all <你的项目路径>`
|
|
216
|
+
4. 如需视觉模式:`npm run install:cua-runtime`
|
|
217
|
+
5. 如需网络观察:`npm run install:mitmproxy`
|
|
218
|
+
|
|
219
|
+
**验证**:`npm run doctor:cua-runtime` 和 `npm run doctor:network`
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 路由上下文
|
|
225
|
+
|
|
226
|
+
**上游入口**: `skills/SKILL.md`(总控)、`routing.md`
|
|
227
|
+
**适用场景**: 任何需要自动化操作浏览器或桌面应用的任务
|
|
228
|
+
**下游出口**:
|
|
229
|
+
- 抓到的请求需要分析 → `anything-analyzer` 或 `js-reverse`
|
|
230
|
+
- 需要 JS 调试/Hook → `jshookmcp`
|
|
231
|
+
- 需要还原签名算法 → `js-reverse`
|
|
232
|
+
- 桌面应用是逆向工具 → `ida-reverse/`
|
|
233
|
+
|
|
234
|
+
**同级关联模块**: `js-reverse`(浏览器操作后可能需要分析 JS)、`ida-reverse`(OpenReverse 可以自动化操作 IDA GUI)
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
## 任务完成自检(声称完成前 MUST 通过)
|
|
238
|
+
|
|
239
|
+
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
|
|
240
|
+
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
|
|
241
|
+
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
|
|
242
|
+
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
|
|
243
|
+
|
|
244
|
+
## Limitations
|
|
245
|
+
|
|
246
|
+
- UI selectors break on application updates; scripts need maintenance.
|
|
247
|
+
- Windows desktop automation requires an OS with the matching accessibility stack.
|
|
248
|
+
|
|
249
|
+
> Adapted from [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill) (MIT).
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
# 浏览器与桌面自动化速查
|
|
2
|
+
|
|
3
|
+
> 覆盖 Playwright(浏览器自动化)和 OpenReverse(Windows 桌面自动化)的常用命令与模式。
|
|
4
|
+
> 面向渗透测试、逆向工程、自动化采集场景。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Playwright / agent-browser 命令速查
|
|
9
|
+
|
|
10
|
+
### 导航与生命周期
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# 打开页面
|
|
14
|
+
agent-browser open "https://target.com/login"
|
|
15
|
+
|
|
16
|
+
# 等待页面加载完成
|
|
17
|
+
agent-browser wait --load networkidle
|
|
18
|
+
|
|
19
|
+
# 关闭浏览器(必须执行,否则进程泄漏)
|
|
20
|
+
agent-browser close
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 页面快照
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# 完整无障碍树(调试用)
|
|
27
|
+
agent-browser snapshot
|
|
28
|
+
|
|
29
|
+
# 仅可交互元素(推荐,返回 @e1, @e2... 引用)
|
|
30
|
+
agent-browser snapshot -i
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 元素交互
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 点击
|
|
37
|
+
agent-browser click @e1
|
|
38
|
+
|
|
39
|
+
# 填写文本框
|
|
40
|
+
agent-browser fill @e2 "admin"
|
|
41
|
+
|
|
42
|
+
# 逐字符输入(适合有 JS 监听的输入框)
|
|
43
|
+
agent-browser type @e2 "password123"
|
|
44
|
+
|
|
45
|
+
# 按键
|
|
46
|
+
agent-browser press Enter
|
|
47
|
+
agent-browser press Tab
|
|
48
|
+
agent-browser press Escape
|
|
49
|
+
|
|
50
|
+
# 滚动
|
|
51
|
+
agent-browser scroll down 500
|
|
52
|
+
agent-browser scroll up 300
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 信息获取
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 获取元素文本
|
|
59
|
+
agent-browser get text @e1
|
|
60
|
+
|
|
61
|
+
# 获取页面标题
|
|
62
|
+
agent-browser get title
|
|
63
|
+
|
|
64
|
+
# 获取当前 URL
|
|
65
|
+
agent-browser get url
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 等待策略
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# 等待元素出现
|
|
72
|
+
agent-browser wait @e1
|
|
73
|
+
|
|
74
|
+
# 等待固定时间(毫秒)
|
|
75
|
+
agent-browser wait 2000
|
|
76
|
+
|
|
77
|
+
# 等待网络空闲
|
|
78
|
+
agent-browser wait --load networkidle
|
|
79
|
+
|
|
80
|
+
# 等待导航完成
|
|
81
|
+
agent-browser wait --load domcontentloaded
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 渗透测试常用模式
|
|
87
|
+
|
|
88
|
+
### 自动化登录
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
agent-browser open "https://target.com/login"
|
|
92
|
+
agent-browser snapshot -i
|
|
93
|
+
agent-browser fill @username "admin"
|
|
94
|
+
agent-browser fill @password "password123"
|
|
95
|
+
agent-browser click @login_button
|
|
96
|
+
agent-browser wait --load networkidle
|
|
97
|
+
agent-browser get url # 确认是否跳转到后台
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### XSS Payload 注入
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
agent-browser open "https://target.com/search"
|
|
104
|
+
agent-browser snapshot -i
|
|
105
|
+
agent-browser fill @search_input "<script>alert(1)</script>"
|
|
106
|
+
agent-browser click @search_button
|
|
107
|
+
agent-browser wait --load networkidle
|
|
108
|
+
agent-browser snapshot # 检查 payload 是否被渲染
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 表单批量提交(配合脚本)
|
|
112
|
+
|
|
113
|
+
```powershell
|
|
114
|
+
$payloads = @("' OR 1=1--", "<img src=x onerror=alert(1)>", "{{7*7}}")
|
|
115
|
+
foreach ($p in $payloads) {
|
|
116
|
+
agent-browser open "https://target.com/form"
|
|
117
|
+
agent-browser snapshot -i
|
|
118
|
+
agent-browser fill @input "$p"
|
|
119
|
+
agent-browser click @submit
|
|
120
|
+
agent-browser wait --load networkidle
|
|
121
|
+
agent-browser snapshot # 检查响应
|
|
122
|
+
}
|
|
123
|
+
agent-browser close
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Cookie / LocalStorage 提取
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# 通过 Playwright API(Node.js 脚本模式)
|
|
130
|
+
# agent-browser 不直接暴露 cookie,需要用脚本模式
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
```javascript
|
|
134
|
+
// playwright-extract.js
|
|
135
|
+
const { chromium } = require('playwright');
|
|
136
|
+
(async () => {
|
|
137
|
+
const browser = await chromium.launch();
|
|
138
|
+
const context = await browser.newContext();
|
|
139
|
+
const page = await context.newPage();
|
|
140
|
+
await page.goto('https://target.com');
|
|
141
|
+
|
|
142
|
+
// 提取 cookies
|
|
143
|
+
const cookies = await context.cookies();
|
|
144
|
+
console.log(JSON.stringify(cookies, null, 2));
|
|
145
|
+
|
|
146
|
+
// 提取 localStorage
|
|
147
|
+
const storage = await page.evaluate(() => JSON.stringify(localStorage));
|
|
148
|
+
console.log(storage);
|
|
149
|
+
|
|
150
|
+
await browser.close();
|
|
151
|
+
})();
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 截图取证
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# agent-browser 模式
|
|
158
|
+
agent-browser open "https://target.com/admin"
|
|
159
|
+
agent-browser wait --load networkidle
|
|
160
|
+
# 截图功能取决于 agent-browser 版本
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
// playwright 脚本模式
|
|
165
|
+
await page.screenshot({ path: 'evidence.png', fullPage: true });
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Playwright Node.js API 速查
|
|
171
|
+
|
|
172
|
+
### 基础模板
|
|
173
|
+
|
|
174
|
+
```javascript
|
|
175
|
+
const { chromium } = require('playwright');
|
|
176
|
+
|
|
177
|
+
(async () => {
|
|
178
|
+
const browser = await chromium.launch({
|
|
179
|
+
headless: true, // 无头模式
|
|
180
|
+
// proxy: { server: 'http://127.0.0.1:8080' } // 走 Burp 代理
|
|
181
|
+
});
|
|
182
|
+
const context = await browser.newContext({
|
|
183
|
+
ignoreHTTPSErrors: true, // 忽略证书错误
|
|
184
|
+
userAgent: 'Mozilla/5.0 ...',
|
|
185
|
+
});
|
|
186
|
+
const page = await context.newPage();
|
|
187
|
+
|
|
188
|
+
await page.goto('https://target.com');
|
|
189
|
+
// ... 操作 ...
|
|
190
|
+
|
|
191
|
+
await browser.close();
|
|
192
|
+
})();
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 常用选择器
|
|
196
|
+
|
|
197
|
+
```javascript
|
|
198
|
+
// CSS 选择器
|
|
199
|
+
await page.click('#login-btn');
|
|
200
|
+
await page.fill('input[name="username"]', 'admin');
|
|
201
|
+
|
|
202
|
+
// 文本选择器
|
|
203
|
+
await page.click('text=Submit');
|
|
204
|
+
await page.click('button:has-text("Login")');
|
|
205
|
+
|
|
206
|
+
// XPath
|
|
207
|
+
await page.click('xpath=//button[@type="submit"]');
|
|
208
|
+
|
|
209
|
+
// 组合
|
|
210
|
+
await page.click('form >> input[type="submit"]');
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 网络拦截
|
|
214
|
+
|
|
215
|
+
```javascript
|
|
216
|
+
// 拦截请求
|
|
217
|
+
await page.route('**/api/**', route => {
|
|
218
|
+
console.log('API call:', route.request().url());
|
|
219
|
+
route.continue();
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
// 修改请求
|
|
223
|
+
await page.route('**/api/auth', route => {
|
|
224
|
+
route.continue({
|
|
225
|
+
headers: { ...route.request().headers(), 'X-Admin': 'true' }
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// 拦截响应
|
|
230
|
+
await page.route('**/api/user', async route => {
|
|
231
|
+
const response = await route.fetch();
|
|
232
|
+
const json = await response.json();
|
|
233
|
+
json.role = 'admin'; // 篡改响应
|
|
234
|
+
route.fulfill({ response, json });
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 等待与断言
|
|
239
|
+
|
|
240
|
+
```javascript
|
|
241
|
+
// 等待元素
|
|
242
|
+
await page.waitForSelector('#result');
|
|
243
|
+
await page.waitForSelector('.error', { state: 'visible' });
|
|
244
|
+
|
|
245
|
+
// 等待网络请求
|
|
246
|
+
const [response] = await Promise.all([
|
|
247
|
+
page.waitForResponse('**/api/login'),
|
|
248
|
+
page.click('#login-btn'),
|
|
249
|
+
]);
|
|
250
|
+
console.log(response.status(), await response.json());
|
|
251
|
+
|
|
252
|
+
// 等待导航
|
|
253
|
+
await Promise.all([
|
|
254
|
+
page.waitForNavigation(),
|
|
255
|
+
page.click('a[href="/admin"]'),
|
|
256
|
+
]);
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## OpenReverse 桌面自动化速查
|
|
262
|
+
|
|
263
|
+
### 模式选择
|
|
264
|
+
|
|
265
|
+
| 模式 | 命令前缀 | 适合场景 |
|
|
266
|
+
|------|---------|---------|
|
|
267
|
+
| UIA | `openreverse uia ...` | 标准 Windows 控件(按钮、文本框、列表) |
|
|
268
|
+
| CUA | `openreverse cua ...` | 复杂/非标准 GUI(IDA 反汇编视图、自定义渲染界面) |
|
|
269
|
+
|
|
270
|
+
### UIA 模式(结构化控件操作)
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# 启动应用
|
|
274
|
+
openreverse uia launch "C:\Tools\x64dbg\x64dbg.exe"
|
|
275
|
+
|
|
276
|
+
# 获取窗口树
|
|
277
|
+
openreverse uia tree
|
|
278
|
+
|
|
279
|
+
# 点击按钮
|
|
280
|
+
openreverse uia click "Button:Open"
|
|
281
|
+
|
|
282
|
+
# 填写文本框
|
|
283
|
+
openreverse uia fill "Edit:FilePath" "C:\sample.exe"
|
|
284
|
+
|
|
285
|
+
# 选择菜单
|
|
286
|
+
openreverse uia menu "File > Open"
|
|
287
|
+
|
|
288
|
+
# 获取控件文本
|
|
289
|
+
openreverse uia get-text "Edit:Output"
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### CUA 模式(视觉驱动交互)
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# 截图当前屏幕
|
|
296
|
+
openreverse cua screenshot
|
|
297
|
+
|
|
298
|
+
# 点击屏幕坐标
|
|
299
|
+
openreverse cua click 500 300
|
|
300
|
+
|
|
301
|
+
# 双击
|
|
302
|
+
openreverse cua dblclick 500 300
|
|
303
|
+
|
|
304
|
+
# 输入文本
|
|
305
|
+
openreverse cua type "search string"
|
|
306
|
+
|
|
307
|
+
# 按键
|
|
308
|
+
openreverse cua key "ctrl+g" # IDA: Go to address
|
|
309
|
+
openreverse cua key "F5" # IDA: Decompile
|
|
310
|
+
openreverse cua key "F9" # x64dbg: Run
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### 网络观察(mitmproxy)
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# 启动代理模式观察
|
|
317
|
+
openreverse network start --mode proxy --port 8888
|
|
318
|
+
|
|
319
|
+
# 启动本地抓取模式
|
|
320
|
+
openreverse network start --mode local --filter "target.exe"
|
|
321
|
+
|
|
322
|
+
# 获取捕获的请求
|
|
323
|
+
openreverse network list
|
|
324
|
+
|
|
325
|
+
# 导出为 HAR
|
|
326
|
+
openreverse network export har output.har
|
|
327
|
+
|
|
328
|
+
# 停止观察
|
|
329
|
+
openreverse network stop
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## 逆向工具自动化组合
|
|
335
|
+
|
|
336
|
+
### IDA Pro 自动化(OpenReverse + ida-reverse)
|
|
337
|
+
|
|
338
|
+
```text
|
|
339
|
+
场景:批量分析多个样本
|
|
340
|
+
|
|
341
|
+
1. openreverse cua launch "ida64.exe"
|
|
342
|
+
2. 对每个样本:
|
|
343
|
+
a. openreverse cua key "ctrl+o" # 打开文件对话框
|
|
344
|
+
b. openreverse uia fill "Edit:FileName" "sample_N.exe"
|
|
345
|
+
c. openreverse uia click "Button:Open"
|
|
346
|
+
d. 等待分析完成(轮询 IDA 标题栏)
|
|
347
|
+
e. 通过 ida-reverse MCP 工具提取结果
|
|
348
|
+
f. openreverse cua key "ctrl+w" # 关闭数据库
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### x64dbg 自动化调试
|
|
352
|
+
|
|
353
|
+
```text
|
|
354
|
+
场景:自动化断点设置与数据采集
|
|
355
|
+
|
|
356
|
+
1. openreverse uia launch "x64dbg.exe"
|
|
357
|
+
2. openreverse cua key "F3" # 打开文件
|
|
358
|
+
3. openreverse uia fill "Edit:FileName" "target.exe"
|
|
359
|
+
4. openreverse uia click "Button:Open"
|
|
360
|
+
5. openreverse cua key "ctrl+g" # Go to address
|
|
361
|
+
6. openreverse cua type "0x401000"
|
|
362
|
+
7. openreverse cua key "F2" # 设置断点
|
|
363
|
+
8. openreverse cua key "F9" # 运行
|
|
364
|
+
9. openreverse cua screenshot # 截图保存状态
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## 常见问题与解决
|
|
370
|
+
|
|
371
|
+
| 问题 | 原因 | 解决 |
|
|
372
|
+
|------|------|------|
|
|
373
|
+
| agent-browser 无响应 | 进程泄漏 | 先 `agent-browser close`,再重新 open |
|
|
374
|
+
| 元素引用失效 | 页面已刷新 | 重新 `snapshot -i` 获取新引用 |
|
|
375
|
+
| 填表无效 | JS 监听 input 事件 | 用 `type` 代替 `fill` |
|
|
376
|
+
| HTTPS 证书错误 | 自签名证书 | Playwright: `ignoreHTTPSErrors: true` |
|
|
377
|
+
| 页面加载超时 | 网络慢/资源多 | 增加 timeout 或用 `domcontentloaded` |
|
|
378
|
+
| UIA 找不到控件 | 应用使用自绘控件 | 切换到 CUA 模式 |
|
|
379
|
+
| CUA 点击偏移 | 分辨率/DPI 不匹配 | 先 screenshot 确认坐标 |
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## 安装与依赖
|
|
384
|
+
|
|
385
|
+
### Playwright
|
|
386
|
+
|
|
387
|
+
```powershell
|
|
388
|
+
# 安装 Node.js(如果没有)
|
|
389
|
+
winget install OpenJS.NodeJS.LTS
|
|
390
|
+
|
|
391
|
+
# 安装 Playwright
|
|
392
|
+
npm install -g playwright
|
|
393
|
+
npx playwright install # 下载浏览器引擎
|
|
394
|
+
|
|
395
|
+
# 安装 agent-browser CLI
|
|
396
|
+
npm install -g agent-browser
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### OpenReverse
|
|
400
|
+
|
|
401
|
+
```powershell
|
|
402
|
+
git clone https://github.com/zhexulong/openreverse.git
|
|
403
|
+
cd openreverse
|
|
404
|
+
npm install
|
|
405
|
+
npm run init:agents -- --target=all <项目路径>
|
|
406
|
+
|
|
407
|
+
# 可选:CUA 运行时
|
|
408
|
+
npm run install:cua-runtime
|
|
409
|
+
npm run doctor:cua-runtime
|
|
410
|
+
|
|
411
|
+
# 可选:网络观察
|
|
412
|
+
npm run install:mitmproxy
|
|
413
|
+
npm run doctor:network
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## 相关资源
|
|
419
|
+
|
|
420
|
+
| 资源 | 说明 | 链接 |
|
|
421
|
+
|------|------|------|
|
|
422
|
+
| Playwright 官方文档 | API 参考 | https://playwright.dev/docs/intro |
|
|
423
|
+
| OpenReverse | 桌面自动化框架 | https://github.com/zhexulong/openreverse |
|
|
424
|
+
| mitmproxy | HTTP/HTTPS 代理 | https://mitmproxy.org/ |
|
|
425
|
+
| Windows UI Automation | UIA 文档 | https://learn.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32 |
|