@ruaruababa/vibe-kit 1.0.0
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/CATALOG.md +317 -0
- package/README.md +121 -0
- package/aliases.json +65 -0
- package/bin/vibe.js +2 -0
- package/bundles.json +265 -0
- package/catalog.json +1560 -0
- package/dist/antigravity-skills/bin/cli.js +438 -0
- package/dist/antigravity-skills/lib/skill-utils.js +158 -0
- package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
- package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
- package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
- package/dist/bin/vibe.js +2 -0
- package/dist/dist/src/cli/index.js +26 -0
- package/dist/lib/skill-utils.js +158 -0
- package/dist/scripts/build-catalog.js +50 -0
- package/dist/scripts/normalize-frontmatter.js +144 -0
- package/dist/scripts/validate-skills.js +56 -0
- package/dist/src/cli/index.js +146 -0
- package/dist/src/types/index.js +13 -0
- package/dist/src/utils/fs.js +1 -0
- package/package.json +43 -0
- package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
- package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
- package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
- package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
- package/skills/agent-orchestrator/SKILL.md +24 -0
- package/skills/ai-engineer/SKILL.md +171 -0
- package/skills/airflow-dag-patterns/SKILL.md +41 -0
- package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
- package/skills/angular-migration/SKILL.md +428 -0
- package/skills/anti-reversing-techniques/SKILL.md +42 -0
- package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
- package/skills/api-design-principles/SKILL.md +37 -0
- package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/skills/api-documenter/SKILL.md +184 -0
- package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
- package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
- package/skills/application-performance-performance-optimization/SKILL.md +154 -0
- package/skills/architect-review/SKILL.md +174 -0
- package/skills/architecture-decision-records/SKILL.md +441 -0
- package/skills/architecture-patterns/SKILL.md +37 -0
- package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
- package/skills/arm-cortex-expert/SKILL.md +306 -0
- package/skills/async-python-patterns/SKILL.md +39 -0
- package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
- package/skills/attack-tree-construction/SKILL.md +38 -0
- package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
- package/skills/auth-implementation-patterns/SKILL.md +39 -0
- package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
- package/skills/backend-architect/SKILL.md +333 -0
- package/skills/backend-development-feature-development/SKILL.md +180 -0
- package/skills/backend-security-coder/SKILL.md +156 -0
- package/skills/backtesting-frameworks/SKILL.md +39 -0
- package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
- package/skills/bash-defensive-patterns/SKILL.md +43 -0
- package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
- package/skills/bash-pro/SKILL.md +310 -0
- package/skills/bats-testing-patterns/SKILL.md +34 -0
- package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
- package/skills/bazel-build-optimization/SKILL.md +397 -0
- package/skills/billing-automation/SKILL.md +42 -0
- package/skills/billing-automation/resources/implementation-playbook.md +544 -0
- package/skills/binary-analysis-patterns/SKILL.md +450 -0
- package/skills/blockchain-developer/SKILL.md +208 -0
- package/skills/business-analyst/SKILL.md +182 -0
- package/skills/c-pro/SKILL.md +56 -0
- package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
- package/skills/c4-code/SKILL.md +244 -0
- package/skills/c4-component/SKILL.md +153 -0
- package/skills/c4-container/SKILL.md +171 -0
- package/skills/c4-context/SKILL.md +150 -0
- package/skills/changelog-automation/SKILL.md +38 -0
- package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
- package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
- package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
- package/skills/clean-markdown/SKILL.md +23 -0
- package/skills/cloud-architect/SKILL.md +135 -0
- package/skills/code-documentation-code-explain/SKILL.md +46 -0
- package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
- package/skills/code-documentation-doc-generate/SKILL.md +48 -0
- package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/code-refactoring-context-restore/SKILL.md +179 -0
- package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
- package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
- package/skills/code-review-ai-ai-review/SKILL.md +450 -0
- package/skills/code-review-excellence/SKILL.md +40 -0
- package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
- package/skills/code-reviewer/SKILL.md +178 -0
- package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
- package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
- package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
- package/skills/competitive-landscape/SKILL.md +34 -0
- package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
- package/skills/comprehensive-review-full-review/SKILL.md +146 -0
- package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
- package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
- package/skills/conductor-implement/SKILL.md +388 -0
- package/skills/conductor-manage/SKILL.md +39 -0
- package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
- package/skills/conductor-new-track/SKILL.md +433 -0
- package/skills/conductor-revert/SKILL.md +372 -0
- package/skills/conductor-setup/SKILL.md +426 -0
- package/skills/conductor-status/SKILL.md +338 -0
- package/skills/conductor-validator/SKILL.md +62 -0
- package/skills/content-marketer/SKILL.md +170 -0
- package/skills/context-driven-development/SKILL.md +400 -0
- package/skills/context-management-context-restore/SKILL.md +179 -0
- package/skills/context-management-context-save/SKILL.md +177 -0
- package/skills/context-manager/SKILL.md +185 -0
- package/skills/cost-optimization/SKILL.md +286 -0
- package/skills/cpp-pro/SKILL.md +59 -0
- package/skills/cqrs-implementation/SKILL.md +35 -0
- package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
- package/skills/csharp-pro/SKILL.md +59 -0
- package/skills/customer-support/SKILL.md +170 -0
- package/skills/data-engineer/SKILL.md +224 -0
- package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
- package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
- package/skills/data-quality-frameworks/SKILL.md +40 -0
- package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
- package/skills/data-scientist/SKILL.md +199 -0
- package/skills/data-storytelling/SKILL.md +465 -0
- package/skills/database-admin/SKILL.md +165 -0
- package/skills/database-architect/SKILL.md +268 -0
- package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
- package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
- package/skills/database-migration/SKILL.md +436 -0
- package/skills/database-migrations-migration-observability/SKILL.md +420 -0
- package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
- package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
- package/skills/database-optimizer/SKILL.md +167 -0
- package/skills/dbt-transformation-patterns/SKILL.md +34 -0
- package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
- package/skills/debugger/SKILL.md +49 -0
- package/skills/debugging-strategies/SKILL.md +34 -0
- package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
- package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
- package/skills/defi-protocol-templates/SKILL.md +466 -0
- package/skills/dependency-management-deps-audit/SKILL.md +44 -0
- package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/dependency-upgrade/SKILL.md +421 -0
- package/skills/deployment-engineer/SKILL.md +170 -0
- package/skills/deployment-pipeline-design/SKILL.md +371 -0
- package/skills/deployment-validation-config-validate/SKILL.md +496 -0
- package/skills/devops-troubleshooter/SKILL.md +161 -0
- package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
- package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
- package/skills/distributed-tracing/SKILL.md +450 -0
- package/skills/django-pro/SKILL.md +180 -0
- package/skills/docs-architect/SKILL.md +98 -0
- package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
- package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/dotnet-architect/SKILL.md +197 -0
- package/skills/dotnet-backend-patterns/SKILL.md +37 -0
- package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
- package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
- package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
- package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
- package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
- package/skills/dummy-skill/SKILL.md +5 -0
- package/skills/dx-optimizer/SKILL.md +83 -0
- package/skills/e2e-testing-patterns/SKILL.md +41 -0
- package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
- package/skills/elixir-pro/SKILL.md +59 -0
- package/skills/embedding-strategies/SKILL.md +491 -0
- package/skills/employment-contract-templates/SKILL.md +39 -0
- package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
- package/skills/error-debugging-error-analysis/SKILL.md +47 -0
- package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-debugging-error-trace/SKILL.md +43 -0
- package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
- package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
- package/skills/error-detective/SKILL.md +53 -0
- package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
- package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
- package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
- package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
- package/skills/error-handling-patterns/SKILL.md +35 -0
- package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
- package/skills/event-sourcing-architect/SKILL.md +58 -0
- package/skills/event-store-design/SKILL.md +449 -0
- package/skills/fastapi-pro/SKILL.md +192 -0
- package/skills/fastapi-templates/SKILL.md +32 -0
- package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
- package/skills/final-test/SKILL.md +5 -0
- package/skills/firmware-analyst/SKILL.md +320 -0
- package/skills/flutter-expert/SKILL.md +200 -0
- package/skills/framework-migration-code-migrate/SKILL.md +48 -0
- package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
- package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
- package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
- package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
- package/skills/frontend-developer/SKILL.md +171 -0
- package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
- package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
- package/skills/frontend-security-coder/SKILL.md +170 -0
- package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
- package/skills/gdpr-data-handling/SKILL.md +33 -0
- package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
- package/skills/git-advanced-workflows/SKILL.md +412 -0
- package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
- package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
- package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
- package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
- package/skills/github-actions-templates/SKILL.md +345 -0
- package/skills/gitlab-ci-patterns/SKILL.md +283 -0
- package/skills/gitops-workflow/SKILL.md +303 -0
- package/skills/gitops-workflow/references/argocd-setup.md +134 -0
- package/skills/gitops-workflow/references/sync-policies.md +131 -0
- package/skills/go-concurrency-patterns/SKILL.md +33 -0
- package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
- package/skills/godot-gdscript-patterns/SKILL.md +33 -0
- package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
- package/skills/golang-pro/SKILL.md +179 -0
- package/skills/grafana-dashboards/SKILL.md +381 -0
- package/skills/graphql-architect/SKILL.md +182 -0
- package/skills/haskell-pro/SKILL.md +56 -0
- package/skills/helm-chart-scaffolding/SKILL.md +34 -0
- package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
- package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
- package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/skills/hr-pro/SKILL.md +126 -0
- package/skills/hybrid-cloud-architect/SKILL.md +168 -0
- package/skills/hybrid-cloud-networking/SKILL.md +238 -0
- package/skills/hybrid-search-implementation/SKILL.md +32 -0
- package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
- package/skills/incident-responder/SKILL.md +213 -0
- package/skills/incident-response-incident-response/SKILL.md +168 -0
- package/skills/incident-response-smart-fix/SKILL.md +29 -0
- package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
- package/skills/incident-runbook-templates/SKILL.md +395 -0
- package/skills/ios-developer/SKILL.md +219 -0
- package/skills/istio-traffic-management/SKILL.md +337 -0
- package/skills/java-pro/SKILL.md +177 -0
- package/skills/javascript-pro/SKILL.md +57 -0
- package/skills/javascript-testing-patterns/SKILL.md +35 -0
- package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
- package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
- package/skills/julia-pro/SKILL.md +209 -0
- package/skills/k8s-manifest-generator/SKILL.md +35 -0
- package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
- package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
- package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
- package/skills/k8s-security-policies/SKILL.md +346 -0
- package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
- package/skills/kpi-dashboard-design/SKILL.md +440 -0
- package/skills/kubernetes-architect/SKILL.md +170 -0
- package/skills/langchain-architecture/SKILL.md +350 -0
- package/skills/legacy-modernizer/SKILL.md +53 -0
- package/skills/legal-advisor/SKILL.md +70 -0
- package/skills/linkerd-patterns/SKILL.md +321 -0
- package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
- package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
- package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
- package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
- package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
- package/skills/llm-evaluation/SKILL.md +483 -0
- package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
- package/skills/malware-analyst/SKILL.md +247 -0
- package/skills/market-sizing-analysis/SKILL.md +425 -0
- package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
- package/skills/market-sizing-analysis/references/data-sources.md +360 -0
- package/skills/memory-forensics/SKILL.md +491 -0
- package/skills/memory-safety-patterns/SKILL.md +33 -0
- package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
- package/skills/mermaid-expert/SKILL.md +59 -0
- package/skills/microservices-patterns/SKILL.md +35 -0
- package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
- package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
- package/skills/ml-engineer/SKILL.md +168 -0
- package/skills/ml-pipeline-workflow/SKILL.md +257 -0
- package/skills/mlops-engineer/SKILL.md +219 -0
- package/skills/mobile-developer/SKILL.md +205 -0
- package/skills/mobile-security-coder/SKILL.md +184 -0
- package/skills/modern-javascript-patterns/SKILL.md +35 -0
- package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
- package/skills/monorepo-architect/SKILL.md +61 -0
- package/skills/monorepo-management/SKILL.md +35 -0
- package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
- package/skills/mtls-configuration/SKILL.md +359 -0
- package/skills/multi-cloud-architecture/SKILL.md +189 -0
- package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
- package/skills/network-engineer/SKILL.md +169 -0
- package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
- package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
- package/skills/nft-standards/SKILL.md +395 -0
- package/skills/node-expert/SKILL.md +23 -0
- package/skills/nodejs-backend-patterns/SKILL.md +35 -0
- package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/skills/nx-workspace-patterns/SKILL.md +464 -0
- package/skills/observability-engineer/SKILL.md +237 -0
- package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
- package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
- package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
- package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
- package/skills/on-call-handoff-patterns/SKILL.md +453 -0
- package/skills/openapi-spec-generation/SKILL.md +33 -0
- package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
- package/skills/payment-integration/SKILL.md +77 -0
- package/skills/paypal-integration/SKILL.md +479 -0
- package/skills/pci-compliance/SKILL.md +478 -0
- package/skills/performance-engineer/SKILL.md +180 -0
- package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
- package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
- package/skills/php-pro/SKILL.md +63 -0
- package/skills/posix-shell-pro/SKILL.md +304 -0
- package/skills/postgresql/SKILL.md +230 -0
- package/skills/postmortem-writing/SKILL.md +386 -0
- package/skills/projection-patterns/SKILL.md +33 -0
- package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
- package/skills/prometheus-configuration/SKILL.md +404 -0
- package/skills/prompt-engineer/SKILL.md +272 -0
- package/skills/prompt-engineering-patterns/SKILL.md +213 -0
- package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
- package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
- package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
- package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
- package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
- package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
- package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/skills/protocol-reverse-engineering/SKILL.md +29 -0
- package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
- package/skills/python-development-python-scaffold/SKILL.md +331 -0
- package/skills/python-packaging/SKILL.md +36 -0
- package/skills/python-packaging/resources/implementation-playbook.md +869 -0
- package/skills/python-performance-optimization/SKILL.md +36 -0
- package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
- package/skills/python-pro/SKILL.md +158 -0
- package/skills/python-testing-patterns/SKILL.md +37 -0
- package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
- package/skills/quant-analyst/SKILL.md +53 -0
- package/skills/rag-implementation/SKILL.md +421 -0
- package/skills/react-modernization/SKILL.md +34 -0
- package/skills/react-modernization/resources/implementation-playbook.md +512 -0
- package/skills/react-native-architecture/SKILL.md +33 -0
- package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
- package/skills/react-state-management/SKILL.md +441 -0
- package/skills/reference-builder/SKILL.md +188 -0
- package/skills/reverse-engineer/SKILL.md +173 -0
- package/skills/risk-manager/SKILL.md +61 -0
- package/skills/risk-metrics-calculation/SKILL.md +33 -0
- package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
- package/skills/ruby-pro/SKILL.md +56 -0
- package/skills/rust-async-patterns/SKILL.md +33 -0
- package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
- package/skills/rust-pro/SKILL.md +178 -0
- package/skills/saga-orchestration/SKILL.md +496 -0
- package/skills/sales-automator/SKILL.md +55 -0
- package/skills/sast-configuration/SKILL.md +212 -0
- package/skills/scala-pro/SKILL.md +82 -0
- package/skills/screen-reader-testing/SKILL.md +33 -0
- package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
- package/skills/search-specialist/SKILL.md +80 -0
- package/skills/secrets-management/SKILL.md +364 -0
- package/skills/security-auditor/SKILL.md +169 -0
- package/skills/security-compliance-compliance-check/SKILL.md +55 -0
- package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
- package/skills/security-requirement-extraction/SKILL.md +33 -0
- package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
- package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
- package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
- package/skills/security-scanning-security-hardening/SKILL.md +147 -0
- package/skills/security-scanning-security-sast/SKILL.md +495 -0
- package/skills/seo-authority-builder/SKILL.md +136 -0
- package/skills/seo-cannibalization-detector/SKILL.md +123 -0
- package/skills/seo-content-auditor/SKILL.md +83 -0
- package/skills/seo-content-planner/SKILL.md +108 -0
- package/skills/seo-content-refresher/SKILL.md +118 -0
- package/skills/seo-content-writer/SKILL.md +96 -0
- package/skills/seo-keyword-strategist/SKILL.md +95 -0
- package/skills/seo-meta-optimizer/SKILL.md +92 -0
- package/skills/seo-snippet-hunter/SKILL.md +114 -0
- package/skills/seo-structure-architect/SKILL.md +108 -0
- package/skills/service-mesh-expert/SKILL.md +58 -0
- package/skills/service-mesh-observability/SKILL.md +395 -0
- package/skills/shellcheck-configuration/SKILL.md +466 -0
- package/skills/similarity-search-patterns/SKILL.md +33 -0
- package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
- package/skills/slo-implementation/SKILL.md +341 -0
- package/skills/solidity-security/SKILL.md +34 -0
- package/skills/solidity-security/resources/implementation-playbook.md +524 -0
- package/skills/spark-optimization/SKILL.md +427 -0
- package/skills/sql-optimization-patterns/SKILL.md +35 -0
- package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
- package/skills/sql-pro/SKILL.md +173 -0
- package/skills/startup-analyst/SKILL.md +328 -0
- package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
- package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
- package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
- package/skills/startup-financial-modeling/SKILL.md +467 -0
- package/skills/startup-metrics-framework/SKILL.md +34 -0
- package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
- package/skills/stride-analysis-patterns/SKILL.md +33 -0
- package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
- package/skills/stripe-integration/SKILL.md +454 -0
- package/skills/systems-programming-rust-project/SKILL.md +440 -0
- package/skills/tailwind-design-system/SKILL.md +33 -0
- package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
- package/skills/tdd-orchestrator/SKILL.md +205 -0
- package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
- package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
- package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
- package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
- package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
- package/skills/team-collaboration-issue/SKILL.md +37 -0
- package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
- package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
- package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
- package/skills/team-composition-analysis/SKILL.md +413 -0
- package/skills/temporal-python-pro/SKILL.md +370 -0
- package/skills/temporal-python-testing/SKILL.md +170 -0
- package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
- package/skills/temporal-python-testing/resources/local-setup.md +553 -0
- package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
- package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
- package/skills/terraform-module-library/SKILL.md +261 -0
- package/skills/terraform-module-library/references/aws-modules.md +63 -0
- package/skills/terraform-specialist/SKILL.md +166 -0
- package/skills/test-automator/SKILL.md +224 -0
- package/skills/threat-mitigation-mapping/SKILL.md +33 -0
- package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
- package/skills/threat-modeling-expert/SKILL.md +60 -0
- package/skills/track-management/SKILL.md +38 -0
- package/skills/track-management/resources/implementation-playbook.md +591 -0
- package/skills/turborepo-caching/SKILL.md +419 -0
- package/skills/tutorial-engineer/SKILL.md +139 -0
- package/skills/typescript-advanced-types/SKILL.md +35 -0
- package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
- package/skills/typescript-pro/SKILL.md +55 -0
- package/skills/ui-minimal/SKILL.md +23 -0
- package/skills/ui-ux-designer/SKILL.md +209 -0
- package/skills/ui-visual-validator/SKILL.md +214 -0
- package/skills/unit-testing-test-generate/SKILL.md +319 -0
- package/skills/unity-developer/SKILL.md +230 -0
- package/skills/unity-ecs-patterns/SKILL.md +33 -0
- package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
- package/skills/uv-package-manager/SKILL.md +37 -0
- package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
- package/skills/vector-database-engineer/SKILL.md +60 -0
- package/skills/vector-index-tuning/SKILL.md +42 -0
- package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
- package/skills/wcag-audit-patterns/SKILL.md +41 -0
- package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
- package/skills/web3-testing/SKILL.md +427 -0
- package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
- package/skills/workflow-patterns/SKILL.md +38 -0
- package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
# Anti-Reversing Techniques Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
# Anti-Reversing Techniques
|
|
6
|
+
|
|
7
|
+
Understanding protection mechanisms encountered during authorized software analysis, security research, and malware analysis. This knowledge helps analysts bypass protections to complete legitimate analysis tasks.
|
|
8
|
+
|
|
9
|
+
## Anti-Debugging Techniques
|
|
10
|
+
|
|
11
|
+
### Windows Anti-Debugging
|
|
12
|
+
|
|
13
|
+
#### API-Based Detection
|
|
14
|
+
|
|
15
|
+
```c
|
|
16
|
+
// IsDebuggerPresent
|
|
17
|
+
if (IsDebuggerPresent()) {
|
|
18
|
+
exit(1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// CheckRemoteDebuggerPresent
|
|
22
|
+
BOOL debugged = FALSE;
|
|
23
|
+
CheckRemoteDebuggerPresent(GetCurrentProcess(), &debugged);
|
|
24
|
+
if (debugged) exit(1);
|
|
25
|
+
|
|
26
|
+
// NtQueryInformationProcess
|
|
27
|
+
typedef NTSTATUS (NTAPI *pNtQueryInformationProcess)(
|
|
28
|
+
HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG);
|
|
29
|
+
|
|
30
|
+
DWORD debugPort = 0;
|
|
31
|
+
NtQueryInformationProcess(
|
|
32
|
+
GetCurrentProcess(),
|
|
33
|
+
ProcessDebugPort, // 7
|
|
34
|
+
&debugPort,
|
|
35
|
+
sizeof(debugPort),
|
|
36
|
+
NULL
|
|
37
|
+
);
|
|
38
|
+
if (debugPort != 0) exit(1);
|
|
39
|
+
|
|
40
|
+
// Debug flags
|
|
41
|
+
DWORD debugFlags = 0;
|
|
42
|
+
NtQueryInformationProcess(
|
|
43
|
+
GetCurrentProcess(),
|
|
44
|
+
ProcessDebugFlags, // 0x1F
|
|
45
|
+
&debugFlags,
|
|
46
|
+
sizeof(debugFlags),
|
|
47
|
+
NULL
|
|
48
|
+
);
|
|
49
|
+
if (debugFlags == 0) exit(1); // 0 means being debugged
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Bypass Approaches:**
|
|
53
|
+
```python
|
|
54
|
+
# x64dbg: ScyllaHide plugin
|
|
55
|
+
# Patches common anti-debug checks
|
|
56
|
+
|
|
57
|
+
# Manual patching in debugger:
|
|
58
|
+
# - Set IsDebuggerPresent return to 0
|
|
59
|
+
# - Patch PEB.BeingDebugged to 0
|
|
60
|
+
# - Hook NtQueryInformationProcess
|
|
61
|
+
|
|
62
|
+
# IDAPython: Patch checks
|
|
63
|
+
ida_bytes.patch_byte(check_addr, 0x90) # NOP
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
#### PEB-Based Detection
|
|
67
|
+
|
|
68
|
+
```c
|
|
69
|
+
// Direct PEB access
|
|
70
|
+
#ifdef _WIN64
|
|
71
|
+
PPEB peb = (PPEB)__readgsqword(0x60);
|
|
72
|
+
#else
|
|
73
|
+
PPEB peb = (PPEB)__readfsdword(0x30);
|
|
74
|
+
#endif
|
|
75
|
+
|
|
76
|
+
// BeingDebugged flag
|
|
77
|
+
if (peb->BeingDebugged) exit(1);
|
|
78
|
+
|
|
79
|
+
// NtGlobalFlag
|
|
80
|
+
// Debugged: 0x70 (FLG_HEAP_ENABLE_TAIL_CHECK |
|
|
81
|
+
// FLG_HEAP_ENABLE_FREE_CHECK |
|
|
82
|
+
// FLG_HEAP_VALIDATE_PARAMETERS)
|
|
83
|
+
if (peb->NtGlobalFlag & 0x70) exit(1);
|
|
84
|
+
|
|
85
|
+
// Heap flags
|
|
86
|
+
PDWORD heapFlags = (PDWORD)((PBYTE)peb->ProcessHeap + 0x70);
|
|
87
|
+
if (*heapFlags & 0x50000062) exit(1);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Bypass Approaches:**
|
|
91
|
+
```assembly
|
|
92
|
+
; In debugger, modify PEB directly
|
|
93
|
+
; x64dbg: dump at gs:[60] (x64) or fs:[30] (x86)
|
|
94
|
+
; Set BeingDebugged (offset 2) to 0
|
|
95
|
+
; Clear NtGlobalFlag (offset 0xBC for x64)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### Timing-Based Detection
|
|
99
|
+
|
|
100
|
+
```c
|
|
101
|
+
// RDTSC timing
|
|
102
|
+
uint64_t start = __rdtsc();
|
|
103
|
+
// ... some code ...
|
|
104
|
+
uint64_t end = __rdtsc();
|
|
105
|
+
if ((end - start) > THRESHOLD) exit(1);
|
|
106
|
+
|
|
107
|
+
// QueryPerformanceCounter
|
|
108
|
+
LARGE_INTEGER start, end, freq;
|
|
109
|
+
QueryPerformanceFrequency(&freq);
|
|
110
|
+
QueryPerformanceCounter(&start);
|
|
111
|
+
// ... code ...
|
|
112
|
+
QueryPerformanceCounter(&end);
|
|
113
|
+
double elapsed = (double)(end.QuadPart - start.QuadPart) / freq.QuadPart;
|
|
114
|
+
if (elapsed > 0.1) exit(1); // Too slow = debugger
|
|
115
|
+
|
|
116
|
+
// GetTickCount
|
|
117
|
+
DWORD start = GetTickCount();
|
|
118
|
+
// ... code ...
|
|
119
|
+
if (GetTickCount() - start > 1000) exit(1);
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Bypass Approaches:**
|
|
123
|
+
```
|
|
124
|
+
- Use hardware breakpoints instead of software
|
|
125
|
+
- Patch timing checks
|
|
126
|
+
- Use VM with controlled time
|
|
127
|
+
- Hook timing APIs to return consistent values
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### Exception-Based Detection
|
|
131
|
+
|
|
132
|
+
```c
|
|
133
|
+
// SEH-based detection
|
|
134
|
+
__try {
|
|
135
|
+
__asm { int 3 } // Software breakpoint
|
|
136
|
+
}
|
|
137
|
+
__except(EXCEPTION_EXECUTE_HANDLER) {
|
|
138
|
+
// Normal execution: exception caught
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
// Debugger ate the exception
|
|
142
|
+
exit(1);
|
|
143
|
+
|
|
144
|
+
// VEH-based detection
|
|
145
|
+
LONG CALLBACK VectoredHandler(PEXCEPTION_POINTERS ep) {
|
|
146
|
+
if (ep->ExceptionRecord->ExceptionCode == EXCEPTION_BREAKPOINT) {
|
|
147
|
+
ep->ContextRecord->Rip++; // Skip INT3
|
|
148
|
+
return EXCEPTION_CONTINUE_EXECUTION;
|
|
149
|
+
}
|
|
150
|
+
return EXCEPTION_CONTINUE_SEARCH;
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Linux Anti-Debugging
|
|
155
|
+
|
|
156
|
+
```c
|
|
157
|
+
// ptrace self-trace
|
|
158
|
+
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) == -1) {
|
|
159
|
+
// Already being traced
|
|
160
|
+
exit(1);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// /proc/self/status
|
|
164
|
+
FILE *f = fopen("/proc/self/status", "r");
|
|
165
|
+
char line[256];
|
|
166
|
+
while (fgets(line, sizeof(line), f)) {
|
|
167
|
+
if (strncmp(line, "TracerPid:", 10) == 0) {
|
|
168
|
+
int tracer_pid = atoi(line + 10);
|
|
169
|
+
if (tracer_pid != 0) exit(1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Parent process check
|
|
174
|
+
if (getppid() != 1 && strcmp(get_process_name(getppid()), "bash") != 0) {
|
|
175
|
+
// Unusual parent (might be debugger)
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Bypass Approaches:**
|
|
180
|
+
```bash
|
|
181
|
+
# LD_PRELOAD to hook ptrace
|
|
182
|
+
# Compile: gcc -shared -fPIC -o hook.so hook.c
|
|
183
|
+
long ptrace(int request, ...) {
|
|
184
|
+
return 0; // Always succeed
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
# Usage
|
|
188
|
+
LD_PRELOAD=./hook.so ./target
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Anti-VM Detection
|
|
192
|
+
|
|
193
|
+
### Hardware Fingerprinting
|
|
194
|
+
|
|
195
|
+
```c
|
|
196
|
+
// CPUID-based detection
|
|
197
|
+
int cpuid_info[4];
|
|
198
|
+
__cpuid(cpuid_info, 1);
|
|
199
|
+
// Check hypervisor bit (bit 31 of ECX)
|
|
200
|
+
if (cpuid_info[2] & (1 << 31)) {
|
|
201
|
+
// Running in hypervisor
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// CPUID brand string
|
|
205
|
+
__cpuid(cpuid_info, 0x40000000);
|
|
206
|
+
char vendor[13] = {0};
|
|
207
|
+
memcpy(vendor, &cpuid_info[1], 12);
|
|
208
|
+
// "VMwareVMware", "Microsoft Hv", "KVMKVMKVM", "VBoxVBoxVBox"
|
|
209
|
+
|
|
210
|
+
// MAC address prefix
|
|
211
|
+
// VMware: 00:0C:29, 00:50:56
|
|
212
|
+
// VirtualBox: 08:00:27
|
|
213
|
+
// Hyper-V: 00:15:5D
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Registry/File Detection
|
|
217
|
+
|
|
218
|
+
```c
|
|
219
|
+
// Windows registry keys
|
|
220
|
+
// HKLM\SOFTWARE\VMware, Inc.\VMware Tools
|
|
221
|
+
// HKLM\SOFTWARE\Oracle\VirtualBox Guest Additions
|
|
222
|
+
// HKLM\HARDWARE\ACPI\DSDT\VBOX__
|
|
223
|
+
|
|
224
|
+
// Files
|
|
225
|
+
// C:\Windows\System32\drivers\vmmouse.sys
|
|
226
|
+
// C:\Windows\System32\drivers\vmhgfs.sys
|
|
227
|
+
// C:\Windows\System32\drivers\VBoxMouse.sys
|
|
228
|
+
|
|
229
|
+
// Processes
|
|
230
|
+
// vmtoolsd.exe, vmwaretray.exe
|
|
231
|
+
// VBoxService.exe, VBoxTray.exe
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Timing-Based VM Detection
|
|
235
|
+
|
|
236
|
+
```c
|
|
237
|
+
// VM exits cause timing anomalies
|
|
238
|
+
uint64_t start = __rdtsc();
|
|
239
|
+
__cpuid(cpuid_info, 0); // Causes VM exit
|
|
240
|
+
uint64_t end = __rdtsc();
|
|
241
|
+
if ((end - start) > 500) {
|
|
242
|
+
// Likely in VM (CPUID takes longer)
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Bypass Approaches:**
|
|
247
|
+
```
|
|
248
|
+
- Use bare-metal analysis environment
|
|
249
|
+
- Harden VM (remove guest tools, change MAC)
|
|
250
|
+
- Patch detection code
|
|
251
|
+
- Use specialized analysis VMs (FLARE-VM)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Code Obfuscation
|
|
255
|
+
|
|
256
|
+
### Control Flow Obfuscation
|
|
257
|
+
|
|
258
|
+
#### Control Flow Flattening
|
|
259
|
+
|
|
260
|
+
```c
|
|
261
|
+
// Original
|
|
262
|
+
if (cond) {
|
|
263
|
+
func_a();
|
|
264
|
+
} else {
|
|
265
|
+
func_b();
|
|
266
|
+
}
|
|
267
|
+
func_c();
|
|
268
|
+
|
|
269
|
+
// Flattened
|
|
270
|
+
int state = 0;
|
|
271
|
+
while (1) {
|
|
272
|
+
switch (state) {
|
|
273
|
+
case 0:
|
|
274
|
+
state = cond ? 1 : 2;
|
|
275
|
+
break;
|
|
276
|
+
case 1:
|
|
277
|
+
func_a();
|
|
278
|
+
state = 3;
|
|
279
|
+
break;
|
|
280
|
+
case 2:
|
|
281
|
+
func_b();
|
|
282
|
+
state = 3;
|
|
283
|
+
break;
|
|
284
|
+
case 3:
|
|
285
|
+
func_c();
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Analysis Approach:**
|
|
292
|
+
- Identify state variable
|
|
293
|
+
- Map state transitions
|
|
294
|
+
- Reconstruct original flow
|
|
295
|
+
- Tools: D-810 (IDA), SATURN
|
|
296
|
+
|
|
297
|
+
#### Opaque Predicates
|
|
298
|
+
|
|
299
|
+
```c
|
|
300
|
+
// Always true, but complex to analyze
|
|
301
|
+
int x = rand();
|
|
302
|
+
if ((x * x) >= 0) { // Always true
|
|
303
|
+
real_code();
|
|
304
|
+
} else {
|
|
305
|
+
junk_code(); // Dead code
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// Always false
|
|
309
|
+
if ((x * (x + 1)) % 2 == 1) { // Product of consecutive = even
|
|
310
|
+
junk_code();
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Analysis Approach:**
|
|
315
|
+
- Identify constant expressions
|
|
316
|
+
- Symbolic execution to prove predicates
|
|
317
|
+
- Pattern matching for known opaque predicates
|
|
318
|
+
|
|
319
|
+
### Data Obfuscation
|
|
320
|
+
|
|
321
|
+
#### String Encryption
|
|
322
|
+
|
|
323
|
+
```c
|
|
324
|
+
// XOR encryption
|
|
325
|
+
char decrypt_string(char *enc, int len, char key) {
|
|
326
|
+
char *dec = malloc(len + 1);
|
|
327
|
+
for (int i = 0; i < len; i++) {
|
|
328
|
+
dec[i] = enc[i] ^ key;
|
|
329
|
+
}
|
|
330
|
+
dec[len] = 0;
|
|
331
|
+
return dec;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// Stack strings
|
|
335
|
+
char url[20];
|
|
336
|
+
url[0] = 'h'; url[1] = 't'; url[2] = 't'; url[3] = 'p';
|
|
337
|
+
url[4] = ':'; url[5] = '/'; url[6] = '/';
|
|
338
|
+
// ...
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
**Analysis Approach:**
|
|
342
|
+
```python
|
|
343
|
+
# FLOSS for automatic string deobfuscation
|
|
344
|
+
floss malware.exe
|
|
345
|
+
|
|
346
|
+
# IDAPython string decryption
|
|
347
|
+
def decrypt_xor(ea, length, key):
|
|
348
|
+
result = ""
|
|
349
|
+
for i in range(length):
|
|
350
|
+
byte = ida_bytes.get_byte(ea + i)
|
|
351
|
+
result += chr(byte ^ key)
|
|
352
|
+
return result
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
#### API Obfuscation
|
|
356
|
+
|
|
357
|
+
```c
|
|
358
|
+
// Dynamic API resolution
|
|
359
|
+
typedef HANDLE (WINAPI *pCreateFileW)(LPCWSTR, DWORD, DWORD,
|
|
360
|
+
LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
|
|
361
|
+
|
|
362
|
+
HMODULE kernel32 = LoadLibraryA("kernel32.dll");
|
|
363
|
+
pCreateFileW myCreateFile = (pCreateFileW)GetProcAddress(
|
|
364
|
+
kernel32, "CreateFileW");
|
|
365
|
+
|
|
366
|
+
// API hashing
|
|
367
|
+
DWORD hash_api(char *name) {
|
|
368
|
+
DWORD hash = 0;
|
|
369
|
+
while (*name) {
|
|
370
|
+
hash = ((hash >> 13) | (hash << 19)) + *name++;
|
|
371
|
+
}
|
|
372
|
+
return hash;
|
|
373
|
+
}
|
|
374
|
+
// Resolve by hash comparison instead of string
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**Analysis Approach:**
|
|
378
|
+
- Identify hash algorithm
|
|
379
|
+
- Build hash database of known APIs
|
|
380
|
+
- Use HashDB plugin for IDA
|
|
381
|
+
- Dynamic analysis to resolve at runtime
|
|
382
|
+
|
|
383
|
+
### Instruction-Level Obfuscation
|
|
384
|
+
|
|
385
|
+
#### Dead Code Insertion
|
|
386
|
+
|
|
387
|
+
```asm
|
|
388
|
+
; Original
|
|
389
|
+
mov eax, 1
|
|
390
|
+
|
|
391
|
+
; With dead code
|
|
392
|
+
push ebx ; Dead
|
|
393
|
+
mov eax, 1
|
|
394
|
+
pop ebx ; Dead
|
|
395
|
+
xor ecx, ecx ; Dead
|
|
396
|
+
add ecx, ecx ; Dead
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
#### Instruction Substitution
|
|
400
|
+
|
|
401
|
+
```asm
|
|
402
|
+
; Original: xor eax, eax (set to 0)
|
|
403
|
+
; Substitutions:
|
|
404
|
+
sub eax, eax
|
|
405
|
+
mov eax, 0
|
|
406
|
+
and eax, 0
|
|
407
|
+
lea eax, [0]
|
|
408
|
+
|
|
409
|
+
; Original: mov eax, 1
|
|
410
|
+
; Substitutions:
|
|
411
|
+
xor eax, eax
|
|
412
|
+
inc eax
|
|
413
|
+
|
|
414
|
+
push 1
|
|
415
|
+
pop eax
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
## Packing and Encryption
|
|
419
|
+
|
|
420
|
+
### Common Packers
|
|
421
|
+
|
|
422
|
+
```
|
|
423
|
+
UPX - Open source, easy to unpack
|
|
424
|
+
Themida - Commercial, VM-based protection
|
|
425
|
+
VMProtect - Commercial, code virtualization
|
|
426
|
+
ASPack - Compression packer
|
|
427
|
+
PECompact - Compression packer
|
|
428
|
+
Enigma - Commercial protector
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Unpacking Methodology
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
1. Identify packer (DIE, Exeinfo PE, PEiD)
|
|
435
|
+
|
|
436
|
+
2. Static unpacking (if known packer):
|
|
437
|
+
- UPX: upx -d packed.exe
|
|
438
|
+
- Use existing unpackers
|
|
439
|
+
|
|
440
|
+
3. Dynamic unpacking:
|
|
441
|
+
a. Find Original Entry Point (OEP)
|
|
442
|
+
b. Set breakpoint on OEP
|
|
443
|
+
c. Dump memory when OEP reached
|
|
444
|
+
d. Fix import table (Scylla, ImpREC)
|
|
445
|
+
|
|
446
|
+
4. OEP finding techniques:
|
|
447
|
+
- Hardware breakpoint on stack (ESP trick)
|
|
448
|
+
- Break on common API calls (GetCommandLineA)
|
|
449
|
+
- Trace and look for typical entry patterns
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### Manual Unpacking Example
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
1. Load packed binary in x64dbg
|
|
456
|
+
2. Note entry point (packer stub)
|
|
457
|
+
3. Use ESP trick:
|
|
458
|
+
- Run to entry
|
|
459
|
+
- Set hardware breakpoint on [ESP]
|
|
460
|
+
- Run until breakpoint hits (after PUSHAD/POPAD)
|
|
461
|
+
4. Look for JMP to OEP
|
|
462
|
+
5. At OEP, use Scylla to:
|
|
463
|
+
- Dump process
|
|
464
|
+
- Find imports (IAT autosearch)
|
|
465
|
+
- Fix dump
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
## Virtualization-Based Protection
|
|
469
|
+
|
|
470
|
+
### Code Virtualization
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
Original x86 code is converted to custom bytecode
|
|
474
|
+
interpreted by embedded VM at runtime.
|
|
475
|
+
|
|
476
|
+
Original: VM Protected:
|
|
477
|
+
mov eax, 1 push vm_context
|
|
478
|
+
add eax, 2 call vm_entry
|
|
479
|
+
; VM interprets bytecode
|
|
480
|
+
; equivalent to original
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### Analysis Approaches
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
1. Identify VM components:
|
|
487
|
+
- VM entry (dispatcher)
|
|
488
|
+
- Handler table
|
|
489
|
+
- Bytecode location
|
|
490
|
+
- Virtual registers/stack
|
|
491
|
+
|
|
492
|
+
2. Trace execution:
|
|
493
|
+
- Log handler calls
|
|
494
|
+
- Map bytecode to operations
|
|
495
|
+
- Understand instruction set
|
|
496
|
+
|
|
497
|
+
3. Lifting/devirtualization:
|
|
498
|
+
- Map VM instructions back to native
|
|
499
|
+
- Tools: VMAttack, SATURN, NoVmp
|
|
500
|
+
|
|
501
|
+
4. Symbolic execution:
|
|
502
|
+
- Analyze VM semantically
|
|
503
|
+
- angr, Triton
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
## Bypass Strategies Summary
|
|
507
|
+
|
|
508
|
+
### General Principles
|
|
509
|
+
|
|
510
|
+
1. **Understand the protection**: Identify what technique is used
|
|
511
|
+
2. **Find the check**: Locate protection code in binary
|
|
512
|
+
3. **Patch or hook**: Modify check to always pass
|
|
513
|
+
4. **Use appropriate tools**: ScyllaHide, x64dbg plugins
|
|
514
|
+
5. **Document findings**: Keep notes on bypassed protections
|
|
515
|
+
|
|
516
|
+
### Tool Recommendations
|
|
517
|
+
|
|
518
|
+
```
|
|
519
|
+
Anti-debug bypass: ScyllaHide, TitanHide
|
|
520
|
+
Unpacking: x64dbg + Scylla, OllyDumpEx
|
|
521
|
+
Deobfuscation: D-810, SATURN, miasm
|
|
522
|
+
VM analysis: VMAttack, NoVmp, manual tracing
|
|
523
|
+
String decryption: FLOSS, custom scripts
|
|
524
|
+
Symbolic execution: angr, Triton
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### Ethical Considerations
|
|
528
|
+
|
|
529
|
+
This knowledge should only be used for:
|
|
530
|
+
- Authorized security research
|
|
531
|
+
- Malware analysis (defensive)
|
|
532
|
+
- CTF competitions
|
|
533
|
+
- Understanding protections for legitimate purposes
|
|
534
|
+
- Educational purposes
|
|
535
|
+
|
|
536
|
+
Never use to bypass protections for:
|
|
537
|
+
- Software piracy
|
|
538
|
+
- Unauthorized access
|
|
539
|
+
- Malicious purposes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-design-principles
|
|
3
|
+
description: Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# API Design Principles
|
|
7
|
+
|
|
8
|
+
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers and stand the test of time.
|
|
9
|
+
|
|
10
|
+
## Use this skill when
|
|
11
|
+
|
|
12
|
+
- Designing new REST or GraphQL APIs
|
|
13
|
+
- Refactoring existing APIs for better usability
|
|
14
|
+
- Establishing API design standards for your team
|
|
15
|
+
- Reviewing API specifications before implementation
|
|
16
|
+
- Migrating between API paradigms (REST to GraphQL, etc.)
|
|
17
|
+
- Creating developer-friendly API documentation
|
|
18
|
+
- Optimizing APIs for specific use cases (mobile, third-party integrations)
|
|
19
|
+
|
|
20
|
+
## Do not use this skill when
|
|
21
|
+
|
|
22
|
+
- You only need implementation guidance for a specific framework
|
|
23
|
+
- You are doing infrastructure-only work without API contracts
|
|
24
|
+
- You cannot change or version public interfaces
|
|
25
|
+
|
|
26
|
+
## Instructions
|
|
27
|
+
|
|
28
|
+
1. Define consumers, use cases, and constraints.
|
|
29
|
+
2. Choose API style and model resources or types.
|
|
30
|
+
3. Specify errors, versioning, pagination, and auth strategy.
|
|
31
|
+
4. Validate with examples and review for consistency.
|
|
32
|
+
|
|
33
|
+
Refer to `resources/implementation-playbook.md` for detailed patterns, checklists, and templates.
|
|
34
|
+
|
|
35
|
+
## Resources
|
|
36
|
+
|
|
37
|
+
- `resources/implementation-playbook.md` for detailed patterns, checklists, and templates.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# API Design Checklist
|
|
2
|
+
|
|
3
|
+
## Pre-Implementation Review
|
|
4
|
+
|
|
5
|
+
### Resource Design
|
|
6
|
+
|
|
7
|
+
- [ ] Resources are nouns, not verbs
|
|
8
|
+
- [ ] Plural names for collections
|
|
9
|
+
- [ ] Consistent naming across all endpoints
|
|
10
|
+
- [ ] Clear resource hierarchy (avoid deep nesting >2 levels)
|
|
11
|
+
- [ ] All CRUD operations properly mapped to HTTP methods
|
|
12
|
+
|
|
13
|
+
### HTTP Methods
|
|
14
|
+
|
|
15
|
+
- [ ] GET for retrieval (safe, idempotent)
|
|
16
|
+
- [ ] POST for creation
|
|
17
|
+
- [ ] PUT for full replacement (idempotent)
|
|
18
|
+
- [ ] PATCH for partial updates
|
|
19
|
+
- [ ] DELETE for removal (idempotent)
|
|
20
|
+
|
|
21
|
+
### Status Codes
|
|
22
|
+
|
|
23
|
+
- [ ] 200 OK for successful GET/PATCH/PUT
|
|
24
|
+
- [ ] 201 Created for POST
|
|
25
|
+
- [ ] 204 No Content for DELETE
|
|
26
|
+
- [ ] 400 Bad Request for malformed requests
|
|
27
|
+
- [ ] 401 Unauthorized for missing auth
|
|
28
|
+
- [ ] 403 Forbidden for insufficient permissions
|
|
29
|
+
- [ ] 404 Not Found for missing resources
|
|
30
|
+
- [ ] 422 Unprocessable Entity for validation errors
|
|
31
|
+
- [ ] 429 Too Many Requests for rate limiting
|
|
32
|
+
- [ ] 500 Internal Server Error for server issues
|
|
33
|
+
|
|
34
|
+
### Pagination
|
|
35
|
+
|
|
36
|
+
- [ ] All collection endpoints paginated
|
|
37
|
+
- [ ] Default page size defined (e.g., 20)
|
|
38
|
+
- [ ] Maximum page size enforced (e.g., 100)
|
|
39
|
+
- [ ] Pagination metadata included (total, pages, etc.)
|
|
40
|
+
- [ ] Cursor-based or offset-based pattern chosen
|
|
41
|
+
|
|
42
|
+
### Filtering & Sorting
|
|
43
|
+
|
|
44
|
+
- [ ] Query parameters for filtering
|
|
45
|
+
- [ ] Sort parameter supported
|
|
46
|
+
- [ ] Search parameter for full-text search
|
|
47
|
+
- [ ] Field selection supported (sparse fieldsets)
|
|
48
|
+
|
|
49
|
+
### Versioning
|
|
50
|
+
|
|
51
|
+
- [ ] Versioning strategy defined (URL/header/query)
|
|
52
|
+
- [ ] Version included in all endpoints
|
|
53
|
+
- [ ] Deprecation policy documented
|
|
54
|
+
|
|
55
|
+
### Error Handling
|
|
56
|
+
|
|
57
|
+
- [ ] Consistent error response format
|
|
58
|
+
- [ ] Detailed error messages
|
|
59
|
+
- [ ] Field-level validation errors
|
|
60
|
+
- [ ] Error codes for client handling
|
|
61
|
+
- [ ] Timestamps in error responses
|
|
62
|
+
|
|
63
|
+
### Authentication & Authorization
|
|
64
|
+
|
|
65
|
+
- [ ] Authentication method defined (Bearer token, API key)
|
|
66
|
+
- [ ] Authorization checks on all endpoints
|
|
67
|
+
- [ ] 401 vs 403 used correctly
|
|
68
|
+
- [ ] Token expiration handled
|
|
69
|
+
|
|
70
|
+
### Rate Limiting
|
|
71
|
+
|
|
72
|
+
- [ ] Rate limits defined per endpoint/user
|
|
73
|
+
- [ ] Rate limit headers included
|
|
74
|
+
- [ ] 429 status code for exceeded limits
|
|
75
|
+
- [ ] Retry-After header provided
|
|
76
|
+
|
|
77
|
+
### Documentation
|
|
78
|
+
|
|
79
|
+
- [ ] OpenAPI/Swagger spec generated
|
|
80
|
+
- [ ] All endpoints documented
|
|
81
|
+
- [ ] Request/response examples provided
|
|
82
|
+
- [ ] Error responses documented
|
|
83
|
+
- [ ] Authentication flow documented
|
|
84
|
+
|
|
85
|
+
### Testing
|
|
86
|
+
|
|
87
|
+
- [ ] Unit tests for business logic
|
|
88
|
+
- [ ] Integration tests for endpoints
|
|
89
|
+
- [ ] Error scenarios tested
|
|
90
|
+
- [ ] Edge cases covered
|
|
91
|
+
- [ ] Performance tests for heavy endpoints
|
|
92
|
+
|
|
93
|
+
### Security
|
|
94
|
+
|
|
95
|
+
- [ ] Input validation on all fields
|
|
96
|
+
- [ ] SQL injection prevention
|
|
97
|
+
- [ ] XSS prevention
|
|
98
|
+
- [ ] CORS configured correctly
|
|
99
|
+
- [ ] HTTPS enforced
|
|
100
|
+
- [ ] Sensitive data not in URLs
|
|
101
|
+
- [ ] No secrets in responses
|
|
102
|
+
|
|
103
|
+
### Performance
|
|
104
|
+
|
|
105
|
+
- [ ] Database queries optimized
|
|
106
|
+
- [ ] N+1 queries prevented
|
|
107
|
+
- [ ] Caching strategy defined
|
|
108
|
+
- [ ] Cache headers set appropriately
|
|
109
|
+
- [ ] Large responses paginated
|
|
110
|
+
|
|
111
|
+
### Monitoring
|
|
112
|
+
|
|
113
|
+
- [ ] Logging implemented
|
|
114
|
+
- [ ] Error tracking configured
|
|
115
|
+
- [ ] Performance metrics collected
|
|
116
|
+
- [ ] Health check endpoint available
|
|
117
|
+
- [ ] Alerts configured for errors
|
|
118
|
+
|
|
119
|
+
## GraphQL-Specific Checks
|
|
120
|
+
|
|
121
|
+
### Schema Design
|
|
122
|
+
|
|
123
|
+
- [ ] Schema-first approach used
|
|
124
|
+
- [ ] Types properly defined
|
|
125
|
+
- [ ] Non-null vs nullable decided
|
|
126
|
+
- [ ] Interfaces/unions used appropriately
|
|
127
|
+
- [ ] Custom scalars defined
|
|
128
|
+
|
|
129
|
+
### Queries
|
|
130
|
+
|
|
131
|
+
- [ ] Query depth limiting
|
|
132
|
+
- [ ] Query complexity analysis
|
|
133
|
+
- [ ] DataLoaders prevent N+1
|
|
134
|
+
- [ ] Pagination pattern chosen (Relay/offset)
|
|
135
|
+
|
|
136
|
+
### Mutations
|
|
137
|
+
|
|
138
|
+
- [ ] Input types defined
|
|
139
|
+
- [ ] Payload types with errors
|
|
140
|
+
- [ ] Optimistic response support
|
|
141
|
+
- [ ] Idempotency considered
|
|
142
|
+
|
|
143
|
+
### Performance
|
|
144
|
+
|
|
145
|
+
- [ ] DataLoader for all relationships
|
|
146
|
+
- [ ] Query batching enabled
|
|
147
|
+
- [ ] Persisted queries considered
|
|
148
|
+
- [ ] Response caching implemented
|
|
149
|
+
|
|
150
|
+
### Documentation
|
|
151
|
+
|
|
152
|
+
- [ ] All fields documented
|
|
153
|
+
- [ ] Deprecations marked
|
|
154
|
+
- [ ] Examples provided
|
|
155
|
+
- [ ] Schema introspection enabled
|