@elizaos/skills 2.0.0-alpha.3

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.
Files changed (371) hide show
  1. package/README.md +126 -0
  2. package/package.json +53 -0
  3. package/skills/1password/SKILL.md +70 -0
  4. package/skills/1password/references/cli-examples.md +29 -0
  5. package/skills/1password/references/get-started.md +17 -0
  6. package/skills/apple-notes/SKILL.md +77 -0
  7. package/skills/apple-reminders/SKILL.md +96 -0
  8. package/skills/bear-notes/SKILL.md +107 -0
  9. package/skills/bird/SKILL.md +224 -0
  10. package/skills/blogwatcher/SKILL.md +69 -0
  11. package/skills/blucli/SKILL.md +47 -0
  12. package/skills/bluebubbles/SKILL.md +131 -0
  13. package/skills/camsnap/SKILL.md +45 -0
  14. package/skills/canvas/SKILL.md +203 -0
  15. package/skills/clawhub/SKILL.md +77 -0
  16. package/skills/coding-agent/SKILL.md +284 -0
  17. package/skills/discord/SKILL.md +578 -0
  18. package/skills/eightctl/SKILL.md +50 -0
  19. package/skills/food-order/SKILL.md +48 -0
  20. package/skills/gemini/SKILL.md +43 -0
  21. package/skills/gifgrep/SKILL.md +79 -0
  22. package/skills/github/SKILL.md +77 -0
  23. package/skills/gog/SKILL.md +116 -0
  24. package/skills/goplaces/SKILL.md +52 -0
  25. package/skills/healthcheck/SKILL.md +245 -0
  26. package/skills/himalaya/SKILL.md +257 -0
  27. package/skills/himalaya/references/configuration.md +184 -0
  28. package/skills/himalaya/references/message-composition.md +199 -0
  29. package/skills/imsg/SKILL.md +74 -0
  30. package/skills/local-places/SERVER_README.md +101 -0
  31. package/skills/local-places/SKILL.md +102 -0
  32. package/skills/local-places/pyproject.toml +21 -0
  33. package/skills/local-places/src/local_places/__init__.py +2 -0
  34. package/skills/local-places/src/local_places/google_places.py +314 -0
  35. package/skills/local-places/src/local_places/main.py +65 -0
  36. package/skills/local-places/src/local_places/schemas.py +107 -0
  37. package/skills/mcporter/SKILL.md +61 -0
  38. package/skills/model-usage/SKILL.md +69 -0
  39. package/skills/model-usage/references/codexbar-cli.md +33 -0
  40. package/skills/model-usage/scripts/model_usage.py +310 -0
  41. package/skills/nano-banana-pro/SKILL.md +58 -0
  42. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  43. package/skills/nano-pdf/SKILL.md +38 -0
  44. package/skills/notion/SKILL.md +172 -0
  45. package/skills/obsidian/SKILL.md +81 -0
  46. package/skills/openai-image-gen/SKILL.md +89 -0
  47. package/skills/openai-image-gen/scripts/gen.py +240 -0
  48. package/skills/openai-whisper/SKILL.md +38 -0
  49. package/skills/openai-whisper-api/SKILL.md +52 -0
  50. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  51. package/skills/openhue/SKILL.md +51 -0
  52. package/skills/oracle/SKILL.md +125 -0
  53. package/skills/ordercli/SKILL.md +78 -0
  54. package/skills/peekaboo/SKILL.md +190 -0
  55. package/skills/sag/SKILL.md +87 -0
  56. package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +10 -0
  57. package/skills/security-ask-questions-if-underspecified/README.md +24 -0
  58. package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +85 -0
  59. package/skills/security-audit-context-building/.claude-plugin/plugin.json +10 -0
  60. package/skills/security-audit-context-building/README.md +58 -0
  61. package/skills/security-audit-context-building/commands/audit-context.md +21 -0
  62. package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +297 -0
  63. package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +47 -0
  64. package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +355 -0
  65. package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +71 -0
  66. package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +10 -0
  67. package/skills/security-building-secure-contracts/README.md +241 -0
  68. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +284 -0
  69. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +405 -0
  70. package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +409 -0
  71. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +329 -0
  72. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +722 -0
  73. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +218 -0
  74. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +355 -0
  75. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +248 -0
  76. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +33 -0
  77. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +334 -0
  78. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +740 -0
  79. package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +252 -0
  80. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +329 -0
  81. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +118 -0
  82. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +298 -0
  83. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +161 -0
  84. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +279 -0
  85. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +132 -0
  86. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +389 -0
  87. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +669 -0
  88. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +298 -0
  89. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +791 -0
  90. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +362 -0
  91. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +571 -0
  92. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +141 -0
  93. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +388 -0
  94. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +595 -0
  95. package/skills/security-burpsuite-project-parser/.claude-plugin/plugin.json +10 -0
  96. package/skills/security-burpsuite-project-parser/README.md +103 -0
  97. package/skills/security-burpsuite-project-parser/commands/burp-search.md +18 -0
  98. package/skills/security-burpsuite-project-parser/skills/SKILL.md +358 -0
  99. package/skills/security-burpsuite-project-parser/skills/scripts/burp-search.sh +99 -0
  100. package/skills/security-claude-in-chrome-troubleshooting/.claude-plugin/plugin.json +8 -0
  101. package/skills/security-claude-in-chrome-troubleshooting/README.md +31 -0
  102. package/skills/security-claude-in-chrome-troubleshooting/skills/claude-in-chrome-troubleshooting/SKILL.md +251 -0
  103. package/skills/security-constant-time-analysis/.claude-plugin/plugin.json +9 -0
  104. package/skills/security-constant-time-analysis/README.md +381 -0
  105. package/skills/security-constant-time-analysis/commands/ct-check.md +20 -0
  106. package/skills/security-constant-time-analysis/ct_analyzer/__init__.py +49 -0
  107. package/skills/security-constant-time-analysis/ct_analyzer/analyzer.py +1284 -0
  108. package/skills/security-constant-time-analysis/ct_analyzer/script_analyzers.py +3081 -0
  109. package/skills/security-constant-time-analysis/ct_analyzer/tests/__init__.py +1 -0
  110. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_analyzer.py +1397 -0
  111. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/bn_excerpt.js +205 -0
  112. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_constant_time.c +181 -0
  113. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.c +74 -0
  114. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.go +78 -0
  115. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.rs +92 -0
  116. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.cs +174 -0
  117. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.java +161 -0
  118. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.kt +181 -0
  119. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.php +140 -0
  120. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.py +252 -0
  121. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.rb +188 -0
  122. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.swift +199 -0
  123. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.ts +154 -0
  124. package/skills/security-constant-time-analysis/pyproject.toml +52 -0
  125. package/skills/security-constant-time-analysis/skills/constant-time-analysis/README.md +90 -0
  126. package/skills/security-constant-time-analysis/skills/constant-time-analysis/SKILL.md +219 -0
  127. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/compiled.md +129 -0
  128. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/javascript.md +136 -0
  129. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/kotlin.md +252 -0
  130. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/php.md +172 -0
  131. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/python.md +179 -0
  132. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/ruby.md +198 -0
  133. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/swift.md +288 -0
  134. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md +354 -0
  135. package/skills/security-constant-time-analysis/uv.lock +8 -0
  136. package/skills/security-culture-index/.claude-plugin/plugin.json +8 -0
  137. package/skills/security-culture-index/README.md +79 -0
  138. package/skills/security-culture-index/skills/interpreting-culture-index/SKILL.md +293 -0
  139. package/skills/security-culture-index/skills/interpreting-culture-index/references/anti-patterns.md +255 -0
  140. package/skills/security-culture-index/skills/interpreting-culture-index/references/conversation-starters.md +408 -0
  141. package/skills/security-culture-index/skills/interpreting-culture-index/references/interview-trait-signals.md +253 -0
  142. package/skills/security-culture-index/skills/interpreting-culture-index/references/motivators.md +158 -0
  143. package/skills/security-culture-index/skills/interpreting-culture-index/references/patterns-archetypes.md +147 -0
  144. package/skills/security-culture-index/skills/interpreting-culture-index/references/primary-traits.md +307 -0
  145. package/skills/security-culture-index/skills/interpreting-culture-index/references/secondary-traits.md +228 -0
  146. package/skills/security-culture-index/skills/interpreting-culture-index/references/team-composition.md +148 -0
  147. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/check_deps.py +108 -0
  148. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py +20 -0
  149. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py +122 -0
  150. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py +187 -0
  151. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py +16 -0
  152. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py +520 -0
  153. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py +237 -0
  154. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/pyproject.toml +18 -0
  155. package/skills/security-culture-index/skills/interpreting-culture-index/templates/burnout-report.md +113 -0
  156. package/skills/security-culture-index/skills/interpreting-culture-index/templates/comparison-report.md +103 -0
  157. package/skills/security-culture-index/skills/interpreting-culture-index/templates/hiring-profile.md +127 -0
  158. package/skills/security-culture-index/skills/interpreting-culture-index/templates/individual-report.md +85 -0
  159. package/skills/security-culture-index/skills/interpreting-culture-index/templates/predicted-profile.md +165 -0
  160. package/skills/security-culture-index/skills/interpreting-culture-index/templates/team-report.md +109 -0
  161. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/analyze-team.md +188 -0
  162. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/coach-manager.md +267 -0
  163. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/compare-profiles.md +188 -0
  164. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/define-hiring-profile.md +220 -0
  165. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/detect-burnout.md +206 -0
  166. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md +121 -0
  167. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interpret-individual.md +183 -0
  168. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interview-debrief.md +234 -0
  169. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/mediate-conflict.md +306 -0
  170. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/plan-onboarding.md +322 -0
  171. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/predict-from-interview.md +250 -0
  172. package/skills/security-differential-review/.claude-plugin/plugin.json +10 -0
  173. package/skills/security-differential-review/README.md +109 -0
  174. package/skills/security-differential-review/commands/diff-review.md +21 -0
  175. package/skills/security-differential-review/skills/differential-review/SKILL.md +220 -0
  176. package/skills/security-differential-review/skills/differential-review/adversarial.md +203 -0
  177. package/skills/security-differential-review/skills/differential-review/methodology.md +234 -0
  178. package/skills/security-differential-review/skills/differential-review/patterns.md +300 -0
  179. package/skills/security-differential-review/skills/differential-review/reporting.md +369 -0
  180. package/skills/security-dwarf-expert/.claude-plugin/plugin.json +10 -0
  181. package/skills/security-dwarf-expert/README.md +38 -0
  182. package/skills/security-dwarf-expert/skills/dwarf-expert/SKILL.md +93 -0
  183. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/coding.md +31 -0
  184. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/dwarfdump.md +50 -0
  185. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/readelf.md +8 -0
  186. package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +10 -0
  187. package/skills/security-entry-point-analyzer/README.md +74 -0
  188. package/skills/security-entry-point-analyzer/commands/entry-points.md +18 -0
  189. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +251 -0
  190. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +182 -0
  191. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +107 -0
  192. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +87 -0
  193. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +155 -0
  194. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +135 -0
  195. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +185 -0
  196. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +141 -0
  197. package/skills/security-firebase-apk-scanner/.claude-plugin/plugin.json +10 -0
  198. package/skills/security-firebase-apk-scanner/README.md +85 -0
  199. package/skills/security-firebase-apk-scanner/commands/scan-apk.md +18 -0
  200. package/skills/security-firebase-apk-scanner/scanner.sh +1408 -0
  201. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md +197 -0
  202. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md +803 -0
  203. package/skills/security-fix-review/.claude-plugin/plugin.json +13 -0
  204. package/skills/security-fix-review/README.md +118 -0
  205. package/skills/security-fix-review/commands/fix-review.md +24 -0
  206. package/skills/security-fix-review/skills/fix-review/SKILL.md +264 -0
  207. package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +408 -0
  208. package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +298 -0
  209. package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +398 -0
  210. package/skills/security-insecure-defaults/.claude-plugin/plugin.json +10 -0
  211. package/skills/security-insecure-defaults/README.md +45 -0
  212. package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
  213. package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
  214. package/skills/security-modern-python/.claude-plugin/plugin.json +10 -0
  215. package/skills/security-modern-python/README.md +58 -0
  216. package/skills/security-modern-python/hooks/hooks.json +16 -0
  217. package/skills/security-modern-python/hooks/intercept-legacy-python.bats +388 -0
  218. package/skills/security-modern-python/hooks/intercept-legacy-python.sh +109 -0
  219. package/skills/security-modern-python/hooks/test_helper.bash +75 -0
  220. package/skills/security-modern-python/skills/modern-python/SKILL.md +333 -0
  221. package/skills/security-modern-python/skills/modern-python/references/dependabot.md +43 -0
  222. package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +141 -0
  223. package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
  224. package/skills/security-modern-python/skills/modern-python/references/prek.md +211 -0
  225. package/skills/security-modern-python/skills/modern-python/references/pyproject.md +254 -0
  226. package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +240 -0
  227. package/skills/security-modern-python/skills/modern-python/references/security-setup.md +255 -0
  228. package/skills/security-modern-python/skills/modern-python/references/testing.md +284 -0
  229. package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +200 -0
  230. package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +36 -0
  231. package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
  232. package/skills/security-property-based-testing/.claude-plugin/plugin.json +9 -0
  233. package/skills/security-property-based-testing/README.md +47 -0
  234. package/skills/security-property-based-testing/skills/property-based-testing/README.md +88 -0
  235. package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +109 -0
  236. package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +191 -0
  237. package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +200 -0
  238. package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
  239. package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
  240. package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
  241. package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
  242. package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +8 -0
  243. package/skills/semgrep-rule-creator/README.md +43 -0
  244. package/skills/semgrep-rule-creator/commands/semgrep-rule.md +26 -0
  245. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +168 -0
  246. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +203 -0
  247. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +240 -0
  248. package/skills/semgrep-rule-variant-creator/.claude-plugin/plugin.json +9 -0
  249. package/skills/semgrep-rule-variant-creator/README.md +86 -0
  250. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md +205 -0
  251. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +250 -0
  252. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +324 -0
  253. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/workflow.md +518 -0
  254. package/skills/session-logs/SKILL.md +115 -0
  255. package/skills/sharp-edges/.claude-plugin/plugin.json +10 -0
  256. package/skills/sharp-edges/README.md +48 -0
  257. package/skills/sharp-edges/skills/sharp-edges/SKILL.md +292 -0
  258. package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +252 -0
  259. package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +274 -0
  260. package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +333 -0
  261. package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +190 -0
  262. package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +205 -0
  263. package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +285 -0
  264. package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +270 -0
  265. package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +263 -0
  266. package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +269 -0
  267. package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +265 -0
  268. package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +245 -0
  269. package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +274 -0
  270. package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +273 -0
  271. package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +272 -0
  272. package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +287 -0
  273. package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +588 -0
  274. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  275. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  276. package/skills/skill-creator/SKILL.md +370 -0
  277. package/skills/skill-creator/license.txt +202 -0
  278. package/skills/skill-creator/scripts/init_skill.py +378 -0
  279. package/skills/skill-creator/scripts/package_skill.py +111 -0
  280. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  281. package/skills/slack/SKILL.md +144 -0
  282. package/skills/songsee/SKILL.md +49 -0
  283. package/skills/sonoscli/SKILL.md +46 -0
  284. package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +10 -0
  285. package/skills/spec-to-code-compliance/README.md +67 -0
  286. package/skills/spec-to-code-compliance/commands/spec-compliance.md +22 -0
  287. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +349 -0
  288. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
  289. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
  290. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
  291. package/skills/spotify-player/SKILL.md +64 -0
  292. package/skills/static-analysis/.claude-plugin/plugin.json +8 -0
  293. package/skills/static-analysis/README.md +59 -0
  294. package/skills/static-analysis/skills/codeql/SKILL.md +315 -0
  295. package/skills/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
  296. package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
  297. package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
  298. package/skills/static-analysis/skills/semgrep/SKILL.md +337 -0
  299. package/skills/summarize/SKILL.md +87 -0
  300. package/skills/testing-handbook-skills/.claude-plugin/plugin.json +8 -0
  301. package/skills/testing-handbook-skills/README.md +241 -0
  302. package/skills/testing-handbook-skills/scripts/pyproject.toml +8 -0
  303. package/skills/testing-handbook-skills/scripts/validate-skills.py +657 -0
  304. package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +341 -0
  305. package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +640 -0
  306. package/skills/testing-handbook-skills/skills/atheris/SKILL.md +515 -0
  307. package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +454 -0
  308. package/skills/testing-handbook-skills/skills/codeql/SKILL.md +549 -0
  309. package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +507 -0
  310. package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +607 -0
  311. package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +297 -0
  312. package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +426 -0
  313. package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +614 -0
  314. package/skills/testing-handbook-skills/skills/libafl/SKILL.md +625 -0
  315. package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +795 -0
  316. package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +426 -0
  317. package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +443 -0
  318. package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +601 -0
  319. package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +372 -0
  320. package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +280 -0
  321. package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +452 -0
  322. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +504 -0
  323. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +454 -0
  324. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +527 -0
  325. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +366 -0
  326. package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +482 -0
  327. package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +533 -0
  328. package/skills/things-mac/SKILL.md +86 -0
  329. package/skills/tmux/SKILL.md +135 -0
  330. package/skills/tmux/scripts/find-sessions.sh +112 -0
  331. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  332. package/skills/trello/SKILL.md +95 -0
  333. package/skills/variant-analysis/.claude-plugin/plugin.json +8 -0
  334. package/skills/variant-analysis/README.md +41 -0
  335. package/skills/variant-analysis/commands/variants.md +23 -0
  336. package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +327 -0
  337. package/skills/variant-analysis/skills/variant-analysis/SKILL.md +142 -0
  338. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
  339. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +69 -0
  340. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +71 -0
  341. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
  342. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +80 -0
  343. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
  344. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
  345. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
  346. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
  347. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
  348. package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +75 -0
  349. package/skills/video-frames/SKILL.md +46 -0
  350. package/skills/video-frames/scripts/frame.sh +81 -0
  351. package/skills/voice-call/SKILL.md +45 -0
  352. package/skills/wacli/SKILL.md +72 -0
  353. package/skills/weather/SKILL.md +54 -0
  354. package/skills/yara-authoring/.claude-plugin/plugin.json +9 -0
  355. package/skills/yara-authoring/README.md +131 -0
  356. package/skills/yara-authoring/skills/yara-rule-authoring/SKILL.md +645 -0
  357. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar +99 -0
  358. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar +170 -0
  359. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar +103 -0
  360. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar +134 -0
  361. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar +185 -0
  362. package/skills/yara-authoring/skills/yara-rule-authoring/references/crx-module.md +214 -0
  363. package/skills/yara-authoring/skills/yara-rule-authoring/references/dex-module.md +383 -0
  364. package/skills/yara-authoring/skills/yara-rule-authoring/references/performance.md +333 -0
  365. package/skills/yara-authoring/skills/yara-rule-authoring/references/strings.md +433 -0
  366. package/skills/yara-authoring/skills/yara-rule-authoring/references/style-guide.md +257 -0
  367. package/skills/yara-authoring/skills/yara-rule-authoring/references/testing.md +399 -0
  368. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py +526 -0
  369. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/pyproject.toml +25 -0
  370. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py +631 -0
  371. package/skills/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md +493 -0
@@ -0,0 +1,99 @@
1
+ /*
2
+ Real YARA Rule: macOS Proton RAT Detection
3
+
4
+ This rule is adapted from Airbnb's BinaryAlert open-source YARA rules.
5
+ It demonstrates best practices for macOS malware detection:
6
+ - Mach-O magic bytes validation (including universal binaries)
7
+ - Multi-category string grouping ($a* for libraries, $b* for behaviors)
8
+ - Cross-category matching requirement
9
+
10
+ Original source: https://github.com/airbnb/binaryalert
11
+ Attribution: @mimeframe / Airbnb Security
12
+ Reference: https://objective-see.org/blog/blog_0x1D.html
13
+ */
14
+
15
+ private rule MachO
16
+ {
17
+ meta:
18
+ description = "Detects all Mach-O binary formats including 32-bit, 64-bit, and universal binaries"
19
+ author = "Airbnb BinaryAlert"
20
+ reference = "https://github.com/airbnb/binaryalert"
21
+ date = "2017-01-01"
22
+
23
+ condition:
24
+ // 32-bit Mach-O (little/big endian)
25
+ uint32(0) == 0xfeedface or uint32(0) == 0xcefaedfe or
26
+ // 64-bit Mach-O (little/big endian)
27
+ uint32(0) == 0xfeedfacf or uint32(0) == 0xcffaedfe or
28
+ // Universal binary / fat binary (little/big endian)
29
+ uint32(0) == 0xcafebabe or uint32(0) == 0xbebafeca
30
+ }
31
+
32
+ rule MAL_Mac_ProtonRAT_Generic
33
+ {
34
+ meta:
35
+ description = "Detects macOS Proton RAT via WebSocket library and SSH tunnel strings"
36
+ author = "@mimeframe (Airbnb Security, adapted)"
37
+ reference = "https://objective-see.org/blog/blog_0x1D.html"
38
+ date = "2017-05-04"
39
+ modified = "2025-01-30"
40
+ score = 80
41
+
42
+ strings:
43
+ // Category A: Library indicators
44
+ // SocketRocket is a WebSocket library - legitimate but rare in malware context
45
+ $a1 = "SRWebSocket" nocase ascii wide
46
+ $a2 = "SocketRocket" nocase ascii wide
47
+
48
+ // Category B: SSH tunnel behavioral indicators
49
+ // From joeroback/SSHTunnel - distinctive error/status messages
50
+ $b1 = "SSH tunnel not launched" nocase ascii wide
51
+ $b2 = "SSH tunnel still running" nocase ascii wide
52
+ $b3 = "SSH tunnel already launched" nocase ascii wide
53
+ $b4 = "Entering interactive session." nocase ascii wide
54
+
55
+ condition:
56
+ // File type validation
57
+ MachO and
58
+ filesize < 20MB and
59
+
60
+ // Require indicators from BOTH categories
61
+ // This reduces FPs: SocketRocket alone is legitimate
62
+ // SSH tunneling alone is legitimate
63
+ // BOTH together is suspicious for a GUI app
64
+ any of ($a*) and any of ($b*)
65
+ }
66
+
67
+ rule MAL_Mac_ProtonRAT_Keylogger
68
+ {
69
+ meta:
70
+ description = "Detects macOS Proton RAT keylogger functionality via CoreGraphics event tap APIs"
71
+ author = "Trail of Bits (based on Objective-See research)"
72
+ reference = "https://objective-see.org/blog/blog_0x1D.html"
73
+ date = "2025-01-30"
74
+ score = 85
75
+
76
+ strings:
77
+ // Keylogger API usage (CoreGraphics event tap)
78
+ $key1 = "CGEventTapCreate" ascii
79
+ $key2 = "kCGEventKeyDown" ascii
80
+ $key3 = "kCGEventKeyUp" ascii
81
+
82
+ // Credential theft indicators
83
+ $cred1 = "security find-generic-password" ascii
84
+ $cred2 = "keychain" ascii nocase
85
+
86
+ // Persistence paths
87
+ $persist1 = "Library/LaunchAgents" ascii
88
+ $persist2 = "com.apple" ascii // Masquerading as Apple
89
+
90
+ condition:
91
+ MachO and
92
+ filesize < 20MB and
93
+
94
+ // Need keylogger functionality
95
+ 2 of ($key*) and
96
+
97
+ // Plus credential or persistence indicators
98
+ (any of ($cred*) or any of ($persist*))
99
+ }
@@ -0,0 +1,170 @@
1
+ /*
2
+ Real YARA Rules: npm Supply Chain Attack Detection
3
+
4
+ These rules detect patterns from documented npm supply chain attacks.
5
+ They demonstrate best practices for JavaScript/package detection:
6
+ - No magic bytes (text files)
7
+ - Combining behavioral patterns to reduce false positives
8
+ - Targeting specific attack artifacts, not generic JavaScript
9
+
10
+ Sources:
11
+ - chalk/debug compromise (Sept 2025): Stairwell Threat Research
12
+ - os-info-checker-es6: Veracode Security Research
13
+ - event-stream/flatmap-stream: npm security advisory
14
+
15
+ Attribution: Stairwell Threat Research, Veracode, npm Security
16
+ */
17
+
18
+ rule MAL_NPM_ChalkDebug_Sept25
19
+ {
20
+ meta:
21
+ description = "Detects malicious wallet-drainer code from chalk/debug npm supply-chain compromise"
22
+ author = "Stairwell Threat Research (adapted)"
23
+ reference = "https://stairwell.com/resources/how-to-detect-npm-package-manager-supply-chain-attacks-with-yara/"
24
+ date = "2025-09-11"
25
+ modified = "2025-01-30"
26
+ score = 95
27
+
28
+ strings:
29
+ // Unique function names from the malicious payload
30
+ $s1 = "runmask" ascii
31
+ $s2 = "checkethereumw" ascii
32
+
33
+ // Ethereum function selector for approve(address,uint256)
34
+ // This ERC-20 method grants token spending permission
35
+ $function_selector = "0x095ea7b3" ascii
36
+
37
+ condition:
38
+ filesize < 5MB and
39
+ all of them
40
+ }
41
+
42
+ rule MAL_NPM_ChalkDebug_ERC20Selectors
43
+ {
44
+ meta:
45
+ description = "Detects malicious npm packages targeting ERC-20 token operations"
46
+ author = "Trail of Bits (based on Stairwell research)"
47
+ reference = "https://github.com/chalk/chalk/issues/656"
48
+ date = "2025-01-30"
49
+ score = 80
50
+
51
+ strings:
52
+ // ERC-20 function selectors (4-byte Keccak hashes)
53
+ // These appear in wallet-draining malware
54
+ $erc20_transfer = { 70 a0 82 31 } // transfer(address,uint256)
55
+ $erc20_approve = { 09 5e a7 b3 } // approve(address,uint256)
56
+ $erc20_transferFrom = { 23 b8 72 dd } // transferFrom(address,address,uint256)
57
+
58
+ // Context: must be in a JavaScript/npm context
59
+ $npm_context1 = "package.json" ascii
60
+ $npm_context2 = "node_modules" ascii
61
+ $js_context = "module.exports" ascii
62
+
63
+ condition:
64
+ filesize < 2MB and
65
+ // Need multiple ERC-20 selectors (legitimate code rarely has multiple)
66
+ 2 of ($erc20_*) and
67
+ // Confirm npm/JS context
68
+ any of ($npm_context*, $js_context)
69
+ }
70
+
71
+ rule MAL_NPM_ZeroWidthSteganography
72
+ {
73
+ meta:
74
+ description = "Detects hidden code using zero-width Unicode characters (os-info-checker-es6 technique)"
75
+ author = "Trail of Bits (based on Veracode research)"
76
+ reference = "https://www.veracode.com/blog/security-news/npm-package-uses-unicode-invisible-characters-hide-backdoor-code"
77
+ date = "2025-01-30"
78
+ score = 75
79
+
80
+ strings:
81
+ // Zero-width characters used to hide payloads
82
+ // These encode binary data as invisible Unicode
83
+ $zw_sequence = { E2 80 8B E2 80 8C E2 80 8D } // ZWSP + ZWNJ + ZWJ
84
+ $zw_double = { E2 80 8B E2 80 8B } // Double zero-width space
85
+ $zw_mixed = { E2 80 8C E2 80 8D } // ZWNJ + ZWJ pair
86
+
87
+ // Typical decoding pattern
88
+ $eval_atob = /eval\s*\(\s*atob\s*\(/
89
+
90
+ condition:
91
+ filesize < 1MB and
92
+ // Need significant zero-width char density
93
+ (#zw_sequence > 3 or #zw_double > 5 or #zw_mixed > 5) and
94
+ // Plus execution mechanism
95
+ $eval_atob
96
+ }
97
+
98
+ rule MAL_NPM_EventStream_Pattern
99
+ {
100
+ meta:
101
+ description = "Detects patterns similar to event-stream/flatmap-stream backdoor"
102
+ author = "Trail of Bits (based on npm security advisory)"
103
+ reference = "https://github.com/dominictarr/event-stream/issues/116"
104
+ date = "2025-01-30"
105
+ score = 70
106
+
107
+ strings:
108
+ // The attack targeted Copay Bitcoin wallet
109
+ $target1 = "copay" ascii nocase
110
+ $target2 = "bitpay" ascii nocase
111
+ $target3 = "bitcoin" ascii nocase
112
+
113
+ // Malicious dependency injection
114
+ $flatmap = "flatmap-stream" ascii
115
+ $pump = "pump" ascii
116
+
117
+ // Encrypted payload indicators
118
+ $aes = "createDecipher" ascii
119
+ $buffer_from = /Buffer\.from\s*\([^)]+,\s*['"]hex['"]\)/
120
+
121
+ condition:
122
+ filesize < 500KB and
123
+ // Bitcoin wallet targeting
124
+ any of ($target*) and
125
+ // Crypto/decode patterns
126
+ ($aes or $buffer_from) and
127
+ // One of the attack-specific patterns
128
+ ($flatmap or #pump > 2)
129
+ }
130
+
131
+ rule SUSP_NPM_PostinstallExfil
132
+ {
133
+ meta:
134
+ description = "Detects suspicious npm packages with postinstall hooks accessing credentials and network"
135
+ author = "Trail of Bits"
136
+ reference = "https://blog.phylum.io/npm-supply-chain-attack-patterns/"
137
+ date = "2025-01-30"
138
+ score = 60
139
+
140
+ strings:
141
+ // Package.json install hooks
142
+ $hook1 = /"postinstall"\s*:\s*"[^"]+"/
143
+ $hook2 = /"preinstall"\s*:\s*"[^"]+"/
144
+
145
+ // Credential access patterns
146
+ $cred1 = /process\.env\.NPM_TOKEN/i
147
+ $cred2 = /process\.env\.GITHUB_TOKEN/i
148
+ $cred3 = /process\.env\.AWS_/
149
+
150
+ // Network exfiltration
151
+ $net1 = /fetch\s*\(\s*['"`]https?:\/\//
152
+ $net2 = /axios\.(post|put)\s*\(/
153
+ $net3 = /webhook/i
154
+
155
+ // False positive exclusions
156
+ $fp1 = "webpack" ascii
157
+ $fp2 = "electron-builder" ascii
158
+ $fp3 = "typescript" ascii
159
+
160
+ condition:
161
+ filesize < 5MB and
162
+ // Has install hook
163
+ any of ($hook*) and
164
+ // Accesses credentials
165
+ any of ($cred*) and
166
+ // Has network capability
167
+ any of ($net*) and
168
+ // Not a known build tool
169
+ not 2 of ($fp*)
170
+ }
@@ -0,0 +1,103 @@
1
+ /*
2
+ Real YARA Rule: Windows Remcos RAT Detection
3
+
4
+ This rule is adapted from Elastic Security's production rules for
5
+ detecting Remcos RAT. It demonstrates best practices for PE malware:
6
+ - Multiple rule versions targeting different indicators
7
+ - Proper metadata with attribution and references
8
+ - String selection based on unique behavioral markers
9
+ - Graduated string requirements (2 of, 3 of, 4 of)
10
+
11
+ Original source: https://github.com/elastic/protections-artifacts
12
+ License: Elastic License v2
13
+ Attribution: Elastic Security
14
+ */
15
+
16
+ rule MAL_Win_Remcos_Watchdog
17
+ {
18
+ meta:
19
+ description = "Detects Remcos RAT via unique watchdog mutex name and restart status strings"
20
+ author = "Elastic Security (adapted)"
21
+ reference = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
22
+ date = "2021-06-10"
23
+ modified = "2025-01-30"
24
+ score = 90
25
+
26
+ strings:
27
+ // Unique watchdog-related strings
28
+ $a1 = "Remcos restarted by watchdog!" ascii fullword
29
+ $a2 = "Mutex_RemWatchdog" ascii fullword
30
+
31
+ // Version/logging format strings
32
+ $a3 = "%02i:%02i:%02i:%03i" ascii
33
+ $a4 = "* Remcos v" ascii fullword
34
+
35
+ condition:
36
+ // Filesize and magic bytes first (instant checks)
37
+ filesize < 5MB and
38
+ uint16(0) == 0x5A4D and
39
+
40
+ // Require 2 of these unique markers
41
+ 2 of them
42
+ }
43
+
44
+ rule MAL_Win_Remcos_Features
45
+ {
46
+ meta:
47
+ description = "Detects Remcos RAT via unique feature directory names and configuration file artifacts"
48
+ author = "Elastic Security (adapted)"
49
+ reference = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
50
+ date = "2023-06-23"
51
+ modified = "2025-01-30"
52
+ score = 85
53
+
54
+ strings:
55
+ // Service/feature identifiers
56
+ $a1 = "ServRem" ascii fullword
57
+ $a2 = "Screenshots" ascii fullword
58
+ $a3 = "MicRecords" ascii fullword
59
+
60
+ // Binary/config names
61
+ $a4 = "remcos.exe" wide nocase fullword
62
+ $a5 = "Remcos" wide fullword
63
+ $a6 = "logs.dat" wide fullword
64
+
65
+ condition:
66
+ filesize < 5MB and
67
+ uint16(0) == 0x5A4D and
68
+
69
+ // Need 3 because individual strings are more common
70
+ 3 of them
71
+ }
72
+
73
+ rule MAL_Win_Remcos_Agent
74
+ {
75
+ meta:
76
+ description = "Detects Remcos RAT agent initialization messages and credential theft status strings"
77
+ author = "Elastic Security (adapted)"
78
+ reference = "https://github.com/elastic/protections-artifacts"
79
+ date = "2025-01-30"
80
+ score = 95
81
+
82
+ strings:
83
+ // Agent initialization and C2 communication
84
+ $a1 = "Remcos Agent initialized (" ascii fullword
85
+ $a2 = "Remcos v" ascii fullword
86
+ $a3 = "Uploading file to Controller: " ascii fullword
87
+
88
+ // Notification and logging artifacts
89
+ $a4 = "alarm.wav" ascii fullword
90
+ $a5 = "[%04i/%02i/%02i %02i:%02i:%02i " wide fullword
91
+ $a6 = "time_%04i%02i%02i_%02i%02i%02i" wide fullword
92
+
93
+ // Browser credential theft indicators
94
+ $a7 = "[Cleared browsers logins and cookies.]" ascii fullword
95
+ $a8 = "[Chrome StoredLogins found, cleared!]" ascii fullword
96
+
97
+ condition:
98
+ filesize < 10MB and
99
+ uint16(0) == 0x5A4D and
100
+
101
+ // Require 4 because some strings could appear elsewhere
102
+ 4 of them
103
+ }
@@ -0,0 +1,134 @@
1
+ /*
2
+ Example YARA-X Rule: Chrome Extension Analysis
3
+
4
+ This rule demonstrates the YARA-X crx module for detecting suspicious
5
+ Chrome extensions. Key features shown:
6
+ - `import "crx"` for module access
7
+ - `crx.is_crx` for file type validation
8
+ - Permission iteration with `for any perm in crx.permissions`
9
+ - `crx.permhash()` for threat hunting
10
+ - Red flag permission combinations
11
+
12
+ Requires YARA-X v1.5.0+ (crx module), v1.11.0+ (permhash)
13
+
14
+ Note: This is an educational example. Real rules should be tuned
15
+ based on your specific threat model and false positive tolerance.
16
+ */
17
+
18
+ import "crx"
19
+
20
+ rule SUSP_CRX_HighRiskPermissionCombo
21
+ {
22
+ meta:
23
+ description = "Detects Chrome extensions with dangerous permission combinations that enable data exfiltration"
24
+ author = "YARA Skill Example <yara-authoring@example.com>"
25
+ reference = "https://developer.chrome.com/docs/extensions/reference/permissions-list"
26
+ date = "2025-01-29"
27
+ score = 70
28
+
29
+ condition:
30
+ // Validate file type first - crx module only works on CRX files
31
+ crx.is_crx and
32
+
33
+ // Red flag combination: native messaging + broad host access
34
+ // Allows extension to communicate with local executables
35
+ // while accessing data from many websites
36
+ (
37
+ for any perm in crx.permissions : (
38
+ perm == "nativeMessaging"
39
+ )
40
+ ) and
41
+ (
42
+ for any perm in crx.permissions : (
43
+ perm == "<all_urls>" or
44
+ perm == "*://*/*" or
45
+ perm == "http://*/*" or
46
+ perm == "https://*/*"
47
+ )
48
+ )
49
+ }
50
+
51
+ rule SUSP_CRX_DebuggerPermission
52
+ {
53
+ meta:
54
+ description = "Detects Chrome extensions requesting debugger permission - can modify any page and intercept traffic"
55
+ author = "YARA Skill Example <yara-authoring@example.com>"
56
+ reference = "https://developer.chrome.com/docs/extensions/reference/api/debugger"
57
+ date = "2025-01-29"
58
+ score = 80
59
+
60
+ condition:
61
+ crx.is_crx and
62
+
63
+ // The debugger permission is extremely powerful:
64
+ // - Attach to any tab
65
+ // - Intercept/modify network requests
66
+ // - Execute scripts in page context
67
+ // - Access cookies and storage
68
+ // Legitimate uses exist (DevTools extensions) but rare
69
+ for any perm in crx.permissions : (
70
+ perm == "debugger"
71
+ )
72
+ }
73
+
74
+ rule SUSP_CRX_DataExfilPotential
75
+ {
76
+ meta:
77
+ description = "Detects Chrome extensions with permissions enabling credential/data theft"
78
+ author = "YARA Skill Example <yara-authoring@example.com>"
79
+ reference = "https://example.com/crx-threat-research"
80
+ date = "2025-01-29"
81
+ score = 60
82
+
83
+ strings:
84
+ // Look for exfiltration patterns in extension code
85
+ // These appear in background scripts or content scripts
86
+ $fetch_post = /fetch\s*\([^)]+method\s*:\s*['"]POST['"]/
87
+ $xhr_send = /\.send\s*\(\s*JSON\.stringify/
88
+ $ws_send = /WebSocket[^;]+\.send\s*\(/
89
+
90
+ // Credential access patterns
91
+ $password_field = /document\.querySelector[^)]+type\s*=\s*['"]password['"]/
92
+ $form_data = /new\s+FormData\s*\(\s*document\./
93
+
94
+ condition:
95
+ crx.is_crx and
96
+
97
+ // Has storage access (for caching stolen data)
98
+ for any perm in crx.permissions : (
99
+ perm == "storage" or
100
+ perm == "unlimitedStorage"
101
+ ) and
102
+
103
+ // Has broad page access
104
+ for any perm in crx.permissions : (
105
+ perm == "<all_urls>" or
106
+ perm == "activeTab" or
107
+ perm == "tabs"
108
+ ) and
109
+
110
+ // Shows data collection + exfiltration behavior
111
+ (1 of ($fetch_post, $xhr_send, $ws_send)) and
112
+ (1 of ($password_field, $form_data))
113
+ }
114
+
115
+ rule SUSP_CRX_PermhashCluster
116
+ {
117
+ meta:
118
+ description = "Detects extensions matching known malicious permission profile hash cluster"
119
+ author = "YARA Skill Example <yara-authoring@example.com>"
120
+ reference = "https://example.com/crx-permhash-research"
121
+ date = "2025-01-29"
122
+ score = 50
123
+
124
+ condition:
125
+ crx.is_crx and
126
+
127
+ // permhash() generates a hash of the extension's permissions
128
+ // Useful for clustering extensions with identical capability profiles
129
+ // These are fictional hashes for demonstration
130
+ (
131
+ crx.permhash() == "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" or
132
+ crx.permhash() == "f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3"
133
+ )
134
+ }
@@ -0,0 +1,185 @@
1
+ /*
2
+ Real YARA Rules: JavaScript Obfuscation Detection
3
+
4
+ These rules detect common JavaScript obfuscation patterns used by malware.
5
+ They demonstrate best practices for JavaScript/browser malware:
6
+ - Targeting obfuscator-specific signatures
7
+ - Using occurrence counts for density-based detection
8
+ - Combining multiple weak indicators into strong detection
9
+
10
+ Sources:
11
+ - imp0rtp3/js-yara-rules: obfuscator.io patterns
12
+ - Nils Kuhnert: SocGholish patterns
13
+ - Josh Trombley: SocGholish inject patterns
14
+
15
+ Attribution: @imp0rtp3, Nils Kuhnert, Josh Trombley
16
+ */
17
+
18
+ rule SUSP_JS_Obfuscator_IO
19
+ {
20
+ meta:
21
+ description = "Detects JavaScript obfuscated by obfuscator.io (common in malware)"
22
+ author = "@imp0rtp3 (adapted)"
23
+ reference = "https://github.com/imp0rtp3/js-yara-rules"
24
+ date = "2021-01-01"
25
+ modified = "2025-01-30"
26
+ score = 60
27
+
28
+ strings:
29
+ // Beginning of obfuscated script - variable naming pattern
30
+ $start1 = "var a0_0x" ascii
31
+ $start2 = /var _0x[a-f0-9]{4}/ ascii
32
+
33
+ // Obfuscator.io specific function call patterns
34
+ $pattern1 = /a0_0x([a-f0-9]{2}){2,4}\('?0x[0-9a-f]{1,3}'?\)/
35
+ $pattern2 = /_0x([a-f0-9]{2}){2,4}\('?0x[0-9a-f]{1,3}'?\)/
36
+ $pattern3 = /_0x([a-f0-9]{2}){2,4}\['push'\]\(_0x([a-f0-9]{2}){2,4}\['shift'\]\(\)\)/
37
+
38
+ // Common obfuscator.io code patterns
39
+ $code1 = "))),function(){try{var _0x" ascii
40
+ $code2 = "['atob']=function(" ascii
41
+ $code3 = ")['replace'](/=+$/,'');var" ascii
42
+ $code4 = "return!![]" ascii
43
+ $code5 = "while(!![])" ascii
44
+
45
+ condition:
46
+ filesize < 1MB and
47
+ (
48
+ // Script starts with obfuscator pattern
49
+ $start1 at 0 or
50
+ $start2 at 0 or
51
+
52
+ // High density of obfuscated function calls
53
+ (#pattern1 + #pattern2) > (filesize \ 200) or
54
+ #pattern3 > 1 or
55
+
56
+ // Multiple obfuscator code patterns
57
+ 3 of ($code*)
58
+ )
59
+ }
60
+
61
+ rule MAL_JS_SocGholish_Dropper
62
+ {
63
+ meta:
64
+ description = "Detects SocGholish fake update JavaScript dropper via ActiveX and bracket notation patterns"
65
+ author = "Nils Kuhnert (adapted)"
66
+ reference = "https://github.com/imp0rtp3/js-yara-rules"
67
+ date = "2021-03-29"
68
+ modified = "2025-01-30"
69
+ hash1 = "7ccbdcde5a9b30f8b2b866a5ca173063dec7bc92034e7cf10e3eebff017f3c23"
70
+ score = 85
71
+
72
+ strings:
73
+ // Must start with try block (SocGholish signature)
74
+ // Note: Short string, but position-anchored in condition
75
+ $try_block = "try{" ascii
76
+
77
+ // ActiveX object creation (Windows-specific)
78
+ $ax1 = "new ActiveXObject('Scripting.FileSystemObject');" ascii
79
+ $ax2 = "new ActiveXObject('MSXML2.XMLHTTP')" ascii
80
+
81
+ // Bracket notation to evade detection
82
+ $brack1 = "['DeleteFile']" ascii
83
+ $brack2 = "['WScript']['ScriptFullName']" ascii
84
+ $brack3 = "['WScript']['Sleep'](1000)" ascii
85
+ $brack4 = "this['eval']" ascii
86
+ $brack5 = "String['fromCharCode']" ascii
87
+
88
+ // Magic numbers used in decoding
89
+ $magic1 = "2), 16)," ascii
90
+ $magic2 = "= 103," ascii
91
+ $magic3 = "'00000000'" ascii
92
+
93
+ condition:
94
+ // SocGholish starts with "try{" block
95
+ $try_block in (0..10) and
96
+
97
+ // Typical size range for SocGholish dropper
98
+ filesize > 3KB and filesize < 5KB and
99
+
100
+ // Need most of these patterns
101
+ 8 of ($ax*, $brack*, $magic*)
102
+ }
103
+
104
+ rule SUSP_JS_Inject_ScriptLoader
105
+ {
106
+ meta:
107
+ description = "Detects JavaScript injection patterns that load external scripts"
108
+ author = "Josh Trombley (adapted)"
109
+ reference = "https://github.com/imp0rtp3/js-yara-rules"
110
+ date = "2021-09-02"
111
+ modified = "2025-01-30"
112
+ score = 55
113
+
114
+ strings:
115
+ // Dynamic script element creation
116
+ $create = "document.createElement('script')" ascii
117
+ $type = "type = 'text/javascript'" ascii nocase
118
+
119
+ // DOM injection
120
+ $get_scripts = "document.getElementsByTagName('script')" ascii
121
+ $insert = ".parentNode.insertBefore(" ascii
122
+
123
+ // Decoding patterns
124
+ $atob = "=window.atob(" ascii
125
+ $regex = "new RegExp(" ascii
126
+
127
+ condition:
128
+ filesize < 500KB and
129
+ all of them
130
+ }
131
+
132
+ rule SUSP_JS_Base64Encoded_Payload
133
+ {
134
+ meta:
135
+ description = "Detects JavaScript with base64-encoded payloads commonly used in injection attacks"
136
+ author = "Josh Trombley (adapted)"
137
+ reference = "https://github.com/imp0rtp3/js-yara-rules"
138
+ date = "2021-09-02"
139
+ modified = "2025-01-30"
140
+ score = 50
141
+
142
+ strings:
143
+ // Base64 strings commonly found in SocGholish injections
144
+ // These decode to browser detection/injection strings
145
+ $b64_referrer = "cmVmZXJyZXI=" ascii // "referrer"
146
+ $b64_useragent = "dXNlckFnZW50" ascii // "userAgent"
147
+ $b64_localStorage = "bG9jYWxTdG9yYWdl" ascii // "localStorage"
148
+ $b64_windows = "V2luZG93cw==" ascii // "Windows"
149
+ $b64_href = "aHJlZg==" ascii // "href"
150
+ $b64_android = "QW5kcm9pZA==" ascii // "Android"
151
+
152
+ condition:
153
+ filesize < 500KB and
154
+ 4 of them
155
+ }
156
+
157
+ rule SUSP_JS_EvalDecode_Chain
158
+ {
159
+ meta:
160
+ description = "Detects eval + decode chains commonly used in JavaScript malware"
161
+ author = "Trail of Bits"
162
+ reference = "https://blog.malwarebytes.com/threat-analysis/2020/10/kraken-attack-uses-eval-to-execute-javascript/"
163
+ date = "2025-01-30"
164
+ score = 65
165
+
166
+ strings:
167
+ // eval + atob (base64 decode)
168
+ $eval_atob = /eval\s*\(\s*atob\s*\(/ nocase
169
+
170
+ // eval + fromCharCode
171
+ $eval_charcode = /eval\s*\(\s*String\.fromCharCode/ nocase
172
+
173
+ // eval + unescape
174
+ $eval_unescape = /eval\s*\(\s*unescape\s*\(/ nocase
175
+
176
+ // Function constructor (alternative to eval)
177
+ $func_constructor = /Function\s*\(\s*['"]return/ nocase
178
+
179
+ // Multiple decode stages
180
+ $multi_decode = /atob\s*\([^)]+atob\s*\(/ nocase
181
+
182
+ condition:
183
+ filesize < 1MB and
184
+ 2 of them
185
+ }