@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,214 @@
1
+ # YARA-X CRX Module Reference
2
+
3
+ The `crx` module enables analysis of Chrome extension packages (CRX files). Use it to detect malicious extensions based on their declared permissions, manifest structure, and metadata.
4
+
5
+ **Version requirements:** YARA-X v1.5.0+
6
+
7
+ ## Module Import
8
+
9
+ ```yara
10
+ import "crx"
11
+ ```
12
+
13
+ ## API Reference
14
+
15
+ ### File Type Validation
16
+
17
+ | Field | Type | Description |
18
+ |-------|------|-------------|
19
+ | `crx.is_crx` | bool | Returns true if file is a valid CRX package |
20
+
21
+ **Always check `crx.is_crx` first.** The module's other fields will not work correctly on non-CRX files.
22
+
23
+ ### Extension Metadata
24
+
25
+ | Field | Type | Description |
26
+ |-------|------|-------------|
27
+ | `crx.id` | string | Extension identifier |
28
+ | `crx.version` | string | Extension version string |
29
+ | `crx.name` | string | Extension display name (localized) |
30
+ | `crx.description` | string | Extension description (localized) |
31
+ | `crx.raw_name` | string | Extension name without localization |
32
+ | `crx.raw_description` | string | Extension description without localization |
33
+ | `crx.homepage_url` | string | Extension homepage URL |
34
+
35
+ ### CRX Format Information
36
+
37
+ | Field | Type | Description |
38
+ |-------|------|-------------|
39
+ | `crx.crx_version` | integer | CRX format version (2 or 3) |
40
+ | `crx.header_size` | integer | Size of the CRX header in bytes |
41
+
42
+ ### Permission Analysis
43
+
44
+ | Field | Description | Example |
45
+ |-------|-------------|---------|
46
+ | `crx.permissions` | Array of declared permissions | `for any perm in crx.permissions` |
47
+ | `crx.optional_permissions` | Array of optional permissions | `for any perm in crx.optional_permissions` |
48
+ | `crx.host_permissions` | Array of host patterns (MV3) | `for any host in crx.host_permissions` |
49
+ | `crx.optional_host_permissions` | Array of optional host patterns | `for any host in crx.optional_host_permissions` |
50
+
51
+ ### Signature Verification
52
+
53
+ | Field | Type | Description |
54
+ |-------|------|-------------|
55
+ | `crx.signatures` | array | Array of signature objects |
56
+ | `crx.signatures[i].key` | string | Public key for this signature |
57
+ | `crx.signatures[i].verified` | bool | Whether signature verification passed |
58
+
59
+ ```yara
60
+ // Check if extension has a verified signature
61
+ rule CRX_VerifiedSignature
62
+ {
63
+ condition:
64
+ crx.is_crx and
65
+ for any sig in crx.signatures : (sig.verified)
66
+ }
67
+ ```
68
+
69
+ ## Permission Risk Assessment
70
+
71
+ ### High-Risk Permissions
72
+
73
+ These permissions enable significant access and should trigger careful review:
74
+
75
+ | Permission | Risk | Legitimate Uses |
76
+ |------------|------|-----------------|
77
+ | `debugger` | Can intercept all traffic, modify any page | DevTools extensions |
78
+ | `nativeMessaging` | Communicate with local executables | Password managers, native integrations |
79
+ | `<all_urls>` | Access all websites | Ad blockers, universal tools |
80
+ | `proxy` | Route all traffic through specified proxy | VPN extensions |
81
+ | `webRequest` + `webRequestBlocking` | Intercept/modify requests | Ad blockers, privacy tools |
82
+ | `cookies` (with broad hosts) | Access authentication tokens | Session managers |
83
+ | `history` | Read complete browsing history | Productivity trackers |
84
+
85
+ ### Red Flag Combinations
86
+
87
+ These permission combinations are especially suspicious:
88
+
89
+ ```yara
90
+ // Data exfiltration potential
91
+ condition:
92
+ crx.is_crx and
93
+ for any perm in crx.permissions : (perm == "nativeMessaging") and
94
+ for any perm in crx.permissions : (perm == "<all_urls>" or perm == "*://*/*")
95
+
96
+ // Credential theft potential
97
+ condition:
98
+ crx.is_crx and
99
+ for any perm in crx.permissions : (perm == "webRequest") and
100
+ for any perm in crx.permissions : (perm == "webRequestBlocking") and
101
+ for any host in crx.host_permissions : (host contains "://*/*")
102
+
103
+ // Man-in-the-browser potential
104
+ condition:
105
+ crx.is_crx and
106
+ for any perm in crx.permissions : (perm == "debugger") and
107
+ for any perm in crx.permissions : (perm == "tabs")
108
+ ```
109
+
110
+ ## Example Rules
111
+
112
+ ### Detect High-Risk Extension
113
+
114
+ ```yara
115
+ import "crx"
116
+
117
+ rule SUSP_CRX_HighRiskProfile
118
+ {
119
+ meta:
120
+ description = "Detects extensions with high-risk permission combinations"
121
+ score = 70
122
+
123
+ condition:
124
+ crx.is_crx and
125
+
126
+ // Count dangerous permissions
127
+ (
128
+ (for any p in crx.permissions : (p == "debugger")) +
129
+ (for any p in crx.permissions : (p == "nativeMessaging")) +
130
+ (for any p in crx.permissions : (p == "proxy")) +
131
+ (for any p in crx.permissions : (p == "webRequestBlocking"))
132
+ ) >= 2 and
133
+
134
+ // Has broad host access
135
+ for any h in crx.host_permissions : (
136
+ h == "<all_urls>" or h contains "://*/*"
137
+ )
138
+ }
139
+ ```
140
+
141
+ ### Detect Unverified Signatures
142
+
143
+ ```yara
144
+ import "crx"
145
+
146
+ rule SUSP_CRX_UnverifiedSignature
147
+ {
148
+ meta:
149
+ description = "Detects CRX files with unverified or missing signatures"
150
+ score = 60
151
+
152
+ condition:
153
+ crx.is_crx and
154
+ not for any sig in crx.signatures : (sig.verified)
155
+ }
156
+ ```
157
+
158
+ ### Combine with String Patterns
159
+
160
+ ```yara
161
+ import "crx"
162
+
163
+ rule SUSP_CRX_CryptoMiner
164
+ {
165
+ meta:
166
+ description = "Detects potential cryptomining extensions"
167
+ score = 80
168
+
169
+ strings:
170
+ $miner1 = "CoinHive" ascii wide nocase
171
+ $miner2 = "coinhive.min.js" ascii
172
+ $miner3 = /Miner\.(start|stop)\s*\(/
173
+ $wasm_miner = "cryptonight" ascii
174
+ $pool_stratum = /stratum\+tcp:\/\//
175
+
176
+ condition:
177
+ crx.is_crx and
178
+
179
+ // Needs background execution
180
+ for any perm in crx.permissions : (
181
+ perm == "background" or perm == "alarms"
182
+ ) and
183
+
184
+ // Miner indicators
185
+ (2 of ($miner*) or $wasm_miner or $pool_stratum)
186
+ }
187
+ ```
188
+
189
+ ## Best Practices
190
+
191
+ 1. **Always validate file type first** — Start conditions with `crx.is_crx`
192
+
193
+ 2. **Don't over-match on common permissions** — `storage`, `activeTab`, `tabs` are used by most extensions
194
+
195
+ 3. **Combine permissions with behavioral indicators** — Permission + suspicious string pattern is stronger than permission alone
196
+
197
+ 4. **Use signatures for hunting** — Extensions with unverified signatures are worth investigating
198
+
199
+ 5. **Test against legitimate extensions** — Chrome Web Store top extensions are your goodware corpus
200
+
201
+ ## Troubleshooting
202
+
203
+ **Rule doesn't match CRX files:**
204
+ - Verify the file is a valid CRX (not just a renamed ZIP)
205
+ - Check YARA-X version (`yr --version`) meets requirements
206
+ - Use `yr dump -m crx extension.crx` to inspect what the module sees
207
+
208
+ **Permission iteration not working:**
209
+ - Ensure proper syntax: `for any perm in crx.permissions : (perm == "...")`
210
+ - Permissions are strings, not identifiers
211
+
212
+ **Signature verification questions:**
213
+ - `crx.signatures` may be empty for unsigned extensions
214
+ - CRX v2 uses RSA signatures; CRX v3 uses ECDSA
@@ -0,0 +1,383 @@
1
+ # YARA-X DEX Module Reference
2
+
3
+ The `dex` module enables analysis of Android Dalvik Executable (DEX) files. Use it to detect Android malware based on class structure, method signatures, string content, and obfuscation patterns.
4
+
5
+ **Version requirements:** YARA-X v1.11.0+
6
+
7
+ **Important:** The YARA-X `dex` module is **not compatible** with legacy YARA's `dex` module. The API is completely different. Rules must be rewritten.
8
+
9
+ ## Module Import
10
+
11
+ ```yara
12
+ import "dex"
13
+ ```
14
+
15
+ ## API Reference
16
+
17
+ ### File Type Validation
18
+
19
+ | Field | Type | Description |
20
+ |-------|------|-------------|
21
+ | `dex.is_dex` | bool | Returns true if file is valid DEX |
22
+
23
+ **Always check `dex.is_dex` first.** Other fields will not work correctly on non-DEX files.
24
+
25
+ ### Header Information
26
+
27
+ Access via `dex.header.*`:
28
+
29
+ | Field | Type | Description |
30
+ |-------|------|-------------|
31
+ | `dex.header.magic` | integer | DEX magic bytes (hex) |
32
+ | `dex.header.version` | integer | DEX version (35, 36, 37, ...) |
33
+ | `dex.header.checksum` | integer | Adler32 checksum from header (hex) |
34
+ | `dex.header.signature` | string | SHA-1 hash from header |
35
+ | `dex.header.file_size` | integer | Total file size in bytes |
36
+ | `dex.header.header_size` | integer | Header size (hex, usually 0x70) |
37
+ | `dex.header.endian_tag` | integer | Endianness indicator (hex) |
38
+ | `dex.header.link_size` | integer | Link section size |
39
+ | `dex.header.link_off` | integer | Link section offset (hex) |
40
+ | `dex.header.data_size` | integer | Data section size |
41
+ | `dex.header.data_off` | integer | Data section offset (hex) |
42
+
43
+ ### Collections
44
+
45
+ | Field | Type | Description |
46
+ |-------|------|-------------|
47
+ | `dex.strings` | string[] | Array of all strings in DEX |
48
+ | `dex.types` | string[] | Array of type descriptors |
49
+ | `dex.protos` | array | Array of method prototypes |
50
+ | `dex.fields` | array | Array of field definitions |
51
+ | `dex.methods` | array | Array of method definitions |
52
+ | `dex.class_defs` | array | Array of class definitions |
53
+
54
+ ### Method Item Structure
55
+
56
+ Each item in `dex.methods`:
57
+
58
+ | Field | Type | Description |
59
+ |-------|------|-------------|
60
+ | `class` | string | Owning class name |
61
+ | `name` | string | Method name |
62
+ | `proto.shorty` | string | Short-form method signature |
63
+ | `proto.return_type` | string | Return type descriptor |
64
+ | `proto.parameters_count` | integer | Number of parameters |
65
+ | `proto.parameters` | string[] | Parameter type descriptors |
66
+
67
+ ### Class Definition Structure
68
+
69
+ Each item in `dex.class_defs`:
70
+
71
+ | Field | Type | Description |
72
+ |-------|------|-------------|
73
+ | `class` | string | Fully qualified class name |
74
+ | `access_flags` | integer | Class access modifiers |
75
+ | `superclass` | string | Parent class name |
76
+ | `source_file` | string | Source file name (if present) |
77
+
78
+ ### Convenience Functions
79
+
80
+ These functions search across all entries efficiently using binary search:
81
+
82
+ | Function | Description | Example |
83
+ |----------|-------------|---------|
84
+ | `dex.contains_string(pattern)` | Check if any string matches | `dex.contains_string("decrypt")` |
85
+ | `dex.contains_method(pattern)` | Check if any method name matches | `dex.contains_method("loadClass")` |
86
+ | `dex.contains_class(pattern)` | Check if any class matches | `dex.contains_class("Ldalvik/system/DexClassLoader;")` |
87
+
88
+ ### Integrity Functions
89
+
90
+ | Function | Description |
91
+ |----------|-------------|
92
+ | `dex.checksum()` | Compute actual Adler32 checksum (compare with `dex.header.checksum`) |
93
+ | `dex.signature()` | Compute actual SHA-1 signature (compare with `dex.header.signature`) |
94
+
95
+ ```yara
96
+ // Detect tampered DEX files
97
+ rule SUSP_DEX_ChecksumMismatch
98
+ {
99
+ condition:
100
+ dex.is_dex and
101
+ dex.checksum() != dex.header.checksum
102
+ }
103
+ ```
104
+
105
+ ## Obfuscation Detection
106
+
107
+ ### Single-Letter Class Names
108
+
109
+ Heavy obfuscation often produces single-letter class/package names:
110
+
111
+ ```yara
112
+ import "dex"
113
+
114
+ rule SUSP_DEX_HeavyObfuscation
115
+ {
116
+ meta:
117
+ description = "Detects DEX with likely ProGuard/R8 aggressive obfuscation"
118
+
119
+ condition:
120
+ dex.is_dex and
121
+
122
+ // Count classes with single-letter names
123
+ for 10 c in dex.class_defs : (
124
+ c.class matches /^L[a-z]\/[a-z]\/[a-z];$/
125
+ )
126
+ }
127
+ ```
128
+
129
+ ### Missing Source File Info
130
+
131
+ Legitimate apps usually preserve source file names for crash reports:
132
+
133
+ ```yara
134
+ rule SUSP_DEX_StrippedDebugInfo
135
+ {
136
+ meta:
137
+ description = "DEX has no source file information - unusual for production apps"
138
+
139
+ condition:
140
+ dex.is_dex and
141
+
142
+ // No class has source file info
143
+ for all c in dex.class_defs : (
144
+ c.source_file == ""
145
+ )
146
+ }
147
+ ```
148
+
149
+ ### String Encryption Detection
150
+
151
+ Malware often encrypts strings to evade static analysis:
152
+
153
+ ```yara
154
+ rule SUSP_DEX_StringDecryption
155
+ {
156
+ meta:
157
+ description = "Detects common string decryption patterns in Android malware"
158
+
159
+ condition:
160
+ dex.is_dex and
161
+
162
+ // Look for decryption method patterns
163
+ (
164
+ dex.contains_method("decrypt") or
165
+ dex.contains_method("deobfuscate")
166
+ ) and
167
+
168
+ // Combined with XOR or Base64 indicators
169
+ dex.contains_string("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
170
+ }
171
+ ```
172
+
173
+ ## Common Malware Patterns
174
+
175
+ ### Reflection-Based Loading
176
+
177
+ Malware uses reflection to load code dynamically:
178
+
179
+ ```yara
180
+ import "dex"
181
+
182
+ rule SUSP_DEX_ReflectionLoading
183
+ {
184
+ meta:
185
+ description = "Detects dynamic class loading via reflection"
186
+
187
+ condition:
188
+ dex.is_dex and
189
+
190
+ // DexClassLoader or PathClassLoader usage
191
+ (
192
+ dex.contains_class("Ldalvik/system/DexClassLoader;") or
193
+ dex.contains_class("Ldalvik/system/PathClassLoader;") or
194
+ dex.contains_class("Ldalvik/system/InMemoryDexClassLoader;")
195
+ ) and
196
+
197
+ // Combined with reflection
198
+ (
199
+ dex.contains_method("loadClass") or
200
+ dex.contains_method("forName")
201
+ )
202
+ }
203
+ ```
204
+
205
+ ### SMS/Call Interception
206
+
207
+ Banking trojans commonly intercept SMS for 2FA bypass:
208
+
209
+ ```yara
210
+ import "dex"
211
+
212
+ rule MAL_DEX_SMSInterception
213
+ {
214
+ meta:
215
+ description = "Detects SMS interception capabilities"
216
+ score = 70
217
+
218
+ condition:
219
+ dex.is_dex and
220
+
221
+ // SMS receiver registration
222
+ dex.contains_string("android.provider.Telephony.SMS_RECEIVED") and
223
+
224
+ // SMS content access
225
+ (
226
+ dex.contains_string("content://sms") or
227
+ dex.contains_method("getMessageBody")
228
+ ) and
229
+
230
+ // Network exfiltration
231
+ (
232
+ dex.contains_class("Ljava/net/HttpURLConnection;") or
233
+ dex.contains_class("Lokhttp3/OkHttpClient;")
234
+ )
235
+ }
236
+ ```
237
+
238
+ ### Accessibility Service Abuse
239
+
240
+ Malware abuses accessibility for overlay attacks:
241
+
242
+ ```yara
243
+ import "dex"
244
+
245
+ rule SUSP_DEX_AccessibilityAbuse
246
+ {
247
+ meta:
248
+ description = "Detects potential accessibility service abuse for overlay attacks"
249
+
250
+ condition:
251
+ dex.is_dex and
252
+
253
+ // AccessibilityService implementation
254
+ for any c in dex.class_defs : (
255
+ c.superclass contains "AccessibilityService"
256
+ ) and
257
+
258
+ // Window overlay
259
+ (
260
+ dex.contains_string("android.permission.SYSTEM_ALERT_WINDOW") or
261
+ dex.contains_string("TYPE_APPLICATION_OVERLAY")
262
+ ) and
263
+
264
+ // Combined with sensitive actions
265
+ (
266
+ dex.contains_string("performGlobalAction") or
267
+ dex.contains_method("dispatchGesture")
268
+ )
269
+ }
270
+ ```
271
+
272
+ ## Example Rules
273
+
274
+ ### Banking Trojan Detection
275
+
276
+ ```yara
277
+ import "dex"
278
+
279
+ rule MAL_DEX_BankingTrojan
280
+ {
281
+ meta:
282
+ description = "Detects common banking trojan patterns"
283
+ score = 80
284
+
285
+ strings:
286
+ // Overlay injection strings
287
+ $overlay1 = "android.app.action.ADD_DEVICE_ADMIN" ascii
288
+ $overlay2 = "BIND_ACCESSIBILITY_SERVICE" ascii
289
+
290
+ // Target banking app packages
291
+ $bank1 = "com.chase.sig.android" ascii
292
+ $bank2 = "com.wellsfargo.mobile" ascii
293
+ $bank3 = "com.bankofamerica" ascii
294
+
295
+ condition:
296
+ dex.is_dex and
297
+
298
+ // Has accessibility abuse potential
299
+ for any c in dex.class_defs : (
300
+ c.superclass contains "AccessibilityService"
301
+ ) and
302
+
303
+ // Overlay indicators
304
+ any of ($overlay*) and
305
+
306
+ // Targets specific banks (reduce FPs)
307
+ any of ($bank*) and
308
+
309
+ // Network capability
310
+ (
311
+ dex.contains_class("Lokhttp3/") or
312
+ dex.contains_class("Ljava/net/HttpURLConnection;")
313
+ )
314
+ }
315
+ ```
316
+
317
+ ### RAT Detection
318
+
319
+ ```yara
320
+ import "dex"
321
+
322
+ rule MAL_DEX_RemoteAccessTrojan
323
+ {
324
+ meta:
325
+ description = "Detects Android RAT capabilities"
326
+ score = 85
327
+
328
+ condition:
329
+ dex.is_dex and
330
+
331
+ // Camera/mic access
332
+ (
333
+ dex.contains_string("android.permission.CAMERA") and
334
+ dex.contains_string("android.permission.RECORD_AUDIO")
335
+ ) and
336
+
337
+ // Location tracking
338
+ dex.contains_string("android.permission.ACCESS_FINE_LOCATION") and
339
+
340
+ // Command channel
341
+ (
342
+ dex.contains_string("socket") or
343
+ dex.contains_class("Ljava/net/Socket;")
344
+ ) and
345
+
346
+ // File exfiltration
347
+ (
348
+ dex.contains_method("getExternalStorage") or
349
+ dex.contains_string("/sdcard/")
350
+ )
351
+ }
352
+ ```
353
+
354
+ ## Best Practices
355
+
356
+ 1. **Always validate file type first** — Start with `dex.is_dex`
357
+
358
+ 2. **Use `contains_*()` functions** — They use binary search and are optimized
359
+
360
+ 3. **Combine class/method patterns** — Single indicators are weak; combinations are stronger
361
+
362
+ 4. **Account for obfuscation** — Class names may be mangled; look for method behaviors
363
+
364
+ 5. **Test on legitimate apps** — Top Play Store apps are your goodware corpus
365
+
366
+ 6. **Consider multi-dex** — Large apps split into multiple DEX files; scan all
367
+
368
+ ## Troubleshooting
369
+
370
+ **Rule doesn't match DEX files:**
371
+ - Verify the file is valid DEX (`file sample.dex` should show "Dalvik dex file")
372
+ - Check YARA-X version is v1.11.0+
373
+ - Use `yr dump -m dex sample.dex` to inspect module output
374
+
375
+ **contains_* functions not working:**
376
+ - Requires YARA-X v1.11.0+
377
+ - String patterns are case-sensitive by default
378
+ - Use exact class names with L prefix and ; suffix: `Lcom/example/Class;`
379
+
380
+ **Migrating from legacy YARA dex module:**
381
+ - APIs are completely different — rewrite is required
382
+ - Legacy: `dex.has_class("...")` → YARA-X: `dex.contains_class("...")`
383
+ - Legacy field names differ from YARA-X field names