windows-exe-decompiler-mcp-server 0.1.4 → 1.0.0-beta.2

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 (539) hide show
  1. package/CHANGELOG.md +267 -0
  2. package/CLAUDE_INSTALLATION.md +43 -0
  3. package/CODEX_INSTALLATION.md +12 -0
  4. package/COPILOT_INSTALLATION.md +12 -0
  5. package/README.md +528 -35
  6. package/README_zh.md +211 -17
  7. package/bin/windows-exe-decompiler-mcp-docker.js +5 -0
  8. package/bin/windows-exe-decompiler-mcp-server.js +10 -1
  9. package/dist/analysis-budget-scheduler.d.ts +96 -0
  10. package/dist/analysis-budget-scheduler.js +608 -0
  11. package/dist/analysis-coverage.d.ts +290 -0
  12. package/dist/analysis-coverage.js +178 -0
  13. package/dist/analysis-evidence.d.ts +232 -0
  14. package/dist/analysis-evidence.js +337 -0
  15. package/dist/analysis-provenance.d.ts +300 -154
  16. package/dist/analysis-provenance.js +27 -0
  17. package/dist/analysis-run-state.d.ts +576 -0
  18. package/dist/analysis-run-state.js +563 -0
  19. package/dist/analysis-task-runner.d.ts +4 -1
  20. package/dist/analysis-task-runner.js +170 -2
  21. package/dist/api/auth-middleware.d.ts +29 -0
  22. package/dist/api/auth-middleware.js +62 -0
  23. package/dist/api/file-server.d.ts +49 -0
  24. package/dist/api/file-server.js +557 -0
  25. package/dist/api/multipart-parser.d.ts +19 -0
  26. package/dist/api/multipart-parser.js +96 -0
  27. package/dist/api/rate-limiter.d.ts +29 -0
  28. package/dist/api/rate-limiter.js +106 -0
  29. package/dist/api/routes/dashboard-api.d.ts +21 -0
  30. package/dist/api/routes/dashboard-api.js +249 -0
  31. package/dist/api/routes/health.d.ts +17 -0
  32. package/dist/api/routes/health.js +19 -0
  33. package/dist/api/sse-events.d.ts +35 -0
  34. package/dist/api/sse-events.js +108 -0
  35. package/dist/artifact-inventory.js +3 -0
  36. package/dist/async-tool-wrapper.d.ts +28 -0
  37. package/dist/async-tool-wrapper.js +75 -0
  38. package/dist/binary-diff-engine.d.ts +117 -0
  39. package/dist/binary-diff-engine.js +123 -0
  40. package/dist/cache-manager.d.ts +10 -0
  41. package/dist/cache-manager.js +67 -1
  42. package/dist/cfg-visual-exports.d.ts +100 -0
  43. package/dist/cfg-visual-exports.js +653 -0
  44. package/dist/chunked-analysis-evidence.d.ts +20 -0
  45. package/dist/chunked-analysis-evidence.js +45 -0
  46. package/dist/confidence-semantics.d.ts +39 -19
  47. package/dist/confidence-semantics.js +53 -0
  48. package/dist/config-validator.d.ts +24 -0
  49. package/dist/config-validator.js +115 -0
  50. package/dist/config.d.ts +462 -242
  51. package/dist/config.js +201 -0
  52. package/dist/constraint/constraint-extractor.d.ts +68 -0
  53. package/dist/constraint/constraint-extractor.js +212 -0
  54. package/dist/constraint/keygen-synthesizer.d.ts +31 -0
  55. package/dist/constraint/keygen-synthesizer.js +250 -0
  56. package/dist/constraint/mba-simplifier.d.ts +60 -0
  57. package/dist/constraint/mba-simplifier.js +429 -0
  58. package/dist/crypto-breakpoint-analysis.d.ts +920 -0
  59. package/dist/crypto-breakpoint-analysis.js +873 -0
  60. package/dist/crypto-planning-artifacts.d.ts +30 -0
  61. package/dist/crypto-planning-artifacts.js +149 -0
  62. package/dist/database.d.ts +286 -0
  63. package/dist/database.js +1002 -0
  64. package/dist/debug/debug-session-state.d.ts +46 -0
  65. package/dist/debug/debug-session-state.js +103 -0
  66. package/dist/debug/gdb-mi-client.d.ts +38 -0
  67. package/dist/debug/gdb-mi-client.js +262 -0
  68. package/dist/decompiler-worker.d.ts +37 -0
  69. package/dist/decompiler-worker.js +155 -1
  70. package/dist/env-validator.js +3 -9
  71. package/dist/explanation-graphs.d.ts +714 -0
  72. package/dist/explanation-graphs.js +238 -0
  73. package/dist/format-detect.d.ts +6 -0
  74. package/dist/format-detect.js +47 -0
  75. package/dist/frida/script-generator.d.ts +21 -0
  76. package/dist/frida/script-generator.js +93 -0
  77. package/dist/ghidra-config.js +23 -0
  78. package/dist/ghidra-execution-summary.d.ts +92 -92
  79. package/dist/index.d.ts +3 -1
  80. package/dist/index.js +31 -180
  81. package/dist/intent-routing.d.ts +279 -0
  82. package/dist/intent-routing.js +445 -0
  83. package/dist/job-queue.d.ts +21 -1
  84. package/dist/job-queue.js +79 -11
  85. package/dist/kb/capa-import.d.ts +13 -0
  86. package/dist/kb/capa-import.js +102 -0
  87. package/dist/kb/function-kb.d.ts +24 -0
  88. package/dist/kb/function-kb.js +127 -0
  89. package/dist/kb/kb-database.d.ts +58 -0
  90. package/dist/kb/kb-database.js +99 -0
  91. package/dist/kb/kb-export.d.ts +14 -0
  92. package/dist/kb/kb-export.js +79 -0
  93. package/dist/kb/kb-import.d.ts +14 -0
  94. package/dist/kb/kb-import.js +156 -0
  95. package/dist/kb/kb-llm-integration.d.ts +37 -0
  96. package/dist/kb/kb-llm-integration.js +42 -0
  97. package/dist/kb/misp-import.d.ts +19 -0
  98. package/dist/kb/misp-import.js +117 -0
  99. package/dist/kb/sample-kb.d.ts +43 -0
  100. package/dist/kb/sample-kb.js +45 -0
  101. package/dist/kb/search-kb.d.ts +30 -0
  102. package/dist/kb/search-kb.js +107 -0
  103. package/dist/kb/seed-loader.d.ts +15 -0
  104. package/dist/kb/seed-loader.js +59 -0
  105. package/dist/kb/team-kb.d.ts +17 -0
  106. package/dist/kb/team-kb.js +45 -0
  107. package/dist/llm/auto-trigger.d.ts +39 -0
  108. package/dist/llm/auto-trigger.js +113 -0
  109. package/dist/llm/context-manager.d.ts +74 -0
  110. package/dist/llm/context-manager.js +168 -0
  111. package/dist/llm/llm-analyze.d.ts +93 -0
  112. package/dist/llm/llm-analyze.js +165 -0
  113. package/dist/llm/model-router.d.ts +89 -0
  114. package/dist/llm/model-router.js +162 -0
  115. package/dist/logger.js +6 -3
  116. package/dist/nonblocking-analysis.d.ts +21 -0
  117. package/dist/nonblocking-analysis.js +54 -0
  118. package/dist/npm-docker-launcher.d.ts +22 -0
  119. package/dist/npm-docker-launcher.js +160 -0
  120. package/dist/pagination.d.ts +21 -0
  121. package/dist/pagination.js +25 -0
  122. package/dist/performance-benchmark.d.ts +105 -0
  123. package/dist/performance-benchmark.js +217 -0
  124. package/dist/plugin-registry.d.ts +65 -0
  125. package/dist/plugin-registry.js +143 -0
  126. package/dist/plugins/android/index.d.ts +9 -0
  127. package/dist/plugins/android/index.js +38 -0
  128. package/dist/plugins/android/tools/apk-packer-detect.d.ts +15 -0
  129. package/dist/plugins/android/tools/apk-packer-detect.js +74 -0
  130. package/dist/plugins/android/tools/apk-structure-analyze.d.ts +50 -0
  131. package/dist/plugins/android/tools/apk-structure-analyze.js +87 -0
  132. package/dist/plugins/android/tools/dex-classes-list.d.ts +15 -0
  133. package/dist/plugins/android/tools/dex-classes-list.js +66 -0
  134. package/dist/plugins/android/tools/dex-decompile.d.ts +52 -0
  135. package/dist/plugins/android/tools/dex-decompile.js +90 -0
  136. package/dist/plugins/crackme/index.d.ts +9 -0
  137. package/dist/plugins/crackme/index.js +31 -0
  138. package/dist/plugins/crackme/tools/crackme-locate-validation.d.ts +17 -0
  139. package/dist/plugins/crackme/tools/crackme-locate-validation.js +221 -0
  140. package/dist/plugins/crackme/tools/keygen-verify.d.ts +31 -0
  141. package/dist/plugins/crackme/tools/keygen-verify.js +121 -0
  142. package/dist/plugins/crackme/tools/patch-generate.d.ts +56 -0
  143. package/dist/plugins/crackme/tools/patch-generate.js +273 -0
  144. package/dist/plugins/crackme/tools/symbolic-explore.d.ts +37 -0
  145. package/dist/plugins/crackme/tools/symbolic-explore.js +109 -0
  146. package/dist/plugins/cross-module/index.d.ts +9 -0
  147. package/dist/plugins/cross-module/index.js +22 -0
  148. package/dist/plugins/cross-module/tools/call-graph-cross-module.d.ts +20 -0
  149. package/dist/plugins/cross-module/tools/call-graph-cross-module.js +187 -0
  150. package/dist/plugins/cross-module/tools/cross-binary-compare.d.ts +20 -0
  151. package/dist/plugins/cross-module/tools/cross-binary-compare.js +188 -0
  152. package/dist/plugins/cross-module/tools/dll-dependency-tree.d.ts +20 -0
  153. package/dist/plugins/cross-module/tools/dll-dependency-tree.js +146 -0
  154. package/dist/plugins/debug-session/index.d.ts +10 -0
  155. package/dist/plugins/debug-session/index.js +42 -0
  156. package/dist/plugins/debug-session/tools/debug-session-breakpoint.d.ts +58 -0
  157. package/dist/plugins/debug-session/tools/debug-session-breakpoint.js +108 -0
  158. package/dist/plugins/debug-session/tools/debug-session-continue.d.ts +49 -0
  159. package/dist/plugins/debug-session/tools/debug-session-continue.js +82 -0
  160. package/dist/plugins/debug-session/tools/debug-session-end.d.ts +49 -0
  161. package/dist/plugins/debug-session/tools/debug-session-end.js +71 -0
  162. package/dist/plugins/debug-session/tools/debug-session-inspect.d.ts +58 -0
  163. package/dist/plugins/debug-session/tools/debug-session-inspect.js +110 -0
  164. package/dist/plugins/debug-session/tools/debug-session-start.d.ts +49 -0
  165. package/dist/plugins/debug-session/tools/debug-session-start.js +60 -0
  166. package/dist/plugins/debug-session/tools/debug-session-step.d.ts +49 -0
  167. package/dist/plugins/debug-session/tools/debug-session-step.js +88 -0
  168. package/dist/plugins/dynamic/index.d.ts +9 -0
  169. package/dist/plugins/dynamic/index.js +25 -0
  170. package/dist/plugins/dynamic/tools/dynamic-auto-hook.d.ts +23 -0
  171. package/dist/plugins/dynamic/tools/dynamic-auto-hook.js +220 -0
  172. package/dist/plugins/dynamic/tools/dynamic-memory-dump.d.ts +28 -0
  173. package/dist/plugins/dynamic/tools/dynamic-memory-dump.js +196 -0
  174. package/dist/plugins/dynamic/tools/dynamic-trace-attribute.d.ts +19 -0
  175. package/dist/plugins/dynamic/tools/dynamic-trace-attribute.js +172 -0
  176. package/dist/plugins/frida/index.d.ts +9 -0
  177. package/dist/plugins/frida/index.js +35 -0
  178. package/dist/plugins/frida/tools/frida-runtime-instrument.d.ts +71 -0
  179. package/dist/plugins/frida/tools/frida-runtime-instrument.js +448 -0
  180. package/dist/plugins/frida/tools/frida-script-inject.d.ts +71 -0
  181. package/dist/plugins/frida/tools/frida-script-inject.js +468 -0
  182. package/dist/plugins/frida/tools/frida-trace-capture.d.ts +363 -0
  183. package/dist/plugins/frida/tools/frida-trace-capture.js +504 -0
  184. package/dist/plugins/ghidra/index.d.ts +9 -0
  185. package/dist/plugins/ghidra/index.js +37 -0
  186. package/dist/plugins/ghidra/tools/ghidra-analyze.d.ts +217 -0
  187. package/dist/{tools → plugins/ghidra/tools}/ghidra-analyze.js +84 -51
  188. package/dist/plugins/ghidra/tools/ghidra-health.d.ts +84 -0
  189. package/dist/{tools → plugins/ghidra/tools}/ghidra-health.js +9 -12
  190. package/dist/plugins/kb-collaboration/index.d.ts +9 -0
  191. package/dist/plugins/kb-collaboration/index.js +20 -0
  192. package/dist/plugins/kb-collaboration/tools/analysis-template.d.ts +23 -0
  193. package/dist/plugins/kb-collaboration/tools/analysis-template.js +202 -0
  194. package/dist/plugins/kb-collaboration/tools/kb-function-match.d.ts +26 -0
  195. package/dist/plugins/kb-collaboration/tools/kb-function-match.js +193 -0
  196. package/dist/plugins/malware/index.d.ts +9 -0
  197. package/dist/plugins/malware/index.js +28 -0
  198. package/dist/plugins/malware/tools/c2-extract.d.ts +16 -0
  199. package/dist/plugins/malware/tools/c2-extract.js +82 -0
  200. package/dist/plugins/malware/tools/malware-classify.d.ts +16 -0
  201. package/dist/plugins/malware/tools/malware-classify.js +98 -0
  202. package/dist/plugins/malware/tools/malware-config-extract.d.ts +16 -0
  203. package/dist/plugins/malware/tools/malware-config-extract.js +83 -0
  204. package/dist/plugins/malware/tools/sandbox-report.d.ts +20 -0
  205. package/dist/plugins/malware/tools/sandbox-report.js +166 -0
  206. package/dist/plugins/memory-forensics/index.d.ts +11 -0
  207. package/dist/plugins/memory-forensics/index.js +205 -0
  208. package/dist/plugins/observability/index.d.ts +11 -0
  209. package/dist/plugins/observability/index.js +139 -0
  210. package/dist/plugins/pe-analysis/index.d.ts +10 -0
  211. package/dist/plugins/pe-analysis/index.js +32 -0
  212. package/dist/plugins/pe-analysis/tools/pe-exports-extract.d.ts +172 -0
  213. package/dist/{tools → plugins/pe-analysis/tools}/pe-exports-extract.js +23 -26
  214. package/dist/plugins/pe-analysis/tools/pe-fingerprint.d.ts +231 -0
  215. package/dist/{tools → plugins/pe-analysis/tools}/pe-fingerprint.js +21 -24
  216. package/dist/plugins/pe-analysis/tools/pe-imports-extract.d.ts +102 -0
  217. package/dist/{tools → plugins/pe-analysis/tools}/pe-imports-extract.js +22 -25
  218. package/dist/plugins/pe-analysis/tools/pe-pdata-extract.d.ts +445 -0
  219. package/dist/{tools → plugins/pe-analysis/tools}/pe-pdata-extract.js +6 -5
  220. package/dist/plugins/pe-analysis/tools/pe-structure-analyze.d.ts +490 -0
  221. package/dist/plugins/pe-analysis/tools/pe-structure-analyze.js +247 -0
  222. package/dist/plugins/pe-analysis/tools/pe-symbols-recover.d.ts +219 -0
  223. package/dist/{tools → plugins/pe-analysis/tools}/pe-symbols-recover.js +10 -9
  224. package/dist/plugins/plugin-sandbox-worker.d.ts +13 -0
  225. package/dist/plugins/plugin-sandbox-worker.js +80 -0
  226. package/dist/plugins/plugin-sandbox.d.ts +62 -0
  227. package/dist/plugins/plugin-sandbox.js +142 -0
  228. package/dist/plugins/sdk.d.ts +193 -0
  229. package/dist/plugins/sdk.js +14 -0
  230. package/dist/plugins/threat-intel/index.d.ts +9 -0
  231. package/dist/plugins/threat-intel/index.js +20 -0
  232. package/dist/plugins/threat-intel/tools/attack-map.d.ts +287 -0
  233. package/dist/{tools → plugins/threat-intel/tools}/attack-map.js +4 -3
  234. package/dist/plugins/threat-intel/tools/ioc-export.d.ts +206 -0
  235. package/dist/{tools → plugins/threat-intel/tools}/ioc-export.js +4 -3
  236. package/dist/plugins/visualization/index.d.ts +9 -0
  237. package/dist/plugins/visualization/index.js +22 -0
  238. package/dist/plugins/visualization/tools/behavior-timeline.d.ts +23 -0
  239. package/dist/plugins/visualization/tools/behavior-timeline.js +200 -0
  240. package/dist/plugins/visualization/tools/data-flow-map.d.ts +20 -0
  241. package/dist/plugins/visualization/tools/data-flow-map.js +246 -0
  242. package/dist/plugins/visualization/tools/report-html-generate.d.ts +23 -0
  243. package/dist/plugins/visualization/tools/report-html-generate.js +255 -0
  244. package/dist/plugins/vuln-scanner/index.d.ts +10 -0
  245. package/dist/plugins/vuln-scanner/index.js +21 -0
  246. package/dist/plugins/vuln-scanner/tools/vuln-pattern-scan.d.ts +58 -0
  247. package/dist/plugins/vuln-scanner/tools/vuln-pattern-scan.js +137 -0
  248. package/dist/plugins/vuln-scanner/tools/vuln-pattern-summary.d.ts +49 -0
  249. package/dist/plugins/vuln-scanner/tools/vuln-pattern-summary.js +128 -0
  250. package/dist/plugins.d.ts +84 -0
  251. package/dist/plugins.js +430 -0
  252. package/dist/policy-guard.js +3 -3
  253. package/dist/polling-guidance.d.ts +11 -11
  254. package/dist/polling-guidance.js +4 -1
  255. package/dist/prompts/function-explanation-review.js +2 -0
  256. package/dist/prompts/module-reconstruction-review.js +2 -0
  257. package/dist/prompts/semantic-name-review.js +2 -0
  258. package/dist/python-process-pool.d.ts +55 -0
  259. package/dist/python-process-pool.js +153 -0
  260. package/dist/retry.d.ts +34 -0
  261. package/dist/retry.js +68 -0
  262. package/dist/runtime-correlation.d.ts +42 -0
  263. package/dist/runtime-correlation.js +76 -0
  264. package/dist/runtime-paths.js +36 -3
  265. package/dist/runtime-worker-pool.d.ts +79 -0
  266. package/dist/runtime-worker-pool.js +317 -0
  267. package/dist/safe-command.d.ts +23 -0
  268. package/dist/safe-command.js +71 -0
  269. package/dist/sample-finalization.d.ts +28 -0
  270. package/dist/sample-finalization.js +159 -0
  271. package/dist/selection-diff.d.ts +1050 -513
  272. package/dist/selection-diff.js +20 -4
  273. package/dist/server.d.ts +97 -4
  274. package/dist/server.js +518 -55
  275. package/dist/setup-guidance.d.ts +63 -33
  276. package/dist/setup-guidance.js +410 -6
  277. package/dist/static-analysis-artifacts.d.ts +28 -0
  278. package/dist/static-analysis-artifacts.js +127 -0
  279. package/dist/static-analysis-environment.d.ts +10 -0
  280. package/dist/static-analysis-environment.js +103 -0
  281. package/dist/static-backend-discovery.d.ts +39 -0
  282. package/dist/static-backend-discovery.js +455 -0
  283. package/dist/storage/cleanup-job.d.ts +24 -0
  284. package/dist/storage/cleanup-job.js +150 -0
  285. package/dist/storage/metadata-logger.d.ts +47 -0
  286. package/dist/storage/metadata-logger.js +98 -0
  287. package/dist/storage/storage-manager.d.ts +118 -0
  288. package/dist/storage/storage-manager.js +456 -0
  289. package/dist/streaming-progress.d.ts +23 -0
  290. package/dist/streaming-progress.js +41 -0
  291. package/dist/string-xref-analysis.d.ts +629 -0
  292. package/dist/string-xref-analysis.js +577 -0
  293. package/dist/string-xref-artifacts.d.ts +30 -0
  294. package/dist/string-xref-artifacts.js +149 -0
  295. package/dist/summary-artifacts.d.ts +33 -0
  296. package/dist/summary-artifacts.js +149 -0
  297. package/dist/summary-digests.d.ts +2459 -0
  298. package/dist/summary-digests.js +653 -0
  299. package/dist/tool-name-normalization.d.ts +7 -0
  300. package/dist/tool-name-normalization.js +44 -0
  301. package/dist/tool-registry.d.ts +27 -0
  302. package/dist/tool-registry.js +362 -0
  303. package/dist/tool-surface-guidance.d.ts +6 -0
  304. package/dist/tool-surface-guidance.js +12 -0
  305. package/dist/tools/analysis-context-link.d.ts +275 -0
  306. package/dist/tools/analysis-context-link.js +654 -0
  307. package/dist/tools/artifact-download.d.ts +102 -0
  308. package/dist/tools/artifact-download.js +154 -0
  309. package/dist/tools/artifact-read.d.ts +146 -146
  310. package/dist/tools/artifact-read.js +4 -0
  311. package/dist/tools/artifacts-diff.d.ts +546 -546
  312. package/dist/tools/artifacts-list.d.ts +368 -368
  313. package/dist/tools/artifacts-list.js +1 -0
  314. package/dist/tools/batch-analysis.d.ts +64 -0
  315. package/dist/tools/batch-analysis.js +185 -0
  316. package/dist/tools/binary-diff-summary.d.ts +66 -0
  317. package/dist/tools/binary-diff-summary.js +168 -0
  318. package/dist/tools/binary-diff.d.ts +69 -0
  319. package/dist/tools/binary-diff.js +284 -0
  320. package/dist/tools/binary-role-profile.d.ts +933 -820
  321. package/dist/tools/binary-role-profile.js +126 -19
  322. package/dist/tools/breakpoint-smart.d.ts +436 -0
  323. package/dist/tools/breakpoint-smart.js +288 -0
  324. package/dist/tools/code-function-cfg.d.ts +940 -31
  325. package/dist/tools/code-function-cfg.js +419 -55
  326. package/dist/tools/code-function-decompile.d.ts +20 -20
  327. package/dist/tools/code-function-disassemble.d.ts +12 -12
  328. package/dist/tools/code-function-explain-apply.d.ts +170 -170
  329. package/dist/tools/code-function-explain-prepare.d.ts +344 -344
  330. package/dist/tools/code-function-explain-review.d.ts +258 -258
  331. package/dist/tools/code-function-explain-review.js +17 -2
  332. package/dist/tools/code-function-rename-apply.d.ts +164 -164
  333. package/dist/tools/code-function-rename-prepare.d.ts +350 -350
  334. package/dist/tools/code-function-rename-review.d.ts +400 -400
  335. package/dist/tools/code-function-rename-review.js +17 -2
  336. package/dist/tools/code-functions-define.d.ts +242 -242
  337. package/dist/tools/code-functions-list.d.ts +6 -6
  338. package/dist/tools/code-functions-rank.d.ts +7 -4
  339. package/dist/tools/code-functions-rank.js +34 -2
  340. package/dist/tools/code-functions-reconstruct.d.ts +2812 -2367
  341. package/dist/tools/code-functions-reconstruct.js +4 -1
  342. package/dist/tools/code-functions-search.d.ts +20 -20
  343. package/dist/tools/code-functions-search.js +2 -1
  344. package/dist/tools/code-functions-smart-recover.d.ts +254 -254
  345. package/dist/tools/code-module-review-apply.d.ts +150 -150
  346. package/dist/tools/code-module-review-prepare.d.ts +566 -566
  347. package/dist/tools/code-module-review.d.ts +328 -328
  348. package/dist/tools/code-module-review.js +17 -2
  349. package/dist/tools/code-reconstruct-export.d.ts +1300 -1036
  350. package/dist/tools/code-reconstruct-export.js +4 -4
  351. package/dist/tools/code-reconstruct-plan.d.ts +168 -168
  352. package/dist/tools/code-xrefs-analyze.d.ts +272 -0
  353. package/dist/tools/code-xrefs-analyze.js +344 -0
  354. package/dist/tools/com-role-profile.d.ts +232 -232
  355. package/dist/tools/compiler-packer-detect.d.ts +822 -0
  356. package/dist/tools/compiler-packer-detect.js +401 -0
  357. package/dist/tools/config-validate.d.ts +21 -0
  358. package/dist/tools/config-validate.js +39 -0
  359. package/dist/tools/constraint-extract.d.ts +57 -0
  360. package/dist/tools/constraint-extract.js +110 -0
  361. package/dist/tools/crypto-identify.d.ts +756 -0
  362. package/dist/tools/crypto-identify.js +670 -0
  363. package/dist/tools/dll-export-profile.d.ts +420 -420
  364. package/dist/tools/docker-backend-tools.d.ts +2471 -0
  365. package/dist/tools/docker-backend-tools.js +1692 -0
  366. package/dist/tools/dotnet-metadata-extract.d.ts +320 -320
  367. package/dist/tools/dotnet-reconstruct-export.d.ts +406 -406
  368. package/dist/tools/dotnet-types-list.d.ts +224 -224
  369. package/dist/tools/dynamic-dependencies.d.ts +147 -147
  370. package/dist/tools/dynamic-dependencies.js +143 -8
  371. package/dist/tools/elf-exports-extract.d.ts +51 -0
  372. package/dist/tools/elf-exports-extract.js +97 -0
  373. package/dist/tools/elf-imports-extract.d.ts +51 -0
  374. package/dist/tools/elf-imports-extract.js +105 -0
  375. package/dist/tools/elf-structure-analyze.d.ts +51 -0
  376. package/dist/tools/elf-structure-analyze.js +91 -0
  377. package/dist/tools/kb-export.d.ts +57 -0
  378. package/dist/tools/kb-export.js +68 -0
  379. package/dist/tools/kb-import-bulk.d.ts +54 -0
  380. package/dist/tools/kb-import-bulk.js +142 -0
  381. package/dist/tools/kb-import.d.ts +51 -0
  382. package/dist/tools/kb-import.js +47 -0
  383. package/dist/tools/kb-stats.d.ts +48 -0
  384. package/dist/tools/kb-stats.js +83 -0
  385. package/dist/tools/keygen-synthesize.d.ts +57 -0
  386. package/dist/tools/keygen-synthesize.js +103 -0
  387. package/dist/tools/macho-structure-analyze.d.ts +51 -0
  388. package/dist/tools/macho-structure-analyze.js +91 -0
  389. package/dist/tools/mba-simplify.d.ts +54 -0
  390. package/dist/tools/mba-simplify.js +82 -0
  391. package/dist/tools/packer-detect.d.ts +86 -86
  392. package/dist/tools/packer-detect.js +16 -20
  393. package/dist/tools/plugin-list.d.ts +43 -0
  394. package/dist/tools/plugin-list.js +155 -0
  395. package/dist/tools/report-generate.d.ts +601 -111
  396. package/dist/tools/report-generate.js +206 -8
  397. package/dist/tools/report-summarize.d.ts +7916 -3768
  398. package/dist/tools/report-summarize.js +1181 -50
  399. package/dist/tools/runtime-detect.d.ts +62 -62
  400. package/dist/tools/runtime-detect.js +16 -20
  401. package/dist/tools/rust-binary-analyze.d.ts +1540 -1540
  402. package/dist/tools/rust-binary-analyze.js +2 -2
  403. package/dist/tools/rust-demangle.d.ts +49 -0
  404. package/dist/tools/rust-demangle.js +202 -0
  405. package/dist/tools/sample-ingest.d.ts +73 -38
  406. package/dist/tools/sample-ingest.js +180 -154
  407. package/dist/tools/sample-profile-get.d.ts +340 -218
  408. package/dist/tools/sample-profile-get.js +112 -12
  409. package/dist/tools/sample-request-upload.d.ts +92 -0
  410. package/dist/tools/sample-request-upload.js +91 -0
  411. package/dist/tools/sandbox-execute.d.ts +302 -302
  412. package/dist/tools/sbom-generate.d.ts +27 -0
  413. package/dist/tools/sbom-generate.js +152 -0
  414. package/dist/tools/setup-remediate.d.ts +495 -0
  415. package/dist/tools/setup-remediate.js +259 -0
  416. package/dist/tools/smt-solve.d.ts +60 -0
  417. package/dist/tools/smt-solve.js +157 -0
  418. package/dist/tools/static-capability-triage.d.ts +666 -0
  419. package/dist/tools/static-capability-triage.js +305 -0
  420. package/dist/tools/static-worker-client.d.ts +41 -0
  421. package/dist/tools/static-worker-client.js +59 -0
  422. package/dist/tools/strings-extract.d.ts +1019 -252
  423. package/dist/tools/strings-extract.js +293 -43
  424. package/dist/tools/strings-floss-decode.d.ts +752 -74
  425. package/dist/tools/strings-floss-decode.js +133 -31
  426. package/dist/tools/system-health.d.ts +411 -385
  427. package/dist/tools/system-health.js +158 -9
  428. package/dist/tools/system-setup-guide.d.ts +125 -125
  429. package/dist/tools/system-setup-guide.js +14 -5
  430. package/dist/tools/task-cancel.d.ts +4 -4
  431. package/dist/tools/task-status.d.ts +131 -10
  432. package/dist/tools/task-status.js +300 -69
  433. package/dist/tools/task-sweep.d.ts +4 -4
  434. package/dist/tools/tool-help.d.ts +236 -222
  435. package/dist/tools/tool-help.js +563 -19
  436. package/dist/tools/trace-condition.d.ts +1118 -0
  437. package/dist/tools/trace-condition.js +366 -0
  438. package/dist/tools/unpack-auto.d.ts +132 -0
  439. package/dist/tools/unpack-auto.js +297 -0
  440. package/dist/tools/vm-detect.d.ts +57 -0
  441. package/dist/tools/vm-detect.js +124 -0
  442. package/dist/tools/vm-disasm-build.d.ts +64 -0
  443. package/dist/tools/vm-disasm-build.js +124 -0
  444. package/dist/tools/vm-emulate.d.ts +69 -0
  445. package/dist/tools/vm-emulate.js +131 -0
  446. package/dist/tools/vm-opcode-extract.d.ts +60 -0
  447. package/dist/tools/vm-opcode-extract.js +122 -0
  448. package/dist/tools/vm-pattern-analyze.d.ts +64 -0
  449. package/dist/tools/vm-pattern-analyze.js +142 -0
  450. package/dist/tools/vm-semantic-diff.d.ts +57 -0
  451. package/dist/tools/vm-semantic-diff.js +83 -0
  452. package/dist/tools/yara-generate-batch.d.ts +60 -0
  453. package/dist/tools/yara-generate-batch.js +169 -0
  454. package/dist/tools/yara-generate.d.ts +63 -0
  455. package/dist/tools/yara-generate.js +168 -0
  456. package/dist/tools/yara-scan.d.ts +358 -358
  457. package/dist/tools/yara-scan.js +16 -20
  458. package/dist/types.d.ts +5 -1
  459. package/dist/unpack-debug-runtime.d.ts +421 -0
  460. package/dist/unpack-debug-runtime.js +542 -0
  461. package/dist/unpack-strategy.d.ts +50 -0
  462. package/dist/unpack-strategy.js +356 -0
  463. package/dist/visualization/call-graph.d.ts +57 -0
  464. package/dist/visualization/call-graph.js +147 -0
  465. package/dist/visualization/crypto-flow.d.ts +50 -0
  466. package/dist/visualization/crypto-flow.js +152 -0
  467. package/dist/visualization/data-flow.d.ts +51 -0
  468. package/dist/visualization/data-flow.js +154 -0
  469. package/dist/visualization/visualization-integration.d.ts +53 -0
  470. package/dist/visualization/visualization-integration.js +50 -0
  471. package/dist/vm/disassembler-builder.d.ts +36 -0
  472. package/dist/vm/disassembler-builder.js +106 -0
  473. package/dist/vm/opcode-extractor.d.ts +48 -0
  474. package/dist/vm/opcode-extractor.js +148 -0
  475. package/dist/vm/semantic-diff.d.ts +37 -0
  476. package/dist/vm/semantic-diff.js +163 -0
  477. package/dist/vm/vm-detector.d.ts +86 -0
  478. package/dist/vm/vm-detector.js +254 -0
  479. package/dist/vm/vm-emulator.d.ts +89 -0
  480. package/dist/vm/vm-emulator.js +341 -0
  481. package/dist/vuln-patterns.d.ts +43 -0
  482. package/dist/vuln-patterns.js +117 -0
  483. package/dist/worker-pool.d.ts +5 -0
  484. package/dist/worker-pool.js +57 -17
  485. package/dist/workflows/analyze-auto.d.ts +690 -0
  486. package/dist/workflows/analyze-auto.js +882 -0
  487. package/dist/workflows/analyze-pipeline.d.ts +7626 -0
  488. package/dist/workflows/analyze-pipeline.js +2061 -0
  489. package/dist/workflows/deep-static.d.ts +402 -16
  490. package/dist/workflows/deep-static.js +202 -55
  491. package/dist/workflows/function-explanation-review.d.ts +4702 -3319
  492. package/dist/workflows/function-index-recover.d.ts +224 -224
  493. package/dist/workflows/function-index-recover.js +2 -2
  494. package/dist/workflows/module-reconstruction-review.d.ts +4663 -3280
  495. package/dist/workflows/reconstruct.d.ts +5834 -3572
  496. package/dist/workflows/reconstruct.js +297 -10
  497. package/dist/workflows/semantic-name-review.d.ts +4824 -3441
  498. package/dist/workflows/summarize.d.ts +5839 -0
  499. package/dist/workflows/summarize.js +825 -0
  500. package/dist/workflows/triage.d.ts +1046 -405
  501. package/dist/workflows/triage.js +1179 -30
  502. package/dist/workspace-manager.d.ts +10 -0
  503. package/dist/workspace-manager.js +29 -0
  504. package/dist/yara-rule-builder.d.ts +53 -0
  505. package/dist/yara-rule-builder.js +266 -0
  506. package/frida_scripts/README.md +90 -0
  507. package/frida_scripts/android_crypto_trace.js +96 -0
  508. package/frida_scripts/android_root_bypass.js +76 -0
  509. package/frida_scripts/android_ssl_bypass.js +66 -0
  510. package/frida_scripts/anti_debug_bypass.js +220 -0
  511. package/frida_scripts/api_trace.js +227 -0
  512. package/frida_scripts/crypto_finder.js +216 -0
  513. package/frida_scripts/file_registry_monitor.js +416 -0
  514. package/frida_scripts/string_decoder.js +210 -0
  515. package/ghidra_scripts/AnalyzeCrossReferences.java +644 -0
  516. package/package.json +26 -5
  517. package/requirements.txt +2 -0
  518. package/workers/apk_dex_worker.py +415 -0
  519. package/workers/constraint_solver_worker.py +301 -0
  520. package/workers/elf_macho_worker.py +753 -0
  521. package/workers/frida_worker.py +814 -0
  522. package/workers/keygen_verify_worker.py +164 -0
  523. package/workers/malware_config_worker.py +244 -0
  524. package/workers/requirements-dynamic.txt +4 -0
  525. package/workers/requirements-qiling.txt +5 -0
  526. package/workers/requirements.txt +2 -0
  527. package/workers/rizin_diff_worker.py +141 -0
  528. package/workers/rizin_preview_worker.py +84 -0
  529. package/workers/static_worker.py +817 -33
  530. package/workers/symbolic_explorer_worker.py +170 -0
  531. package/dist/tools/attack-map.d.ts +0 -290
  532. package/dist/tools/ghidra-analyze.d.ts +0 -110
  533. package/dist/tools/ghidra-health.d.ts +0 -214
  534. package/dist/tools/ioc-export.d.ts +0 -209
  535. package/dist/tools/pe-exports-extract.d.ts +0 -175
  536. package/dist/tools/pe-fingerprint.d.ts +0 -234
  537. package/dist/tools/pe-imports-extract.d.ts +0 -105
  538. package/dist/tools/pe-pdata-extract.d.ts +0 -448
  539. package/dist/tools/pe-symbols-recover.d.ts +0 -227
package/CHANGELOG.md CHANGED
@@ -7,6 +7,273 @@ Versioning where practical.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Plugin System Deep Refactoring
11
+
12
+ - **Plugin directory convention**: All plugin tool handlers migrated from flat `src/tools/` into `src/plugins/<id>/tools/` directories. Each plugin is now fully self-contained.
13
+ - **6 new plugins**: Expanded from 9 → 15 built-in plugins:
14
+ - `vuln-scanner` — Vulnerability pattern scanning and summary (2 tools)
15
+ - `pe-analysis` — PE structure, imports, exports, fingerprint, pdata, symbol recovery (6 tools)
16
+ - `threat-intel` — ATT&CK mapping and IOC export (2 tools)
17
+ - `debug-session` — GDB/LLDB debug session management (6 tools)
18
+ - `memory-forensics` — Memory dump analysis, volatility integration (6 tools)
19
+ - `observability` — Tool call hook tracing (1 tool)
20
+ - **Plugin SDK**: Added `ToolArgs` type to `src/plugins/sdk.ts`; unified handler signature to `(deps: PluginToolDeps)` pattern across all plugins.
21
+ - **Tool count**: 160 MCP tools total (109 registry + 51 plugin-managed).
22
+ - **Test coverage**: 207 test files (194 unit + 13 integration).
23
+
24
+ ### Web Dashboard
25
+
26
+ - **Web Dashboard** (`src/api/dashboard/index.html`): Dark-themed single-page monitoring dashboard served at `http://localhost:18080/dashboard`. 6 tabs: Overview, Tools, Plugins, Samples, Config, System.
27
+ - **Dashboard API** (`src/api/routes/dashboard-api.ts`): 7 JSON REST endpoints (`/api/v1/dashboard/*`) — overview, tools (categorized), plugins, samples (paginated), workers, config validation, system info.
28
+ - **Real-time SSE integration**: Dashboard subscribes to `/api/v1/events` for live analysis event streaming.
29
+ - **Auto-refresh**: Overview tab auto-polls every 15 seconds; tool search and sample pagination are fully client-side.
30
+ - **Docker integration**: Dashboard HTML is copied to dist during build; Dockerfile includes static asset copy; `docker-compose.yml` port comment updated.
31
+
32
+ ### Production Hardening (P0-P3)
33
+
34
+ - **CI test coverage** (P0): `.github/workflows/ci.yml` runs full test suite.
35
+ - **TODO stub completion** (P0): Implemented `keygen-synthesizer`, `worker-pool`, `context-manager`, `decompiler-worker`, `DatabaseManager.getDb()`, `WorkerPool.registerHandler()`.
36
+ - **Config validation** (P0): `src/config-validator.ts` with `validateConfig()` returning `ValidationReport`; `config.validate` MCP tool.
37
+ - **Rate limiting** (P1): `src/api/rate-limiter.ts` integrated into HTTP File Server.
38
+ - **Pagination** (P1): `src/pagination.ts` cursor-based pagination utility.
39
+ - **Retry** (P1): `src/retry.ts` exponential backoff helper for transient failures.
40
+ - **Plugin SDK package** (P2): `packages/plugin-sdk/` standalone npm package for third-party plugin authors.
41
+ - **Plugin scaffolding** (P2): `scripts/create-plugin.js` interactive plugin generator.
42
+ - **Plugin tests** (P2): `tests/unit/plugins.test.ts` — 17 tests covering lifecycle, hooks, hot-load, and dependency resolution.
43
+ - **Plugin registry** (P2): `src/plugin-registry.ts` centralized plugin discovery and management.
44
+ - **LLM multi-model routing** (P3): `src/llm/model-router.ts` supports routing to multiple LLM backends.
45
+ - **Memory forensics** (P3): `src/plugins/memory-forensics.ts` plugin for memory analysis.
46
+ - **SBOM generation** (P3): `src/tools/sbom-generate.ts` Software Bill of Materials export.
47
+ - **Batch analysis** (P3): `src/tools/batch-analysis.ts` multi-sample batch analysis orchestration.
48
+ - **SSE events** (P3): `src/api/sse-events.ts` Server-Sent Events infrastructure for real-time streaming.
49
+
50
+ ### Plugin SDK (Open Extensibility)
51
+
52
+ - **Plugin SDK** (`src/plugins.ts`): Complete rewrite — enhanced `Plugin` interface with `description`, `version`, `dependencies`, `configSchema`, `hooks`, and `teardown` fields. Third-party plugin authors implement this interface for full extensibility.
53
+ - **PluginManager**: Singleton class managing plugin lifecycle — `loadAll()`, `loadOne()`, `hotLoad()`, `unload()`, `fireHook()`, topological dependency sorting, `resolveEnabledPlugins()`.
54
+ - **9 built-in plugins**: Expanded from 4 → 9 plugins. Added `frida` (runtime instrumentation), `ghidra` (headless analysis), `cross-module` (cross-binary comparison), `visualization` (HTML reports, timelines, data-flow maps), `kb-collaboration` (function matching, analysis templates).
55
+ - **Prerequisite checks**: `android` checks jadx binary access, `frida` checks `frida --version`, `ghidra` checks `GHIDRA_INSTALL_DIR` env var. Plugins that fail checks are gracefully skipped.
56
+ - **Plugin auto-discovery**: `plugins/` directory at project root is scanned for `.js`/`.mjs` files that default-export a `Plugin` object — loaded automatically alongside built-ins.
57
+ - **Declarative config schema**: Each plugin declares `configSchema: PluginConfigField[]` (envVar, description, required, defaultValue). Surfaced via `plugin.list` tool.
58
+ - **Dependency resolution**: Plugins declare `dependencies: string[]`. `PluginManager.topoSort()` loads them in correct order; missing deps → `skipped-deps` status.
59
+ - **Lifecycle hooks**: `PluginHooks` interface (`onBeforeToolCall`, `onAfterToolCall`, `onToolError`). Hooks are fired by `MCPServer.callTool()` for tools belonging to hook-equipped plugins.
60
+ - **Hot-load / unload**: `plugin.enable` hot-loads a plugin at runtime, `plugin.disable` calls `teardown()` and unregisters all plugin tools — no server restart required.
61
+ - **Plugin introspection tools**: `plugin.list` (read-only status/config), `plugin.enable`, `plugin.disable` — LLM clients can discover and manage plugins via MCP.
62
+ - **`MCPServer.unregisterTool()`**: New method to remove tools at runtime, enabling plugin unload.
63
+ - **`MCPServer.setPluginManager()`**: Wires PluginManager into server for lifecycle hook dispatch.
64
+ - **Docs**: Comprehensive `docs/PLUGINS.md` rewrite covering SDK types, hook system, auto-discovery, external plugin authoring, and troubleshooting.
65
+
66
+ ### Architecture & Infrastructure
67
+
68
+ - **Tool Registry** (`src/tool-registry.ts`): Centralised registration of all 148 tools, 3 prompts, and 16 resources. `src/index.ts` reduced from ~1,450 lines to ~90 lines.
69
+ - **Plugin Architecture** (`src/plugins.ts`): Four built-in plugins (android, malware, crackme, dynamic) controlled via `PLUGINS` env var. Supports prerequisite checks and custom plugin extensions. Docs: `docs/PLUGINS.md`.
70
+ - **MCP Resources**: 16 helper scripts (8 Frida + 8 Ghidra) exposed as MCP resources discoverable via `resources/list` and readable via `resources/read`.
71
+ - **Streaming Progress** (`src/streaming-progress.ts`): `ProgressReporter` interface for long-running tools. Emits `notifications/progress` MCP notifications when client sends `_meta.progressToken`.
72
+ - **Architecture docs** (`docs/ARCHITECTURE.md`): Comprehensive guide covering tool registry, plugin system, resources, streaming, safe commands, process pool, structured logging, and CI/CD security.
73
+
74
+ ### Security Hardening
75
+
76
+ - **Command injection prevention** (`src/safe-command.ts`): Whitelist regex validation (`SAFE_COMMAND_NAME_RE`), `execFileSync`/`spawnSync` with argument arrays, `safeCommandExists()`, `safeGetCommandVersion()`, `validateGraphvizFormat()`.
77
+ - **env-validator.ts**: Replaced `execSync` shell calls with safe wrappers.
78
+ - **cfg-visual-exports.ts**: Added `validateGraphvizFormat()` whitelist validation.
79
+ - **CI/CD security scanning**: Added `security` job to `.github/workflows/ci.yml` — npm audit, pip-audit, CodeQL SAST.
80
+
81
+ ### Observability
82
+
83
+ - **Structured logging**: Migrated 7 files from `console.log`/`console.error` to Pino structured JSON logging (`policy-guard.ts`, `llm-analyze.ts`, `auto-trigger.ts`, `triage.ts`, `cache-manager.ts`).
84
+ - **Python Process Pool** (`src/python-process-pool.ts`): Queue-based concurrency limiter with `MAX_PYTHON_WORKERS` env var. Stats surfaced through `system.health` tool.
85
+
86
+ ### Testing
87
+
88
+ - **68 new test files** generated for previously untested tools (193 total unit tests, up from 125).
89
+ - **Integration tests**: `tests/integration/full-pipeline.test.ts` (E2E ingest→triage), `tests/integration/beta2-tools.test.ts` (beta.2 tool coverage).
90
+
91
+ ### Documentation
92
+
93
+ - **API docs generation**: `scripts/generate-api-docs.js` + `npm run docs:api` script.
94
+ - New: `docs/ARCHITECTURE.md`, `docs/PLUGINS.md`.
95
+ - Updated: `README.md` (architecture section, project layout), `CONTRIBUTING.md` (tool registration guide, plugin development), `SECURITY.md` (command injection prevention, CI/CD scanning), `docs/API-REFERENCE.md` (MCP resources), `CHANGELOG.md`.
96
+
97
+ ## [1.0.0-beta.2] - 2026-03-30
98
+
99
+ ### Android / APK Analysis
100
+
101
+ - Added `apk.structure.analyze` — APK manifest, permissions, and component extraction via Python worker
102
+ - Added `apk.packer.detect` — APK packer/obfuscator detection (DexGuard, iJiami, Bangcle, etc.)
103
+ - Added `dex.decompile` — DEX-to-Java decompilation via jadx
104
+ - Added `dex.classes.list` — DEX class/method enumeration
105
+ - Added `workers/apk_dex_worker.py` — Unified Python worker for APK/DEX operations
106
+ - Docker: Added jadx v1.5.1 installation (`/opt/jadx/bin/jadx`)
107
+
108
+ ### Symbolic Execution & CrackMe
109
+
110
+ - Added `symbolic.explore` — angr-backed symbolic execution for path exploration and constraint solving
111
+ - Added `keygen.verify` — Keygen/license verification via Qiling or angr backends
112
+ - Added `constraint.solve` — Z3/angr constraint solver for serial/key generation
113
+ - Added `workers/symbolic_explorer_worker.py`, `workers/keygen_verify_worker.py`, `workers/constraint_solver_worker.py`
114
+
115
+ ### Dynamic Analysis
116
+
117
+ - Added `dynamic.auto_hook` — Automated Frida hook generation from static analysis evidence
118
+ - Added `dynamic.memory_dump` — Frida-based runtime memory dump with pattern scanning
119
+
120
+ ### Malware Analysis
121
+
122
+ - Added `malware.config.extract` — Malware configuration extraction (C2, encryption keys, mutexes)
123
+ - Added `malware.classify` — Malware family classification using YARA + capa + behavioral indicators
124
+ - Added `c2.extract` — C2 infrastructure extraction and indicator enrichment
125
+ - Added `workers/malware_config_worker.py`
126
+
127
+ ### Cross-Platform & Visualization
128
+
129
+ - Added `elf.macho.parse` — ELF/Mach-O header and section parsing via Rizin
130
+ - Added `rizin.diff` — Binary diffing via Rizin (function-level and basic-block-level)
131
+ - Added `cfg.visualize` — Control flow graph visualization (DOT/SVG/JSON)
132
+ - Added `timeline.correlate` — Multi-source event timeline correlation
133
+ - Added `cross_module.xref` — Cross-module cross-reference analysis
134
+ - Added `kb.search` — Knowledge base semantic search
135
+ - Added `workers/elf_macho_worker.py`, `workers/rizin_diff_worker.py`
136
+
137
+ ### Quality & Infrastructure
138
+
139
+ - **Config**: Unified Python path resolution via `config.workers.static.pythonPath` across all new tools; added `JADX_PATH` env var support
140
+ - **PolicyGuard**: Applied to 5 high-risk dynamic/symbolic tools (`symbolic.explore`, `keygen.verify`, `patch.generate`, `dynamic.auto_hook`, `dynamic.memory_dump`)
141
+ - **CacheManager**: Applied to 3 malware analysis tools (`malware.config.extract`, `c2.extract`, `malware.classify`)
142
+ - **Worker validation**: Added `os.path.isfile()` input checks to 4 Python workers
143
+ - **Workflow integration**: `workflow.triage` now routes APK/DEX samples to APK-specific analysis tools
144
+ - **Type safety**: Replaced `any` type annotations with proper union types in malware-classify
145
+ - **npm packaging**: Added 7 missing worker files to `package.json` `files` array
146
+ - **Unit tests**: Added test suites for malware-config-extract, apk-structure-analyze, symbolic-explore, and patch-generate
147
+
148
+ ## [1.0.0-beta.1] - 2026-03-29
149
+
150
+ ### Frida Dynamic Instrumentation
151
+
152
+ - Added Frida runtime instrumentation with `frida.runtime.instrument` supporting spawn and attach modes
153
+ - Added Frida script injection via `frida.script.inject` with pre-built script library:
154
+ - `api_trace.js` - Windows API tracing with argument logging
155
+ - `string_decoder.js` - Runtime string decryption
156
+ - `anti_debug_bypass.js` - Anti-debug detection neutralization
157
+ - `crypto_finder.js` - Cryptographic API detection
158
+ - `file_registry_monitor.js` - File/registry operation tracking
159
+ - Added Frida trace capture via `frida.trace.capture` with canonical MCP trace schema
160
+ - Implemented trace filtering, aggregation, artifact persistence, and provenance tracking
161
+ - Integrated Frida traces into `dynamic.trace.import`, `report.generate`, and `report.summarize`
162
+ - Added async job support for long-running Frida traces via `task.status` / `task.cancel`
163
+ - Added evidence scope selection (`all`/`latest`/`session`) and compare/baseline support for Frida traces
164
+ - Added comprehensive Frida documentation: installation guides, workflow examples, troubleshooting guidance
165
+ - Added `frida_scripts/` library with README documentation
166
+ - Added comprehensive unit tests for Frida tools:
167
+ - `tests/unit/frida-runtime-instrument.test.ts` - Runtime instrumentation tests (11 tests)
168
+ - `tests/unit/frida-script-inject.test.ts` - Script injection tests (13 tests)
169
+ - `tests/unit/frida-trace-capture.test.ts` - Trace capture/normalization tests (19 tests)
170
+ - `tests/unit/setup-guidance.test.ts` - Setup guidance behavior tests (24 tests)
171
+ - Added integration tests for Frida workflows:
172
+ - `tests/integration/frida-workflow.test.ts` - End-to-end spawn/attach/capture workflow tests
173
+ - Tests graceful degradation when Frida unavailable with structured setup guidance
174
+ - Tests concurrent operations and artifact persistence
175
+
176
+ ### Static Analysis Foundation
177
+
178
+ - Added a static triage foundation for the upcoming `0.2.0` line: `static.capability.triage`, `pe.structure.analyze`, and `compiler.packer.detect`
179
+ - Added worker/config/setup support for `flare-capa`, `pefile`, `lief`, `CAPA_RULES_PATH`, and `DIE_PATH`
180
+ - Integrated static capability, PE structure, and compiler/packer attribution into `workflow.triage`, `report.summarize`, and `report.generate`
181
+ - Added static artifact persistence, provenance, scope selection, and compare/baseline support for the new analysis families
182
+ - Updated MCP docs, install guides, and release notes to cover early-stage static triage chaining and optional dependency bootstrap
183
+
184
+ ### HTTP File Server
185
+
186
+ - Added embedded HTTP file server on port 18080 for direct sample uploads and artifact downloads
187
+ - Implemented REST API endpoints:
188
+ - `POST /api/v1/samples` - Direct sample upload with multipart/form-data support
189
+ - `GET /api/v1/samples/:id` - Sample metadata retrieval and optional file download
190
+ - `GET /api/v1/artifacts` - List artifacts with optional sample filtering
191
+ - `GET/DELETE /api/v1/artifacts/:id` - Artifact metadata, download, and deletion
192
+ - `GET /api/v1/health` - Health check endpoint
193
+ - `POST/GET /api/v1/uploads/:token` - Upload session management
194
+ - Added API key authentication via `X-API-Key` header (optional, configurable via `API_KEY`)
195
+ - Added MCP tools for file access:
196
+ - `sample.download` - Download sample by ID with metadata
197
+ - `artifact.download` - Download artifact by ID with optional content parsing
198
+ - Added PowerShell CLI tools:
199
+ - `scripts/upload-api.ps1` - Sample upload with progress display and error handling
200
+ - `scripts/download-artifact.ps1` - Artifact download with metadata support
201
+ - Implemented storage management:
202
+ - `StorageManager` - Unified storage operations with date partitioning
203
+ - `cleanup-job.ts` - Automatic retention-based cleanup (configurable via `API_RETENTION_DAYS`)
204
+ - `metadata-logger.ts` - Audit logging for upload tracking
205
+ - Added comprehensive documentation:
206
+ - `docs/API-FILE-SERVER.md` - API usage guide with examples
207
+ - `docs/API-REFERENCE.md` - Complete API reference with error codes
208
+ - Updated `README.md` and `INSTALL.md` with API configuration
209
+ - Added Docker configuration:
210
+ - Exposed port 18080 in Dockerfile
211
+ - Added storage volume mounting in docker-compose.yml
212
+ - Added API environment variables in .env.example
213
+ - Added unit tests:
214
+ - `tests/unit/api/auth-middleware.test.ts` - Authentication tests
215
+ - `tests/unit/api/sample-upload.test.ts` - Upload workflow tests
216
+ - `tests/unit/api/storage-manager.test.ts` - Storage operation tests
217
+ - `tests/unit/api/api-endpoints.test.ts` - Endpoint contract tests
218
+ - `tests/unit/api/upload-workflow.test.ts` - E2E workflow tests
219
+
220
+ ### MCP Server Optimization (Phase 1-8)
221
+
222
+ - **Cache Layer Optimization** (Phase 1):
223
+ - Implemented smart cache key generation filtering 18 unstable parameters
224
+ - Added parameter normalization for deterministic key generation
225
+ - Implemented cache hit rate statistics and monitoring
226
+ - Expected improvement: +30-50% cache hit rate
227
+ - New modules: `src/smart-cache.ts`, `src/cache-manager.ts` extensions
228
+
229
+ - **Tiered Response System** (Phase 2):
230
+ - Implemented L1/L2/L3 response tiering to reduce token consumption
231
+ - Created `TieredResponse` interface and `BaseTool` abstract class
232
+ - L1 Summary (100-500 tokens), L2 Structured data, L3 Artifact references
233
+ - Expected improvement: -80-90% token consumption
234
+ - New module: `src/tiered-response.ts`
235
+
236
+ - **JobQueue Enhancement** (Phase 3):
237
+ - Added progress tracking API (`updateProgress`)
238
+ - Added cancellation check API (`isCancelled`)
239
+ - Improved workflow observability
240
+ - Modified: `src/job-queue.ts`
241
+
242
+ - **Artifact Lifecycle Management** (Phase 4):
243
+ - Implemented artifact age calculation and retention bucket classification
244
+ - Added gzip compression for artifacts older than 7 days
245
+ - Implemented automatic cleanup with configurable retention policy
246
+ - Added dry-run mode for preview
247
+ - Expected improvement: -50-70% disk usage
248
+ - New module: `src/artifact-lifecycle.ts`
249
+
250
+ - **Error Recovery Enhancement** (Phase 5):
251
+ - Implemented intelligent error classification (9 categories)
252
+ - Added auto-recovery actions (5 types: install, retry, downgrade, etc.)
253
+ - Implemented exponential backoff retry logic
254
+ - Added lite mode fallback for resource exhaustion
255
+ - New module: `src/error-handler-enhanced.ts`
256
+
257
+ - **MCP Resources Protocol** (Phase 6):
258
+ - Implemented `resources/list` and `resources/read` endpoints
259
+ - Added `artifact://` and `sample://` URI schemes
260
+ - Added resource change notifications
261
+ - New module: `src/mcp-resources.ts`
262
+
263
+ - **Token Budget Tracking** (Phase 7):
264
+ - Implemented SQLite `token_usage` table for persistence
265
+ - Added simple usage recording and querying
266
+ - Provides tool-based statistics and recent usage history
267
+ - Lightweight implementation focused on core recording needs
268
+ - New module: `src/token-budget.ts`
269
+
270
+ - **Performance Benchmarking** (Phase 8):
271
+ - Created benchmark suite for cache, response, and disk optimization
272
+ - Implemented token reduction measurement
273
+ - Added optimization report generation
274
+ - Added tuning recommendations
275
+ - New module: `src/performance-benchmark.ts`
276
+
10
277
  ## [0.1.4] - 2026-03-14
11
278
 
12
279
  - Added safer Ghidra defaults for `GHIDRA_PROJECT_ROOT` / `GHIDRA_LOG_ROOT`, automatic project-parent creation, and safer Windows defaults that avoid unstable per-repo relative paths
@@ -41,6 +41,11 @@ It also pins:
41
41
  - `GHIDRA_PROJECT_ROOT`
42
42
  - `GHIDRA_LOG_ROOT`
43
43
 
44
+ Optional static-analysis inputs can also be provided through:
45
+
46
+ - `CAPA_RULES_PATH`
47
+ - `DIE_PATH`
48
+
44
49
  The server's bundled `ghidra_scripts/` directory is resolved from the installed
45
50
  package or repository root, not from the shell's current working directory. You
46
51
  do not need to manually point Claude at `ExtractFunctions.py`.
@@ -137,6 +142,44 @@ dynamic-analysis extras, or Ghidra configuration, ask it to call:
137
142
  These tools return structured `setup_actions` and `required_user_inputs`
138
143
  instead of only failing with a generic error.
139
144
 
145
+ For the static capability / PE structure / compiler attribution layer, the most
146
+ common optional requirements are:
147
+
148
+ - `python -m pip install flare-capa pefile lief`
149
+ - a capa rules bundle referenced by `CAPA_RULES_PATH`
150
+ - Detect It Easy CLI referenced by `DIE_PATH`
151
+
152
+ ### Frida Dynamic Instrumentation (Optional)
153
+
154
+ For runtime API tracing and behavioral analysis, install Frida:
155
+
156
+ ```powershell
157
+ pip install frida frida-tools
158
+ ```
159
+
160
+ **Verify Frida installation:**
161
+
162
+ ```powershell
163
+ python -c "import frida; print(frida.__version__)"
164
+ frida --version
165
+ ```
166
+
167
+ **Environment Variables** (optional):
168
+
169
+ - `FRIDA_SERVER_PATH` - Path to Frida server binary for USB/remote device analysis
170
+ - `FRIDA_DEVICE` - Device ID or "usb" for USB device selection (default: local spawn)
171
+
172
+ When Frida is unavailable, tools like `frida.runtime.instrument`, `frida.script.inject`, and `frida.trace.capture` return structured setup guidance instead of generic errors.
173
+
174
+ **Pre-built Scripts** are included in `frida_scripts/`:
175
+ - `api_trace.js` - Windows API tracing
176
+ - `string_decoder.js` - Runtime string decryption
177
+ - `anti_debug_bypass.js` - Anti-debug neutralization
178
+ - `crypto_finder.js` - Cryptographic API detection
179
+ - `file_registry_monitor.js` - File/registry operation tracking
180
+
181
+ See [`docs/EXAMPLES.md`](./docs/EXAMPLES.md#场景 -9-frida-运行时 instrumentation) for Frida workflow examples.
182
+
140
183
  ## References
141
184
 
142
185
  - Claude Code MCP overview: https://docs.anthropic.com/en/docs/claude-code/mcp
@@ -26,6 +26,11 @@ It also pins:
26
26
  - `GHIDRA_PROJECT_ROOT`
27
27
  - `GHIDRA_LOG_ROOT`
28
28
 
29
+ Optional static-analysis inputs can also be provided through:
30
+
31
+ - `CAPA_RULES_PATH`
32
+ - `DIE_PATH`
33
+
29
34
  The server's bundled `ghidra_scripts/` directory is resolved from the installed
30
35
  package or repository root, not from the shell's current working directory. You
31
36
  do not need to manually configure a script path for `ExtractFunctions.py`.
@@ -93,6 +98,13 @@ configuration, ask it to call:
93
98
  - `system.health`
94
99
  - `ghidra.health`
95
100
 
101
+ For the static capability / PE structure / compiler attribution layer, the most
102
+ common optional requirements are:
103
+
104
+ - `python -m pip install flare-capa pefile lief`
105
+ - a capa rules bundle referenced by `CAPA_RULES_PATH`
106
+ - Detect It Easy CLI referenced by `DIE_PATH`
107
+
96
108
  ## Troubleshooting
97
109
 
98
110
  - `dist/index.js was not found`
@@ -18,6 +18,11 @@ It also pins:
18
18
  - `GHIDRA_PROJECT_ROOT`
19
19
  - `GHIDRA_LOG_ROOT`
20
20
 
21
+ Optional static-analysis inputs can also be provided through:
22
+
23
+ - `CAPA_RULES_PATH`
24
+ - `DIE_PATH`
25
+
21
26
  The server's bundled `ghidra_scripts/` directory is resolved from the installed
22
27
  package or repository root, not from the shell's current working directory. You
23
28
  do not need to separately point Copilot at `ExtractFunctions.py`.
@@ -101,6 +106,13 @@ packages, dynamic-analysis extras, or Ghidra configuration, ask Copilot to call:
101
106
 
102
107
  These tools return structured setup actions and missing user inputs.
103
108
 
109
+ For the static capability / PE structure / compiler attribution layer, the most
110
+ common optional requirements are:
111
+
112
+ - `python -m pip install flare-capa pefile lief`
113
+ - a capa rules bundle referenced by `CAPA_RULES_PATH`
114
+ - Detect It Easy CLI referenced by `DIE_PATH`
115
+
104
116
  ## References
105
117
 
106
118
  - https://code.visualstudio.com/docs/copilot/customization/mcp-servers