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,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mobile-reverse
|
|
3
|
+
description: "Authorized Android/iOS application reverse engineering and security testing: APK/IPA analysis, runtime instrumentation (Frida/Objection), SSL-pinning and jailbreak/root-detection bypass, per OWASP MASTG."
|
|
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
|
+
# Mobile Reverse Engineering
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
- Assessing a mobile app's security posture within an approved scope.
|
|
30
|
+
- Instrumenting runtime behavior or bypassing transport protections in tests.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 适用场景
|
|
34
|
+
|
|
35
|
+
- Android APK 逆向与安全测试
|
|
36
|
+
- iOS IPA 逆向与安全测试
|
|
37
|
+
- 移动应用运行时动态插桩
|
|
38
|
+
- SSL Pinning / Root 检测 / 越狱检测绕过
|
|
39
|
+
- 移动端加密算法提取(AES/RSA/HMAC 密钥)
|
|
40
|
+
- 移动应用渗透测试(OWASP MASTG)
|
|
41
|
+
- 非 Root/越狱环境下的应用测试
|
|
42
|
+
|
|
43
|
+
## 四阶段工作流
|
|
44
|
+
|
|
45
|
+
### Phase 1: 信息收集
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Android:
|
|
49
|
+
□ APK 获取(Google Play / APKMirror / adb pull)
|
|
50
|
+
□ Manifest 分析: 权限、导出组件、Intent Filter、backup 标志
|
|
51
|
+
□ androguard: androguard analyze APK → 组件/权限/签名
|
|
52
|
+
□ APKLeaks: 硬编码 API Key / Token / Secret 扫描
|
|
53
|
+
□ 加固检测: 是否加壳(360/腾讯/梆梆/爱加密)
|
|
54
|
+
|
|
55
|
+
iOS:
|
|
56
|
+
□ IPA 获取(App Store / ipatool / Apple Configurator)
|
|
57
|
+
□ 解密 App Store 二进制: frida-ios-dump / Clutch
|
|
58
|
+
□ Info.plist 分析: ATS 配置、URL Scheme、Queries Schemes
|
|
59
|
+
□ class-dump: 导出 ObjC 类结构
|
|
60
|
+
□ 加固检测: 是否使用 Swift/ObjC 混淆
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Phase 2: 静态分析
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
跨平台:
|
|
67
|
+
□ JADX-GUI: APK → Java 源码(Android)
|
|
68
|
+
□ Ghidra / Hopper: .so / Mach-O 反编译
|
|
69
|
+
□ radare2 / Cutter: CLI 快速侦察
|
|
70
|
+
|
|
71
|
+
Android 专项:
|
|
72
|
+
□ apktool d app.apk → smali 代码 + 资源
|
|
73
|
+
□ dex2jar: DEX → JAR → JD-GUI
|
|
74
|
+
□ smali/baksmali: Dalvik 字节码修改
|
|
75
|
+
|
|
76
|
+
iOS 专项:
|
|
77
|
+
□ class-dump: 导出 ObjC 头文件
|
|
78
|
+
□ Swift 符号恢复: swift-demangle
|
|
79
|
+
□ dsymutil: 调试符号提取
|
|
80
|
+
□ otool -L: 查看动态库依赖
|
|
81
|
+
□ jtool2: Mach-O 分析
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Phase 3: 动态分析
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
Frida — 通用动态插桩:
|
|
88
|
+
□ frida-ps -U: 列出设备进程
|
|
89
|
+
□ frida-trace -U -i "open*" com.app: 追踪函数调用
|
|
90
|
+
□ 自定义 Hook 脚本: 修改参数/返回值、调用私有方法
|
|
91
|
+
|
|
92
|
+
Objection — Frida 增强层(无需写脚本):
|
|
93
|
+
□ objection -g "com.app" explore
|
|
94
|
+
□ android root disable / ios jailbreak disable
|
|
95
|
+
□ android sslpinning disable / ios sslpinning disable
|
|
96
|
+
□ android keystore list / ios keychain dump
|
|
97
|
+
□ env / ls / sqlite connect
|
|
98
|
+
|
|
99
|
+
Frida Gadget(免 Root/越狱):
|
|
100
|
+
□ 注入 frida-gadget.so / FridaGadget.dylib 到 APK/IPA
|
|
101
|
+
□ 重新签名 → 安装 → 无需设备权限即可 Hook
|
|
102
|
+
□ objection patchapk --source app.apk(全自动)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Phase 4: 网络分析
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
□ Burp Suite: 拦截 HTTP/HTTPS,修改请求/响应
|
|
109
|
+
□ mitmproxy: 脚本化代理(Python API)
|
|
110
|
+
□ Wireshark: PCAP 抓包分析
|
|
111
|
+
□ 证书安装: Android 用户证书 → 系统证书(Magisk + MoveCert)
|
|
112
|
+
□ SSL Pinning 绕过: Frida/Objection/Xposed/SSL Kill Switch 2
|
|
113
|
+
□ WebSocket / gRPC 流量分析
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## 常见绕过速查
|
|
117
|
+
|
|
118
|
+
### SSL Pinning
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Objection(最简)
|
|
122
|
+
objection -g "com.app" explore
|
|
123
|
+
android sslpinning disable
|
|
124
|
+
|
|
125
|
+
# Frida 通用脚本
|
|
126
|
+
frida -U -l ssl_pinning_bypass.js -f com.app
|
|
127
|
+
|
|
128
|
+
# Xposed(Android)
|
|
129
|
+
TrustMeAlready 模块 → 全局禁用证书校验
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Root / 越狱检测
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Objection
|
|
136
|
+
android root disable
|
|
137
|
+
ios jailbreak disable
|
|
138
|
+
|
|
139
|
+
# Frida 自定义(多层检测)
|
|
140
|
+
Java.perform(function() {
|
|
141
|
+
var RootBeer = Java.use("com.scottyab.rootbeer.RootBeer");
|
|
142
|
+
RootBeer.isRooted.implementation = function() { return false; };
|
|
143
|
+
// 额外绕过: Magisk su 检测、frida-server 检测、/proc/self/maps 检测
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 反调试
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Android
|
|
151
|
+
frida -U -l anti_debug_bypass.js -f com.app
|
|
152
|
+
# 绕过: ptrace(TracerPid)、/proc/self/status、isDebuggerConnected()
|
|
153
|
+
|
|
154
|
+
# iOS
|
|
155
|
+
# 绕过: PT_DENY_ATTACH、sysctl CTL_KERN/KERN_PROC/KERN_PROC_PID
|
|
156
|
+
frida -U -l ios_anti_debug.js -f com.app
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 移动端加密提取
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
// Android — Hook Cipher.getInstance 获取密钥+算法
|
|
163
|
+
Java.perform(function() {
|
|
164
|
+
var Cipher = Java.use("javax.crypto.Cipher");
|
|
165
|
+
Cipher.getInstance.overload('java.lang.String').implementation = function(algo) {
|
|
166
|
+
console.log("[Cipher] Algorithm: " + algo);
|
|
167
|
+
return this.getInstance(algo);
|
|
168
|
+
};
|
|
169
|
+
Cipher.init.overload('int', 'java.security.Key').implementation = function(mode, key) {
|
|
170
|
+
console.log("[Cipher] Key: " + bytesToHex(key.getEncoded()));
|
|
171
|
+
return this.init(mode, key);
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
// iOS — Hook CCCrypt
|
|
176
|
+
Interceptor.attach(Module.findExportByName("libcommonCrypto.dylib", "CCCrypt"), {
|
|
177
|
+
onEnter: function(args) {
|
|
178
|
+
console.log("CCCrypt op: " + args[0] + " alg: " + args[1]);
|
|
179
|
+
console.log("Key: " + hexdump(args[3], { length: args[4].toInt32() }));
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 工具链
|
|
185
|
+
|
|
186
|
+
| 工具 | 平台 | 用途 |
|
|
187
|
+
|------|:--:|------|
|
|
188
|
+
| JADX-GUI | A | Java 反编译 |
|
|
189
|
+
| apktool | A | APK 解包/重建 |
|
|
190
|
+
| Ghidra | A+I | 多架构反编译 |
|
|
191
|
+
| Hopper | I | iOS 专用反汇编 |
|
|
192
|
+
| Frida | A+I | 动态插桩 |
|
|
193
|
+
| Objection | A+I | Frida REPL 增强 |
|
|
194
|
+
| MobSF | A+I | 自动化 SAST+DAST |
|
|
195
|
+
| class-dump | I | ObjC 类导出 |
|
|
196
|
+
| frida-ios-dump | I | IPA 解密 |
|
|
197
|
+
| jtool2 | I | Mach-O 分析 |
|
|
198
|
+
| Burp Suite | A+I | HTTP 拦截 |
|
|
199
|
+
| mitmproxy | A+I | 脚本化代理 |
|
|
200
|
+
|
|
201
|
+
> A=Android, I=iOS
|
|
202
|
+
|
|
203
|
+
## 参考
|
|
204
|
+
|
|
205
|
+
- `references/frida-objection-deep.md` — Frida + Objection 深度用法
|
|
206
|
+
- `references/ios-reverse-guide.md` — iOS 逆向专项
|
|
207
|
+
- `references/anti-detection-bypass.md` — Root/越狱/反调试/SSL Pinning 绕过
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## 任务完成自检(声称完成前 MUST 通过)
|
|
211
|
+
|
|
212
|
+
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
|
|
213
|
+
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
|
|
214
|
+
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
|
|
215
|
+
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
|
|
216
|
+
|
|
217
|
+
## Limitations
|
|
218
|
+
|
|
219
|
+
- iOS instrumentation requires a jailbroken device or patched build.
|
|
220
|
+
- Bypass techniques break with app-shield vendor updates.
|
|
221
|
+
|
|
222
|
+
> Adapted from [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill) (MIT).
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Root / 越狱 / 反调试 / SSL Pinning 绕过
|
|
2
|
+
|
|
3
|
+
## 检测层次模型
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Layer 1: 静态检测(安装时/启动时)
|
|
7
|
+
├─ 包管理器检测(Cydia, apt, Magisk)
|
|
8
|
+
├─ 文件检测(su, busybox, frida-server)
|
|
9
|
+
└─ 权限检测(ro.debuggable, ro.secure)
|
|
10
|
+
|
|
11
|
+
Layer 2: 运行时检测(持续)
|
|
12
|
+
├─ 进程检测(frida-server, magiskd)
|
|
13
|
+
├─ 端口检测(27042 frida default)
|
|
14
|
+
├─ 内存检测(/proc/self/maps 注入痕迹)
|
|
15
|
+
└─ 堆栈检测(Frida 调用帧)
|
|
16
|
+
|
|
17
|
+
Layer 3: 环境检测(按需触发)
|
|
18
|
+
├─ ptrace 检测(TracerPid)
|
|
19
|
+
├─ /proc/self/status 检测
|
|
20
|
+
├─ build.prop 检测(test-keys)
|
|
21
|
+
└─ syscall 直接检测(绕过 libc)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Android Root 检测绕过
|
|
25
|
+
|
|
26
|
+
### 常见检测库及绕过
|
|
27
|
+
|
|
28
|
+
| 检测库 | 检测方法 | 绕过方式 |
|
|
29
|
+
|--------|---------|---------|
|
|
30
|
+
| RootBeer | 8 种检测组合 | Hook 每个检测方法返回 false |
|
|
31
|
+
| SafetyNet | Google Play Services 远程认证 | 使用 Magisk Hide / Shamiko / Play Integrity Fix |
|
|
32
|
+
| Google Play Integrity | 替换 SafetyNet | Trickystore + PIF |
|
|
33
|
+
| 自定义 native 检测 | syscall 读取 /proc/self/status | Hook syscall 或修改 /proc 挂载 |
|
|
34
|
+
|
|
35
|
+
### Frida 综合绕过
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
Java.perform(function() {
|
|
39
|
+
// RootBeer
|
|
40
|
+
var RootBeer = Java.use("com.scottyab.rootbeer.RootBeer");
|
|
41
|
+
var methods = ["isRooted", "isRootedWithBusyBox", "checkSuExists",
|
|
42
|
+
"detectRootManagementApps", "detectPotentiallyDangerousApps",
|
|
43
|
+
"detectTestKeys", "checkForDangerousProps", "checkForRWPaths"];
|
|
44
|
+
methods.forEach(function(m) {
|
|
45
|
+
RootBeer[m].implementation = function() { return false; };
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// 通用 Build.TAGS 检测
|
|
49
|
+
var Build = Java.use("android.os.Build");
|
|
50
|
+
var original = Build.TAGS.value;
|
|
51
|
+
Build.TAGS.value = "release-keys";
|
|
52
|
+
|
|
53
|
+
// PackageManager → 隐藏包名
|
|
54
|
+
var PackageManager = Java.use("android.content.pm.PackageManager");
|
|
55
|
+
PackageManager.getPackageInfo.overload('java.lang.String', 'int').implementation = function(pkg, flags) {
|
|
56
|
+
if (pkg == "de.robv.android.xposed.installer" ||
|
|
57
|
+
pkg.includes("magisk") || pkg.includes("frida")) {
|
|
58
|
+
throw Java.use("android.content.pm.PackageManager$NameNotFoundException").$new();
|
|
59
|
+
}
|
|
60
|
+
return this.getPackageInfo(pkg, flags);
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## iOS 越狱检测绕过
|
|
66
|
+
|
|
67
|
+
### 多层 Frida Hook
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
// 1. 文件系统检测
|
|
71
|
+
var NSFileManager = ObjC.classes.NSFileManager;
|
|
72
|
+
var paths = [
|
|
73
|
+
"/Applications/Cydia.app", "/var/lib/apt", "/bin/bash",
|
|
74
|
+
"/usr/sbin/sshd", "/etc/apt", "/Library/MobileSubstrate"
|
|
75
|
+
];
|
|
76
|
+
// Hook fileExistsAtPath 返回 NO
|
|
77
|
+
|
|
78
|
+
// 2. fork 检测(沙箱内禁止)
|
|
79
|
+
var fork_ptr = Module.findExportByName("libSystem.B.dylib", "fork");
|
|
80
|
+
Interceptor.replace(fork_ptr, new NativeCallback(function() {
|
|
81
|
+
return -1;
|
|
82
|
+
}, 'int', []));
|
|
83
|
+
|
|
84
|
+
// 3. Scheme 检测
|
|
85
|
+
// 通过 MobileSubstrate hook
|
|
86
|
+
var LSApplicationWorkspace = ObjC.classes.LSApplicationWorkspace;
|
|
87
|
+
// Hook defaultWorkspace → canOpenURL → 对 cydia:// 返回 NO
|
|
88
|
+
|
|
89
|
+
// 4. 签名检测
|
|
90
|
+
var MISValidateSignature = Module.findExportByName(null, "MISValidateSignature");
|
|
91
|
+
Interceptor.attach(MISValidateSignature, {
|
|
92
|
+
onLeave: function(retval) { retval.replace(0); }
|
|
93
|
+
});
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 反调试绕过
|
|
97
|
+
|
|
98
|
+
### Android
|
|
99
|
+
|
|
100
|
+
```javascript
|
|
101
|
+
// 1. ptrace 自身 → 防止附加
|
|
102
|
+
// Native: ptrace(PTRACE_TRACEME, 0, NULL, 0)
|
|
103
|
+
// 绕过: Hook ptrace → 返回 0
|
|
104
|
+
|
|
105
|
+
// 2. TracerPid 检测
|
|
106
|
+
// /proc/self/status → TracerPid: 0
|
|
107
|
+
var fopen = Module.findExportByName(null, "fopen");
|
|
108
|
+
Interceptor.attach(fopen, {
|
|
109
|
+
onEnter: function(args) {
|
|
110
|
+
this.path = Memory.readUtf8String(args[0]);
|
|
111
|
+
},
|
|
112
|
+
onLeave: function(retval) {
|
|
113
|
+
if (this.path && this.path.includes("status")) {
|
|
114
|
+
// 修改返回的 FILE*,返回伪造内容
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// 3. isDebuggerConnected (Java)
|
|
120
|
+
var Debug = Java.use("android.os.Debug");
|
|
121
|
+
Debug.isDebuggerConnected.implementation = function() { return false; };
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### iOS
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
// 1. PT_DENY_ATTACH
|
|
128
|
+
// ptrace(PT_DENY_ATTACH, 0, NULL, 0) → 防止调试器附加
|
|
129
|
+
var ptrace = Module.findExportByName(null, "ptrace");
|
|
130
|
+
Interceptor.replace(ptrace, new NativeCallback(function(request, pid, addr, data) {
|
|
131
|
+
if (request == 31) return 0; // PT_DENY_ATTACH → 忽略
|
|
132
|
+
return ptrace(request, pid, addr, data);
|
|
133
|
+
}, 'int', ['int', 'int', 'pointer', 'int']));
|
|
134
|
+
|
|
135
|
+
// 2. sysctl 检测
|
|
136
|
+
var sysctl = Module.findExportByName(null, "sysctl");
|
|
137
|
+
Interceptor.attach(sysctl, {
|
|
138
|
+
onLeave: function(retval) {
|
|
139
|
+
// 修改 kinfo_proc 的 p_flag 字段 → 清除 P_TRACED
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// 3. getppid 检测(检查父进程是否为 launchd)
|
|
144
|
+
// 调试时 getppid() != 1
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## SSL Pinning 绕过
|
|
148
|
+
|
|
149
|
+
### Android 五层绕过
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
层 1 — TrustManager: 接受所有证书
|
|
153
|
+
层 2 — OkHttp CertificatePinner: Hook 清空 pins 列表
|
|
154
|
+
层 3 — WebView SSL Error Handler: 忽略证书错误
|
|
155
|
+
层 4 — Network Security Config: 修改 xml → 信任用户证书
|
|
156
|
+
层 5 — Native SSL (OpenSSL/BoringSSL): Hook SSL_get_verify_result → X509_V_OK
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### iOS 四层绕过
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
层 1 — NSURLSession: Hook SecTrustEvaluate → kSecTrustResultProceed
|
|
163
|
+
层 2 — Alamofire: Hook ServerTrustManager
|
|
164
|
+
层 3 — AFNetworking: Hook AFSecurityPolicy
|
|
165
|
+
层 4 — libcurl: LD_PRELOAD 替换 SSL 验证回调
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 通用 Objection 命令
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Android
|
|
172
|
+
objection -g "com.app" explore
|
|
173
|
+
android sslpinning disable
|
|
174
|
+
# 等价于: 自动 Hook 上述 5 层
|
|
175
|
+
|
|
176
|
+
# iOS
|
|
177
|
+
objection -g "com.app" explore
|
|
178
|
+
ios sslpinning disable
|
|
179
|
+
# 等价于: 自动 Hook 上述 4 层
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Source: OWASP MSTG, Frida CodeShare, objection wiki
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Frida + Objection 深度用法
|
|
2
|
+
|
|
3
|
+
## Frida 核心 API
|
|
4
|
+
|
|
5
|
+
### Java 运行时 (Android)
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
Java.perform(function() {
|
|
9
|
+
// 获取类实例
|
|
10
|
+
var String = Java.use("java.lang.String");
|
|
11
|
+
|
|
12
|
+
// Hook 静态方法
|
|
13
|
+
var System = Java.use("java.lang.System");
|
|
14
|
+
System.getProperty.overload('java.lang.String').implementation = function(key) {
|
|
15
|
+
console.log("System.getProperty: " + key);
|
|
16
|
+
return this.getProperty(key);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// Hook 构造函数
|
|
20
|
+
var File = Java.use("java.io.File");
|
|
21
|
+
File.$init.overload('java.lang.String').implementation = function(path) {
|
|
22
|
+
console.log("File opened: " + path);
|
|
23
|
+
return this.$init(path);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// 枚举已加载类
|
|
27
|
+
Java.enumerateLoadedClasses({
|
|
28
|
+
onMatch: function(className) { console.log(className); },
|
|
29
|
+
onComplete: function() {}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// 修改返回值
|
|
33
|
+
var RootDetector = Java.use("com.app.security.RootDetector");
|
|
34
|
+
RootDetector.isDeviceRooted.implementation = function() {
|
|
35
|
+
return false;
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Native 层 (Android + iOS)
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
// Hook 导出函数
|
|
44
|
+
Interceptor.attach(Module.findExportByName(null, "open"), {
|
|
45
|
+
onEnter: function(args) {
|
|
46
|
+
this.path = Memory.readUtf8String(args[0]);
|
|
47
|
+
},
|
|
48
|
+
onLeave: function(retval) {
|
|
49
|
+
console.log("open(" + this.path + ") = " + retval);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Hook 任意地址(通过偏移)
|
|
54
|
+
var base = Module.findBaseAddress("libnative.so");
|
|
55
|
+
var target = base.add(0x12345);
|
|
56
|
+
Interceptor.attach(target, {
|
|
57
|
+
onEnter: function(args) {
|
|
58
|
+
console.log("Function called from: " + Thread.backtrace(this.context, Backtracer.ACCURATE)
|
|
59
|
+
.map(DebugSymbol.fromAddress).join('\n'));
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// 修改返回值
|
|
64
|
+
Interceptor.attach(Module.findExportByName(null, "strcmp"), {
|
|
65
|
+
onLeave: function(retval) {
|
|
66
|
+
if (retval.toInt32() === 0) return; // strings equal, skip
|
|
67
|
+
// Force match
|
|
68
|
+
retval.replace(0);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### ObjC 运行时 (iOS)
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
// Hook ObjC 方法
|
|
77
|
+
var hook = ObjC.classes.ViewController["- viewDidLoad"];
|
|
78
|
+
Interceptor.attach(hook.implementation, {
|
|
79
|
+
onEnter: function(args) {
|
|
80
|
+
console.log("viewDidLoad called");
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// 枚举所有类
|
|
85
|
+
ObjC.enumerateLoadedClasses({
|
|
86
|
+
onMatch: function(className) { console.log(className); },
|
|
87
|
+
onComplete: function() {}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// 调用 ObjC 方法
|
|
91
|
+
var NSString = ObjC.classes.NSString;
|
|
92
|
+
var str = NSString.stringWithString_("Hello from Frida");
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Objection 命令速查
|
|
96
|
+
|
|
97
|
+
### 通用
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
objection -g "com.app" explore # 启动
|
|
101
|
+
objection -g "com.app" explore -q # 静默启动(只注入不等待)
|
|
102
|
+
objection patchapk --source app.apk # 自动注入 Frida Gadget
|
|
103
|
+
objection signapk --source app.apk # 仅签名
|
|
104
|
+
|
|
105
|
+
# 文件系统
|
|
106
|
+
env # 应用数据目录
|
|
107
|
+
ls # 列出文件
|
|
108
|
+
file download /path/to/file # 下载文件
|
|
109
|
+
file upload local.txt /remote/path # 上传文件
|
|
110
|
+
|
|
111
|
+
# SQLite
|
|
112
|
+
sqlite connect /path/to/db.sqlite
|
|
113
|
+
.tables # 列出表
|
|
114
|
+
select * from users; # 查询
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Android 专用
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
android root disable # 绕过 Root 检测
|
|
121
|
+
android sslpinning disable # 绕过 SSL Pinning
|
|
122
|
+
android hooking list classes # 枚举类
|
|
123
|
+
android hooking list class_methods com.app.Main # 枚举方法
|
|
124
|
+
android hooking watch class com.app.Main # Hook 所有方法
|
|
125
|
+
android intent launch_activity com.app.MainActivity # 启动 Activity
|
|
126
|
+
android heap search instances com.app.User # 堆搜索
|
|
127
|
+
android keystore list # Keystore 条目
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### iOS 专用
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
ios jailbreak disable # 绕过越狱检测
|
|
134
|
+
ios sslpinning disable # 绕过 SSL Pinning
|
|
135
|
+
ios keychain dump # 导出 Keychain
|
|
136
|
+
ios nsuserdefaults get # NSUserDefaults
|
|
137
|
+
ios nsurlcache dump # HTTP 缓存
|
|
138
|
+
ios cookies get # 读取 Cookies
|
|
139
|
+
ios pasteboard monitor # 监听剪贴板
|
|
140
|
+
ios ui dump # UI 层次结构
|
|
141
|
+
ios plist cat Info.plist # 读取 plist
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 免 Root/越狱部署
|
|
145
|
+
|
|
146
|
+
### Android — Frida Gadget 注入
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# 1. 解包 APK
|
|
150
|
+
apktool d app.apk -o app_unpacked
|
|
151
|
+
|
|
152
|
+
# 2. 下载 frida-gadget 并放入 lib 目录
|
|
153
|
+
cp frida-gadget-17.x.x-android-arm64.so \
|
|
154
|
+
app_unpacked/lib/arm64-v8a/libfrida-gadget.so
|
|
155
|
+
|
|
156
|
+
# 3. 在 smali 中注入 System.loadLibrary("frida-gadget")
|
|
157
|
+
# 修改主 Activity 的 onCreate 或 attachBaseContext
|
|
158
|
+
|
|
159
|
+
# 4. 重建并签名
|
|
160
|
+
apktool b app_unpacked -o app_patched.apk
|
|
161
|
+
uber-apk-signer -a app_patched.apk
|
|
162
|
+
|
|
163
|
+
# 5. Objection 自动化
|
|
164
|
+
objection patchapk --source app.apk --skip-resources
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### iOS — Frida Gadget 注入
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# 1. 解密 App Store IPA
|
|
171
|
+
python3 frida-ios-dump.py -u -p com.app.target
|
|
172
|
+
|
|
173
|
+
# 2. 注入 FridaGadget.dylib
|
|
174
|
+
# 修改 Mach-O Load Commands,添加 @executable_path/FridaGadget.dylib
|
|
175
|
+
|
|
176
|
+
# 3. 重签名
|
|
177
|
+
codesign -f -s "Apple Development" Payload/App.app
|
|
178
|
+
|
|
179
|
+
# 4. 通过 Xcode sideload 或 AltStore 安装
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## SSL Pinning 绕过进阶
|
|
183
|
+
|
|
184
|
+
### 多层绕过(Android)
|
|
185
|
+
|
|
186
|
+
```javascript
|
|
187
|
+
// 1. OkHttp CertificatePinner
|
|
188
|
+
var CertificatePinner = Java.use("okhttp3.CertificatePinner");
|
|
189
|
+
CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function() {};
|
|
190
|
+
|
|
191
|
+
// 2. TrustManager 自定义
|
|
192
|
+
var TrustManagerImpl = Java.use("com.android.org.conscrypt.TrustManagerImpl");
|
|
193
|
+
TrustManagerImpl.verifyChain.implementation = function() { return []; };
|
|
194
|
+
|
|
195
|
+
// 3. WebView SSL Error
|
|
196
|
+
var SslErrorHandler = Java.use("android.webkit.SslErrorHandler");
|
|
197
|
+
SslErrorHandler.proceed.implementation = function() { return this.proceed(); };
|
|
198
|
+
|
|
199
|
+
// 4. Network Security Config
|
|
200
|
+
// 需要修改 AndroidManifest.xml → android:networkSecurityConfig="@xml/network_security_config"
|
|
201
|
+
// xml 中添加信任用户证书
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### 多层绕过(iOS)
|
|
205
|
+
|
|
206
|
+
```javascript
|
|
207
|
+
// 1. NSURLSession
|
|
208
|
+
var SecTrustEvaluate = Module.findExportByName("Security", "SecTrustEvaluate");
|
|
209
|
+
Interceptor.replace(SecTrustEvaluate, new NativeCallback(function(trust, result) {
|
|
210
|
+
Memory.writeU32(result, 1); // kSecTrustResultProceed = 1
|
|
211
|
+
return 0; // errSecSuccess
|
|
212
|
+
}, 'int', ['pointer', 'pointer']));
|
|
213
|
+
|
|
214
|
+
// 2. Alamofire
|
|
215
|
+
// Hook ServerTrustManager.evaluate → 始终返回 success
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Source: Frida docs, Objection wiki, OWASP MSTG
|