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,177 @@
|
|
|
1
|
+
# iOS 逆向工程专项
|
|
2
|
+
|
|
3
|
+
## IPA 获取与解密
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# 从 App Store 下载
|
|
7
|
+
ipatool search "Target App"
|
|
8
|
+
ipatool purchase -b com.target.app
|
|
9
|
+
ipatool download -b com.target.app -o app.ipa
|
|
10
|
+
|
|
11
|
+
# 从设备提取已安装应用
|
|
12
|
+
# 越狱设备
|
|
13
|
+
scp root@device:/private/var/containers/Bundle/Application/*/Target.app .
|
|
14
|
+
|
|
15
|
+
# 解密(App Store 二进制为加密 FAT 格式)
|
|
16
|
+
# frida-ios-dump(推荐)
|
|
17
|
+
python3 dump.py com.target.app -o decrypted.ipa
|
|
18
|
+
|
|
19
|
+
# Clutch
|
|
20
|
+
Clutch -i # 列出已安装
|
|
21
|
+
Clutch -d 1 # 解密第 1 个
|
|
22
|
+
|
|
23
|
+
# dumpdecrypted
|
|
24
|
+
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /path/to/App
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Mach-O 分析
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 基本信息
|
|
31
|
+
otool -l TargetBinary | grep crypt # 加密状态
|
|
32
|
+
otool -L TargetBinary # 动态库依赖
|
|
33
|
+
otool -hv TargetBinary # 头部信息
|
|
34
|
+
jtool2 --pages TargetBinary # 内存页信息
|
|
35
|
+
|
|
36
|
+
# Fat Binary 瘦身
|
|
37
|
+
lipo -info TargetBinary
|
|
38
|
+
lipo TargetBinary -thin arm64 -output TargetBinary_arm64
|
|
39
|
+
|
|
40
|
+
# 符号分析
|
|
41
|
+
nm -g TargetBinary # 导出符号
|
|
42
|
+
nm -a TargetBinary # 全部符号
|
|
43
|
+
swift-demangle <mangled_name> # Swift 符号还原
|
|
44
|
+
|
|
45
|
+
# class-dump
|
|
46
|
+
class-dump -H TargetBinary -o headers/
|
|
47
|
+
# 导出 ObjC 类及方法声明到 headers/ 目录
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Objective-C 运行时分析
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
消息传递机制:
|
|
54
|
+
objc_msgSend(id self, SEL op, ...) → 动态方法派发
|
|
55
|
+
↓
|
|
56
|
+
运行时查找:
|
|
57
|
+
1. 类方法列表 cache
|
|
58
|
+
2. 类方法列表
|
|
59
|
+
3. 逐级父类查找
|
|
60
|
+
4. +resolveInstanceMethod / +resolveClassMethod
|
|
61
|
+
5. forwardingTargetForSelector
|
|
62
|
+
6. methodSignatureForSelector + forwardInvocation
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Frida ObjC Hook
|
|
66
|
+
|
|
67
|
+
```javascript
|
|
68
|
+
// Hook 实例方法
|
|
69
|
+
var hook = ObjC.classes.ClassName["- instanceMethod:"];
|
|
70
|
+
Interceptor.attach(hook.implementation, {
|
|
71
|
+
onEnter: function(args) {
|
|
72
|
+
// args[0] = self, args[1] = selector, args[2+] = method args
|
|
73
|
+
console.log("self: " + new ObjC.Object(args[0]));
|
|
74
|
+
console.log("arg: " + args[2].toInt32());
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Hook 类方法
|
|
79
|
+
var hook = ObjC.classes.ClassName["+ classMethod:"];
|
|
80
|
+
Interceptor.attach(hook.implementation, { ... });
|
|
81
|
+
|
|
82
|
+
// 调用 ObjC 方法
|
|
83
|
+
var NSString = ObjC.classes.NSString;
|
|
84
|
+
var str = NSString.stringWithString_("test");
|
|
85
|
+
console.log(str.UTF8String());
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Swift 逆向
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
Swift 名称修饰(Name Mangling):
|
|
92
|
+
$s10ModuleName5ClassC6method3argSi_tF
|
|
93
|
+
│ │ │ │ │ │ │ └─ 参数类型
|
|
94
|
+
│ │ │ │ │ │ └───── 返回类型
|
|
95
|
+
│ │ │ │ │ └──────── 参数名
|
|
96
|
+
│ │ │ │ └─────────────── 方法名
|
|
97
|
+
│ │ │ └──────────────── 类名(长度+名称)
|
|
98
|
+
│ │ └────────────────────── 模块名
|
|
99
|
+
│ └──────────────────────────────── 标识符标识
|
|
100
|
+
└────────────────────────────────── 全局标识
|
|
101
|
+
|
|
102
|
+
工具: swift-demangle, Hopper (自动还原)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 越狱检测绕过
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
检测方法分类:
|
|
109
|
+
|
|
110
|
+
1. 文件系统检查:
|
|
111
|
+
□ /Applications/Cydia.app
|
|
112
|
+
□ /var/lib/apt/
|
|
113
|
+
□ /bin/bash
|
|
114
|
+
□ /usr/sbin/sshd
|
|
115
|
+
→ Hook NSFileManager.fileExistsAtPath:
|
|
116
|
+
|
|
117
|
+
2. 沙箱逃逸检测:
|
|
118
|
+
□ fork() 是否成功(沙箱内禁止)
|
|
119
|
+
□ system() 调用
|
|
120
|
+
→ Hook fork → 返回 -1
|
|
121
|
+
|
|
122
|
+
3. Dyld 注入检测:
|
|
123
|
+
□ _dyld_get_image_count > 限制值
|
|
124
|
+
→ 限制返回值在合理范围
|
|
125
|
+
|
|
126
|
+
4. Scheme 检测:
|
|
127
|
+
□ cydia:// URL Scheme
|
|
128
|
+
→ Hook UIApplication.canOpenURL:
|
|
129
|
+
|
|
130
|
+
5. sysctl 检测:
|
|
131
|
+
□ CTL_KERN/KERN_PROC/KERN_PROC_PID → kinfo_proc
|
|
132
|
+
→ Hook sysctl → 清空 p_flag P_TRACED 位
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Frida 统一绕过脚本
|
|
136
|
+
|
|
137
|
+
```javascript
|
|
138
|
+
// 文件检测绕过
|
|
139
|
+
var NSFileManager = ObjC.classes.NSFileManager;
|
|
140
|
+
var defaultManager = NSFileManager.defaultManager();
|
|
141
|
+
Interceptor.attach(defaultManager["- fileExistsAtPath:"].implementation, {
|
|
142
|
+
onLeave: function(retval) {
|
|
143
|
+
var path = ObjC.Object(args[2]).toString();
|
|
144
|
+
if (path.includes("Cydia") || path.includes("apt") ||
|
|
145
|
+
path.includes("sshd") || path.includes("bash")) {
|
|
146
|
+
retval.replace(0); // false
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// fork 绕过
|
|
152
|
+
Interceptor.replace(Module.findExportByName(null, "fork"),
|
|
153
|
+
new NativeCallback(function() { return -1; }, 'int', []));
|
|
154
|
+
|
|
155
|
+
// dyld 绕过
|
|
156
|
+
var _dyld_get_image_count = Module.findExportByName(null, "_dyld_get_image_count");
|
|
157
|
+
Interceptor.attach(_dyld_get_image_count, {
|
|
158
|
+
onLeave: function(retval) {
|
|
159
|
+
if (retval.toInt32() > 200) retval.replace(200);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 关键防护绕过清单
|
|
165
|
+
|
|
166
|
+
| 防护 | iOS 绕过方法 |
|
|
167
|
+
|------|-------------|
|
|
168
|
+
| App Store 加密 | frida-ios-dump / Clutch |
|
|
169
|
+
| SSL Pinning | Objection `ios sslpinning disable` / SSL Kill Switch 2 |
|
|
170
|
+
| 越狱检测 | Objection `ios jailbreak disable` / 自定义 Frida Hook |
|
|
171
|
+
| 反调试 (PT_DENY_ATTACH) | Frida 启动后注入 / debugserver |
|
|
172
|
+
| 完整性校验 | Hook MAC 检查 / 代码签名验证 |
|
|
173
|
+
| 反注入 | 修改 Mach-O 去除 __RESTRICT 段 |
|
|
174
|
+
| Swift 混淆 | swift-demangle + LLM 辅助语义恢复 |
|
|
175
|
+
| 屏幕截图防护 | Hook UIScreen.mainScreen.snapshotViewAfterScreenUpdates |
|
|
176
|
+
|
|
177
|
+
Source: OWASP MSTG, frida-ios-dump, The iPhone Wiki
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: muapi-media
|
|
3
|
+
description: "Generate images and videos with MuAPI's schema-driven asynchronous media API while protecting keys, polling, and output downloads."
|
|
4
|
+
category: media
|
|
5
|
+
risk: critical
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-08-26"
|
|
9
|
+
author: Anil-matcha
|
|
10
|
+
tags: [muapi, image-generation, video-generation, media-api]
|
|
11
|
+
tools: [claude, codex, cursor, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# MuAPI Media
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Use MuAPI's unified asynchronous API for image and video generation when a
|
|
19
|
+
workflow needs model choice without a separate integration for every provider.
|
|
20
|
+
The catalog and each model's input schema are authoritative; this skill does
|
|
21
|
+
not guess fields, bundle an SDK, or hide a billable generation request. For a
|
|
22
|
+
capability overview, see the [MuAPI AI video API](https://muapi.ai/ai-video-api).
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
- Use when the user explicitly asks to generate an image or video with MuAPI.
|
|
27
|
+
- Use when an existing media workflow needs a hosted asynchronous API and can
|
|
28
|
+
send an authorized HTTPS request.
|
|
29
|
+
- Use when the user needs to compare or switch among current media models
|
|
30
|
+
without changing the surrounding submit-and-poll workflow.
|
|
31
|
+
- Do not use this skill for text chat or for a provider whose current schema
|
|
32
|
+
has not been fetched and checked.
|
|
33
|
+
|
|
34
|
+
## Preconditions
|
|
35
|
+
|
|
36
|
+
1. Confirm that the user is authorized to send the prompt and any reference
|
|
37
|
+
media to a third-party service.
|
|
38
|
+
2. Explain that generation may be billable and obtain approval immediately
|
|
39
|
+
before the generation request.
|
|
40
|
+
3. Require `MUAPI_API_KEY` in the environment. Never ask the user to paste it
|
|
41
|
+
into chat, source files, command history, or logs.
|
|
42
|
+
4. Confirm the requested media type, output location, and whether the user
|
|
43
|
+
wants a single generation or an explicitly approved batch.
|
|
44
|
+
|
|
45
|
+
## API Contract
|
|
46
|
+
|
|
47
|
+
| Operation | Method and endpoint |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| List current models | `GET https://api.muapi.ai/api/v1/models` |
|
|
50
|
+
| Read one model's schema | `GET https://api.muapi.ai/api/v1/models/{model}` |
|
|
51
|
+
| Submit a generation | `POST https://api.muapi.ai/{catalog endpoint}` |
|
|
52
|
+
| Poll a prediction | `GET https://api.muapi.ai/api/v1/predictions/{request_id}/result` |
|
|
53
|
+
|
|
54
|
+
Generation and prediction requests use:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
x-api-key: $MUAPI_API_KEY
|
|
58
|
+
Content-Type: application/json
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The catalog returns a model name, category, endpoint, and other metadata. The
|
|
62
|
+
endpoint value already includes `/api/v1/`; append it to `https://api.muapi.ai`
|
|
63
|
+
without adding a second version prefix. Model input and output fields vary, so
|
|
64
|
+
read the selected model's schema immediately before preparing a request.
|
|
65
|
+
|
|
66
|
+
## How It Works
|
|
67
|
+
|
|
68
|
+
### 1. Discover and validate a model
|
|
69
|
+
|
|
70
|
+
Use a temporary directory for response files and keep credentials out of every
|
|
71
|
+
file. The catalog lookup is read-only:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
workdir=$(mktemp -d "${TMPDIR:-/tmp}/muapi-media.XXXXXX")
|
|
75
|
+
|
|
76
|
+
curl --fail --silent --show-error \
|
|
77
|
+
--header "Accept: application/json" \
|
|
78
|
+
"https://api.muapi.ai/api/v1/models" \
|
|
79
|
+
--output "$workdir/models.json"
|
|
80
|
+
|
|
81
|
+
jq -r '
|
|
82
|
+
.models[]
|
|
83
|
+
| select(((.category // "") | ascii_downcase | test("image|video|audio|3d")))
|
|
84
|
+
| [.name, .category, .endpoint]
|
|
85
|
+
| @tsv
|
|
86
|
+
' "$workdir/models.json"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Select a model from the current catalog, then fetch its detailed schema. Do
|
|
90
|
+
not copy a payload from a different model just because the names look similar:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
export MUAPI_MODEL="<model name from the catalog>"
|
|
94
|
+
|
|
95
|
+
curl --fail --silent --show-error \
|
|
96
|
+
--header "Accept: application/json" \
|
|
97
|
+
"https://api.muapi.ai/api/v1/models/${MUAPI_MODEL}" \
|
|
98
|
+
--output "$workdir/model.json"
|
|
99
|
+
|
|
100
|
+
jq '.input_schema.schemas.input_data' "$workdir/model.json"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Check required fields, types, enum values, size limits, and the output schema.
|
|
104
|
+
If the model requires an image or video input, use the exact documented field
|
|
105
|
+
and an authorized HTTPS input URL; do not invent an upload contract.
|
|
106
|
+
|
|
107
|
+
### 2. Prepare one reviewed request
|
|
108
|
+
|
|
109
|
+
Set the key only in the environment and stop before submission if it is absent:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
test -n "${MUAPI_API_KEY:-}" || {
|
|
113
|
+
echo "Set MUAPI_API_KEY before generation." >&2
|
|
114
|
+
exit 1
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export MUAPI_PROMPT="A small paper boat crossing a calm pond at sunrise, steady camera"
|
|
118
|
+
|
|
119
|
+
# Add only fields confirmed by model.json. This example uses a prompt field;
|
|
120
|
+
# many models also require duration, resolution, aspect ratio, or an input URL.
|
|
121
|
+
jq -n \
|
|
122
|
+
--arg prompt "$MUAPI_PROMPT" \
|
|
123
|
+
'{prompt: $prompt}' \
|
|
124
|
+
> "$workdir/request.json"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Review the model, requested parameters, destination, and estimated cost with
|
|
128
|
+
the user. Do not put `MUAPI_API_KEY` in `request.json`.
|
|
129
|
+
|
|
130
|
+
### 3. Submit exactly once
|
|
131
|
+
|
|
132
|
+
Resolve the catalog endpoint and make one POST. Do not automatically retry a
|
|
133
|
+
generation POST after a timeout: the original task may have been accepted.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
model_endpoint=$(jq -er --arg name "$MUAPI_MODEL" '
|
|
137
|
+
.models[]
|
|
138
|
+
| select(.name == $name)
|
|
139
|
+
| .endpoint
|
|
140
|
+
| select(type == "string" and startswith("/api/v1/"))
|
|
141
|
+
' "$workdir/models.json")
|
|
142
|
+
|
|
143
|
+
curl --fail --silent --show-error \
|
|
144
|
+
--request POST \
|
|
145
|
+
"https://api.muapi.ai${model_endpoint}" \
|
|
146
|
+
--header @- \
|
|
147
|
+
--header "Content-Type: application/json" \
|
|
148
|
+
--data "@$workdir/request.json" \
|
|
149
|
+
--output "$workdir/submit.json" <<EOF
|
|
150
|
+
x-api-key: ${MUAPI_API_KEY}
|
|
151
|
+
EOF
|
|
152
|
+
|
|
153
|
+
request_id=$(jq -er '
|
|
154
|
+
.request_id // .id // .data.request_id // .data.id // .output.id
|
|
155
|
+
| select(type == "string" and length > 0)
|
|
156
|
+
' "$workdir/submit.json")
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Keep the request ID for diagnosis. Never print request headers or the key.
|
|
160
|
+
|
|
161
|
+
### 4. Poll with a finite deadline
|
|
162
|
+
|
|
163
|
+
Poll the original request ID, accept only documented terminal states, and stop
|
|
164
|
+
after a bounded number of attempts. The response shape can vary, so use the
|
|
165
|
+
selected model's output schema when extracting the result URL:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
result_url="https://api.muapi.ai/api/v1/predictions/${request_id}/result"
|
|
169
|
+
|
|
170
|
+
for attempt in $(seq 1 120); do
|
|
171
|
+
curl --fail --silent --show-error \
|
|
172
|
+
"$result_url" \
|
|
173
|
+
--header @- \
|
|
174
|
+
--output "$workdir/result.json" <<EOF
|
|
175
|
+
x-api-key: ${MUAPI_API_KEY}
|
|
176
|
+
EOF
|
|
177
|
+
|
|
178
|
+
status=$(jq -r '.status // .data.status // .output.status // "unknown"' \
|
|
179
|
+
"$workdir/result.json")
|
|
180
|
+
case "$status" in
|
|
181
|
+
completed|succeeded|success) break ;;
|
|
182
|
+
failed|error|canceled|cancelled|timeout)
|
|
183
|
+
jq -r '.error // .data.error // .output.error // "MuAPI generation failed"' \
|
|
184
|
+
"$workdir/result.json" >&2
|
|
185
|
+
exit 1
|
|
186
|
+
;;
|
|
187
|
+
esac
|
|
188
|
+
sleep 2
|
|
189
|
+
done
|
|
190
|
+
|
|
191
|
+
test "$status" = completed \
|
|
192
|
+
|| test "$status" = succeeded \
|
|
193
|
+
|| test "$status" = success
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Do not create a second paid task merely because polling was interrupted. First
|
|
197
|
+
poll the known request ID again and inspect its sanitized status.
|
|
198
|
+
|
|
199
|
+
### 5. Download without the API key
|
|
200
|
+
|
|
201
|
+
Extract an HTTPS output URL using the model's output schema. Download it with
|
|
202
|
+
a fresh request that has no MuAPI header, validate the file, and only then
|
|
203
|
+
return or publish it:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
output_url=$(jq -er '
|
|
207
|
+
.output.outputs[0]
|
|
208
|
+
// .data.output.outputs[0]
|
|
209
|
+
// .outputs[0]
|
|
210
|
+
// .data.outputs[0]
|
|
211
|
+
// .output.video
|
|
212
|
+
// .data.output.video
|
|
213
|
+
| select(type == "string" and startswith("https://"))
|
|
214
|
+
' "$workdir/result.json")
|
|
215
|
+
|
|
216
|
+
curl --fail --silent --show-error \
|
|
217
|
+
"$output_url" \
|
|
218
|
+
--output "$workdir/output.bin"
|
|
219
|
+
|
|
220
|
+
test -s "$workdir/output.bin"
|
|
221
|
+
file "$workdir/output.bin"
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Do not add `x-api-key` to this request. Reject non-HTTPS output URLs, avoid
|
|
225
|
+
following unvalidated redirects, and use a downloader that checks each
|
|
226
|
+
redirect destination and DNS result when the service returns a redirecting or
|
|
227
|
+
user-controlled URL. Never execute a downloaded file as code.
|
|
228
|
+
|
|
229
|
+
## Examples
|
|
230
|
+
|
|
231
|
+
### Read-only model discovery
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
curl --fail --silent --show-error \
|
|
235
|
+
"https://api.muapi.ai/api/v1/models" \
|
|
236
|
+
| jq -r '.models[] | [.name, .category, .endpoint] | @tsv'
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### One text-to-video request
|
|
240
|
+
|
|
241
|
+
```text
|
|
242
|
+
1. Discover a current Text to Video model.
|
|
243
|
+
2. Fetch its detailed input_schema and confirm that prompt and the requested
|
|
244
|
+
duration/resolution fields are accepted.
|
|
245
|
+
3. Obtain approval, submit one POST with MUAPI_API_KEY, and save request_id.
|
|
246
|
+
4. Poll the result endpoint at most 120 times.
|
|
247
|
+
5. Download the HTTPS output without the API key and validate the video file.
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## Best Practices
|
|
251
|
+
|
|
252
|
+
- Treat the live model catalog and detailed schema as authoritative.
|
|
253
|
+
- Keep each generation request explicit and obtain approval before billable
|
|
254
|
+
work.
|
|
255
|
+
- Submit one POST per task; retry only bounded, idempotent GET polling.
|
|
256
|
+
- Use a finite polling deadline and preserve the request ID on failure.
|
|
257
|
+
- Keep API keys in the environment or an approved secret manager.
|
|
258
|
+
- Use temporary files with restrictive local permissions and remove sensitive
|
|
259
|
+
response data after the workflow finishes.
|
|
260
|
+
- Validate HTTPS output URLs, size, content type, and basic image/video decode
|
|
261
|
+
before handing media to another tool.
|
|
262
|
+
- Respect prompt rights, model restrictions, and the user's consent for any
|
|
263
|
+
uploaded reference media.
|
|
264
|
+
|
|
265
|
+
## Limitations
|
|
266
|
+
|
|
267
|
+
- This is an instruction-only skill; it does not install an SDK or background
|
|
268
|
+
worker.
|
|
269
|
+
- Models, schemas, prices, output retention, and supported fields can change;
|
|
270
|
+
the live catalog is authoritative.
|
|
271
|
+
- Generation is asynchronous and may take minutes or fail after submission.
|
|
272
|
+
- Output URLs can expire and may not be reusable as permanent asset links.
|
|
273
|
+
- A successful HTTP response does not guarantee a valid or usable media file.
|
|
274
|
+
- This skill does not replace human review of media quality, rights, safety, or
|
|
275
|
+
provider policy compliance.
|
|
276
|
+
|
|
277
|
+
## Security & Safety Notes
|
|
278
|
+
|
|
279
|
+
- Treat prompts and reference media as data sent to a third party; obtain
|
|
280
|
+
consent and avoid unnecessary personal or confidential information.
|
|
281
|
+
- Never log, echo, commit, or include `MUAPI_API_KEY` in JSON payloads or
|
|
282
|
+
process arguments; pass authenticated curl headers through protected stdin or
|
|
283
|
+
a protected config file.
|
|
284
|
+
- Do not forward the API key to output hosts, redirects, browser URLs, or
|
|
285
|
+
user-controlled domains.
|
|
286
|
+
- Do not use this workflow for bulk generation, file hosting, or unrelated
|
|
287
|
+
network transfers without explicit authorization.
|
|
288
|
+
- Keep generated media in a controlled output directory and inspect it before
|
|
289
|
+
opening or sharing it.
|
|
290
|
+
|
|
291
|
+
## Common Pitfalls
|
|
292
|
+
|
|
293
|
+
- **Problem:** The API returns a validation error.
|
|
294
|
+
**Solution:** Fetch the selected model's current schema and rebuild the
|
|
295
|
+
payload from its required fields and allowed values.
|
|
296
|
+
- **Problem:** A timeout occurs immediately after POST.
|
|
297
|
+
**Solution:** Preserve the request ID if available and poll it before
|
|
298
|
+
considering any resubmission.
|
|
299
|
+
- **Problem:** The output is HTML, JSON, or an empty file.
|
|
300
|
+
**Solution:** Check the HTTPS URL, response status, content type, file size,
|
|
301
|
+
and basic media decode before treating it as generated output.
|
|
302
|
+
- **Problem:** A download request would send the API key to a CDN.
|
|
303
|
+
**Solution:** Create a fresh header-free download request and validate every
|
|
304
|
+
redirect destination.
|
|
305
|
+
|
|
306
|
+
## Additional Resources
|
|
307
|
+
|
|
308
|
+
- [MuAPI API reference](https://muapi.ai/docs/api-reference) for authentication,
|
|
309
|
+
request lifecycle, and endpoint details.
|
|
310
|
+
- [MuAPI AI video API](https://muapi.ai/ai-video-api) for current video
|
|
311
|
+
capabilities and model-oriented discovery.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ot-ics
|
|
3
|
+
description: "Authorized OT/ICS security assessment: Purdue-model zoning review, PLC/SCADA exposure, industrial protocol discovery, and passive-first evaluation discipline."
|
|
4
|
+
risk: offensive
|
|
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
|
+
> **⚠️ AUTHORIZED USE ONLY**
|
|
13
|
+
> This skill is for educational purposes or authorized security assessments only.
|
|
14
|
+
> You must have explicit, written permission from the system owner before using this tool.
|
|
15
|
+
> Misuse of this tool is illegal and strictly prohibited.
|
|
16
|
+
|
|
17
|
+
> **Mandatory confirmation gate**
|
|
18
|
+
> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
|
|
19
|
+
> 1. Ask the user to state the exact target URL, IP, account, or resource.
|
|
20
|
+
> 2. Ask the user to confirm written authorization and the permitted scope.
|
|
21
|
+
> 3. Show the exact command(s) and explain their expected effect.
|
|
22
|
+
> 4. Wait for explicit confirmation in the current conversation.
|
|
23
|
+
>
|
|
24
|
+
> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
|
|
25
|
+
|
|
26
|
+
# OT / ICS Security
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
- Passive assessment of industrial networks within an approved scope.
|
|
30
|
+
- Documenting PLC/SCADA exposure and zoning violations.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 适用场景
|
|
34
|
+
|
|
35
|
+
- 工控/SCADA/DCS 安全评估(授权)
|
|
36
|
+
- Purdue 模型分区与跨区通道
|
|
37
|
+
- Modbus/DNP3/S7/EtherNet/IP 等协议暴露
|
|
38
|
+
- 工程师站、HMI、历史库、跳板主机
|
|
39
|
+
- IT/OT 融合边界(防火墙规则、单向闸)
|
|
40
|
+
|
|
41
|
+
## 安全铁律(MUST)
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
MUST NOT 在未明确允许时:
|
|
45
|
+
- 对 PLC 写线圈/寄存器
|
|
46
|
+
- 全网高速率扫描生产 OT
|
|
47
|
+
- 中断安全仪表系统(SIS)相关路径
|
|
48
|
+
优先:只读识别、流量镜像、离线固件/配置分析
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 工作流
|
|
52
|
+
|
|
53
|
+
### Phase 1 — 分区与资产
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
□ Purdue L0–L5 草图:现场设备 → 控制 → 监督 → 站点 DMZ → 企业
|
|
57
|
+
□ 资产清单:PLC/RTU/HMI/工程师站/历史库/Jump host
|
|
58
|
+
□ 协议与端口基线(仅授权网段)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Phase 2 — 被动与只读
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
□ SPAN/镜像 PCAP → protocol-reverse / Wireshark 工控解析器
|
|
65
|
+
□ 配置与工程文件离线审计(TIA/RSLogix 导出等)
|
|
66
|
+
□ 默认口令与明文协议(Modbus 无认证)记录为 Finding,不写盘改值
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Phase 3 — 受限主动(仅授权)
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
□ 低速识别,维护窗口
|
|
73
|
+
□ 只读功能码优先
|
|
74
|
+
□ 每步 Evidence;异常立即停止并通报
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Phase 4 — 固件/补丁面
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
□ 控制器固件版本 → CVE 映射(不盲刷固件)
|
|
81
|
+
□ 联合 firmware-pentest 做离线镜像分析
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## 工具链
|
|
85
|
+
|
|
86
|
+
| 工具 | 用途 | 注意 |
|
|
87
|
+
|------|------|------|
|
|
88
|
+
| Wireshark 工控 dissectors | 被动解析 | 镜像流量 |
|
|
89
|
+
| Nmap NSE(受限) | 识别 | 速率与时间窗 |
|
|
90
|
+
| Claroty/Nozomi 等 | 资产发现 | 商业/现场 |
|
|
91
|
+
| PLC 厂商工程软件 | 配置审计 | 离线优先 |
|
|
92
|
+
| binwalk / Ghidra | 固件 | 离线 |
|
|
93
|
+
|
|
94
|
+
## 参考
|
|
95
|
+
|
|
96
|
+
- `references/ot-safe-assessment.md`
|
|
97
|
+
- `../firmware-pentest/` `../protocol-reverse/` `../network` via pentest-tools
|
|
98
|
+
|
|
99
|
+
## 路由上下文
|
|
100
|
+
|
|
101
|
+
**上游**: MASTER R28
|
|
102
|
+
**下游**: 固件深挖 `firmware-pentest`;协议 `protocol-reverse`;IT 横向 `windows-ad`/`attack-chain`
|
|
103
|
+
**同级**: 不要用普通 Web 扫默认参数打 OT
|
|
104
|
+
|
|
105
|
+
## 任务完成自检
|
|
106
|
+
|
|
107
|
+
- [ ] 是否默认被动/只读并记录授权边界?
|
|
108
|
+
- [ ] 是否避免对控制回路写操作(除非明确允许)?
|
|
109
|
+
- [ ] Finding 是否含物理/过程影响说明?
|
|
110
|
+
- [ ] Checklist / journal?
|
|
111
|
+
|
|
112
|
+
## Limitations
|
|
113
|
+
|
|
114
|
+
- Active scanning can crash PLCs; default to passive capture.
|
|
115
|
+
- Specialized protocols need vendor documentation rarely available publicly.
|
|
116
|
+
|
|
117
|
+
> Adapted from [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill) (MIT).
|