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

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 (288) hide show
  1. package/CHANGELOG.md +129 -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 +380 -29
  6. package/README_zh.md +102 -3
  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 +47 -0
  24. package/dist/api/file-server.js +520 -0
  25. package/dist/api/multipart-parser.d.ts +19 -0
  26. package/dist/api/multipart-parser.js +96 -0
  27. package/dist/api/routes/health.d.ts +17 -0
  28. package/dist/api/routes/health.js +19 -0
  29. package/dist/artifact-inventory.js +3 -0
  30. package/dist/async-tool-wrapper.d.ts +28 -0
  31. package/dist/async-tool-wrapper.js +75 -0
  32. package/dist/cache-manager.d.ts +10 -0
  33. package/dist/cache-manager.js +67 -0
  34. package/dist/cfg-visual-exports.d.ts +100 -0
  35. package/dist/cfg-visual-exports.js +651 -0
  36. package/dist/chunked-analysis-evidence.d.ts +20 -0
  37. package/dist/chunked-analysis-evidence.js +45 -0
  38. package/dist/confidence-semantics.d.ts +39 -19
  39. package/dist/confidence-semantics.js +53 -0
  40. package/dist/config.d.ts +454 -242
  41. package/dist/config.js +193 -0
  42. package/dist/crypto-breakpoint-analysis.d.ts +920 -0
  43. package/dist/crypto-breakpoint-analysis.js +873 -0
  44. package/dist/crypto-planning-artifacts.d.ts +30 -0
  45. package/dist/crypto-planning-artifacts.js +149 -0
  46. package/dist/database.d.ts +281 -0
  47. package/dist/database.js +995 -0
  48. package/dist/decompiler-worker.d.ts +37 -0
  49. package/dist/decompiler-worker.js +154 -0
  50. package/dist/explanation-graphs.d.ts +714 -0
  51. package/dist/explanation-graphs.js +238 -0
  52. package/dist/frida/script-generator.d.ts +21 -0
  53. package/dist/frida/script-generator.js +93 -0
  54. package/dist/ghidra-config.js +23 -0
  55. package/dist/ghidra-execution-summary.d.ts +92 -92
  56. package/dist/index.js +81 -10
  57. package/dist/intent-routing.d.ts +279 -0
  58. package/dist/intent-routing.js +445 -0
  59. package/dist/job-queue.d.ts +21 -1
  60. package/dist/job-queue.js +79 -11
  61. package/dist/kb/function-kb.d.ts +24 -0
  62. package/dist/kb/function-kb.js +127 -0
  63. package/dist/kb/kb-database.d.ts +58 -0
  64. package/dist/kb/kb-database.js +99 -0
  65. package/dist/kb/kb-llm-integration.d.ts +37 -0
  66. package/dist/kb/kb-llm-integration.js +42 -0
  67. package/dist/kb/sample-kb.d.ts +43 -0
  68. package/dist/kb/sample-kb.js +45 -0
  69. package/dist/kb/search-kb.d.ts +30 -0
  70. package/dist/kb/search-kb.js +107 -0
  71. package/dist/kb/team-kb.d.ts +17 -0
  72. package/dist/kb/team-kb.js +45 -0
  73. package/dist/llm/auto-trigger.d.ts +39 -0
  74. package/dist/llm/auto-trigger.js +113 -0
  75. package/dist/llm/context-manager.d.ts +72 -0
  76. package/dist/llm/context-manager.js +142 -0
  77. package/dist/llm/llm-analyze.d.ts +93 -0
  78. package/dist/llm/llm-analyze.js +166 -0
  79. package/dist/logger.js +6 -3
  80. package/dist/nonblocking-analysis.d.ts +21 -0
  81. package/dist/nonblocking-analysis.js +54 -0
  82. package/dist/npm-docker-launcher.d.ts +22 -0
  83. package/dist/npm-docker-launcher.js +160 -0
  84. package/dist/performance-benchmark.d.ts +105 -0
  85. package/dist/performance-benchmark.js +217 -0
  86. package/dist/polling-guidance.d.ts +11 -11
  87. package/dist/polling-guidance.js +4 -1
  88. package/dist/prompts/function-explanation-review.js +2 -0
  89. package/dist/prompts/module-reconstruction-review.js +2 -0
  90. package/dist/prompts/semantic-name-review.js +2 -0
  91. package/dist/runtime-correlation.d.ts +42 -0
  92. package/dist/runtime-correlation.js +76 -0
  93. package/dist/runtime-paths.js +36 -3
  94. package/dist/runtime-worker-pool.d.ts +79 -0
  95. package/dist/runtime-worker-pool.js +317 -0
  96. package/dist/sample-finalization.d.ts +28 -0
  97. package/dist/sample-finalization.js +148 -0
  98. package/dist/selection-diff.d.ts +1050 -513
  99. package/dist/selection-diff.js +20 -4
  100. package/dist/server.d.ts +32 -3
  101. package/dist/server.js +295 -46
  102. package/dist/setup-guidance.d.ts +63 -33
  103. package/dist/setup-guidance.js +410 -6
  104. package/dist/static-analysis-artifacts.d.ts +28 -0
  105. package/dist/static-analysis-artifacts.js +127 -0
  106. package/dist/static-analysis-environment.d.ts +10 -0
  107. package/dist/static-analysis-environment.js +103 -0
  108. package/dist/static-backend-discovery.d.ts +39 -0
  109. package/dist/static-backend-discovery.js +455 -0
  110. package/dist/storage/cleanup-job.d.ts +24 -0
  111. package/dist/storage/cleanup-job.js +150 -0
  112. package/dist/storage/metadata-logger.d.ts +47 -0
  113. package/dist/storage/metadata-logger.js +98 -0
  114. package/dist/storage/storage-manager.d.ts +118 -0
  115. package/dist/storage/storage-manager.js +456 -0
  116. package/dist/string-xref-analysis.d.ts +629 -0
  117. package/dist/string-xref-analysis.js +577 -0
  118. package/dist/string-xref-artifacts.d.ts +30 -0
  119. package/dist/string-xref-artifacts.js +149 -0
  120. package/dist/summary-artifacts.d.ts +33 -0
  121. package/dist/summary-artifacts.js +149 -0
  122. package/dist/summary-digests.d.ts +2459 -0
  123. package/dist/summary-digests.js +653 -0
  124. package/dist/tool-name-normalization.d.ts +7 -0
  125. package/dist/tool-name-normalization.js +44 -0
  126. package/dist/tool-surface-guidance.d.ts +6 -0
  127. package/dist/tool-surface-guidance.js +12 -0
  128. package/dist/tools/analysis-context-link.d.ts +275 -0
  129. package/dist/tools/analysis-context-link.js +654 -0
  130. package/dist/tools/artifact-download.d.ts +102 -0
  131. package/dist/tools/artifact-download.js +154 -0
  132. package/dist/tools/artifact-read.d.ts +146 -146
  133. package/dist/tools/artifact-read.js +4 -0
  134. package/dist/tools/artifacts-diff.d.ts +546 -546
  135. package/dist/tools/artifacts-list.d.ts +368 -368
  136. package/dist/tools/artifacts-list.js +1 -0
  137. package/dist/tools/attack-map.d.ts +154 -154
  138. package/dist/tools/binary-role-profile.d.ts +933 -820
  139. package/dist/tools/binary-role-profile.js +122 -15
  140. package/dist/tools/breakpoint-smart.d.ts +436 -0
  141. package/dist/tools/breakpoint-smart.js +288 -0
  142. package/dist/tools/code-function-cfg.d.ts +940 -31
  143. package/dist/tools/code-function-cfg.js +419 -55
  144. package/dist/tools/code-function-decompile.d.ts +20 -20
  145. package/dist/tools/code-function-disassemble.d.ts +12 -12
  146. package/dist/tools/code-function-explain-apply.d.ts +170 -170
  147. package/dist/tools/code-function-explain-prepare.d.ts +344 -344
  148. package/dist/tools/code-function-explain-review.d.ts +258 -258
  149. package/dist/tools/code-function-explain-review.js +17 -2
  150. package/dist/tools/code-function-rename-apply.d.ts +164 -164
  151. package/dist/tools/code-function-rename-prepare.d.ts +350 -350
  152. package/dist/tools/code-function-rename-review.d.ts +400 -400
  153. package/dist/tools/code-function-rename-review.js +17 -2
  154. package/dist/tools/code-functions-define.d.ts +242 -242
  155. package/dist/tools/code-functions-list.d.ts +6 -6
  156. package/dist/tools/code-functions-rank.d.ts +4 -4
  157. package/dist/tools/code-functions-reconstruct.d.ts +2812 -2367
  158. package/dist/tools/code-functions-reconstruct.js +4 -1
  159. package/dist/tools/code-functions-search.d.ts +20 -20
  160. package/dist/tools/code-functions-search.js +2 -1
  161. package/dist/tools/code-functions-smart-recover.d.ts +254 -254
  162. package/dist/tools/code-module-review-apply.d.ts +150 -150
  163. package/dist/tools/code-module-review-prepare.d.ts +566 -566
  164. package/dist/tools/code-module-review.d.ts +328 -328
  165. package/dist/tools/code-module-review.js +17 -2
  166. package/dist/tools/code-reconstruct-export.d.ts +1300 -1036
  167. package/dist/tools/code-reconstruct-plan.d.ts +168 -168
  168. package/dist/tools/code-xrefs-analyze.d.ts +272 -0
  169. package/dist/tools/code-xrefs-analyze.js +344 -0
  170. package/dist/tools/com-role-profile.d.ts +232 -232
  171. package/dist/tools/compiler-packer-detect.d.ts +822 -0
  172. package/dist/tools/compiler-packer-detect.js +401 -0
  173. package/dist/tools/crypto-identify.d.ts +756 -0
  174. package/dist/tools/crypto-identify.js +670 -0
  175. package/dist/tools/dll-export-profile.d.ts +420 -420
  176. package/dist/tools/docker-backend-tools.d.ts +2471 -0
  177. package/dist/tools/docker-backend-tools.js +1692 -0
  178. package/dist/tools/dotnet-metadata-extract.d.ts +320 -320
  179. package/dist/tools/dotnet-reconstruct-export.d.ts +406 -406
  180. package/dist/tools/dotnet-types-list.d.ts +224 -224
  181. package/dist/tools/dynamic-dependencies.d.ts +147 -147
  182. package/dist/tools/dynamic-dependencies.js +143 -8
  183. package/dist/tools/frida-runtime-instrument.d.ts +381 -0
  184. package/dist/tools/frida-runtime-instrument.js +381 -0
  185. package/dist/tools/frida-script-inject.d.ts +360 -0
  186. package/dist/tools/frida-script-inject.js +401 -0
  187. package/dist/tools/frida-trace-capture.d.ts +365 -0
  188. package/dist/tools/frida-trace-capture.js +504 -0
  189. package/dist/tools/ghidra-analyze.d.ts +187 -32
  190. package/dist/tools/ghidra-analyze.js +82 -44
  191. package/dist/tools/ghidra-health.d.ts +137 -137
  192. package/dist/tools/ioc-export.d.ts +130 -130
  193. package/dist/tools/packer-detect.d.ts +86 -86
  194. package/dist/tools/packer-detect.js +16 -20
  195. package/dist/tools/pe-exports-extract.d.ts +90 -90
  196. package/dist/tools/pe-exports-extract.js +16 -20
  197. package/dist/tools/pe-fingerprint.d.ts +138 -138
  198. package/dist/tools/pe-fingerprint.js +16 -20
  199. package/dist/tools/pe-imports-extract.d.ts +42 -42
  200. package/dist/tools/pe-imports-extract.js +16 -20
  201. package/dist/tools/pe-pdata-extract.d.ts +328 -328
  202. package/dist/tools/pe-structure-analyze.d.ts +500 -0
  203. package/dist/tools/pe-structure-analyze.js +246 -0
  204. package/dist/tools/pe-symbols-recover.d.ts +154 -154
  205. package/dist/tools/report-generate.d.ts +601 -111
  206. package/dist/tools/report-generate.js +206 -8
  207. package/dist/tools/report-summarize.d.ts +7916 -3768
  208. package/dist/tools/report-summarize.js +1181 -50
  209. package/dist/tools/runtime-detect.d.ts +62 -62
  210. package/dist/tools/runtime-detect.js +16 -20
  211. package/dist/tools/rust-binary-analyze.d.ts +1540 -1540
  212. package/dist/tools/rust-demangle.d.ts +49 -0
  213. package/dist/tools/rust-demangle.js +202 -0
  214. package/dist/tools/sample-ingest.d.ts +73 -38
  215. package/dist/tools/sample-ingest.js +180 -154
  216. package/dist/tools/sample-profile-get.d.ts +340 -218
  217. package/dist/tools/sample-profile-get.js +112 -12
  218. package/dist/tools/sample-request-upload.d.ts +92 -0
  219. package/dist/tools/sample-request-upload.js +91 -0
  220. package/dist/tools/sandbox-execute.d.ts +302 -302
  221. package/dist/tools/setup-remediate.d.ts +495 -0
  222. package/dist/tools/setup-remediate.js +259 -0
  223. package/dist/tools/static-capability-triage.d.ts +666 -0
  224. package/dist/tools/static-capability-triage.js +305 -0
  225. package/dist/tools/static-worker-client.d.ts +41 -0
  226. package/dist/tools/static-worker-client.js +59 -0
  227. package/dist/tools/strings-extract.d.ts +1019 -252
  228. package/dist/tools/strings-extract.js +293 -43
  229. package/dist/tools/strings-floss-decode.d.ts +752 -74
  230. package/dist/tools/strings-floss-decode.js +133 -31
  231. package/dist/tools/system-health.d.ts +411 -385
  232. package/dist/tools/system-health.js +156 -9
  233. package/dist/tools/system-setup-guide.d.ts +125 -125
  234. package/dist/tools/system-setup-guide.js +14 -5
  235. package/dist/tools/task-cancel.d.ts +4 -4
  236. package/dist/tools/task-status.d.ts +131 -10
  237. package/dist/tools/task-status.js +300 -69
  238. package/dist/tools/task-sweep.d.ts +4 -4
  239. package/dist/tools/tool-help.d.ts +236 -222
  240. package/dist/tools/tool-help.js +563 -19
  241. package/dist/tools/trace-condition.d.ts +1118 -0
  242. package/dist/tools/trace-condition.js +366 -0
  243. package/dist/tools/yara-scan.d.ts +358 -358
  244. package/dist/tools/yara-scan.js +16 -20
  245. package/dist/types.d.ts +5 -1
  246. package/dist/unpack-debug-runtime.d.ts +421 -0
  247. package/dist/unpack-debug-runtime.js +542 -0
  248. package/dist/visualization/call-graph.d.ts +57 -0
  249. package/dist/visualization/call-graph.js +147 -0
  250. package/dist/visualization/crypto-flow.d.ts +50 -0
  251. package/dist/visualization/crypto-flow.js +152 -0
  252. package/dist/visualization/data-flow.d.ts +51 -0
  253. package/dist/visualization/data-flow.js +154 -0
  254. package/dist/visualization/visualization-integration.d.ts +53 -0
  255. package/dist/visualization/visualization-integration.js +50 -0
  256. package/dist/workflows/analyze-auto.d.ts +690 -0
  257. package/dist/workflows/analyze-auto.js +882 -0
  258. package/dist/workflows/analyze-pipeline.d.ts +7624 -0
  259. package/dist/workflows/analyze-pipeline.js +2017 -0
  260. package/dist/workflows/deep-static.d.ts +402 -16
  261. package/dist/workflows/deep-static.js +202 -55
  262. package/dist/workflows/function-explanation-review.d.ts +4702 -3319
  263. package/dist/workflows/function-index-recover.d.ts +224 -224
  264. package/dist/workflows/module-reconstruction-review.d.ts +4663 -3280
  265. package/dist/workflows/reconstruct.d.ts +5834 -3572
  266. package/dist/workflows/reconstruct.js +297 -10
  267. package/dist/workflows/semantic-name-review.d.ts +4824 -3441
  268. package/dist/workflows/summarize.d.ts +5839 -0
  269. package/dist/workflows/summarize.js +825 -0
  270. package/dist/workflows/triage.d.ts +1046 -405
  271. package/dist/workflows/triage.js +1177 -28
  272. package/dist/workspace-manager.d.ts +10 -0
  273. package/dist/workspace-manager.js +29 -0
  274. package/frida_scripts/README.md +90 -0
  275. package/frida_scripts/anti_debug_bypass.js +220 -0
  276. package/frida_scripts/api_trace.js +227 -0
  277. package/frida_scripts/crypto_finder.js +216 -0
  278. package/frida_scripts/file_registry_monitor.js +416 -0
  279. package/frida_scripts/string_decoder.js +210 -0
  280. package/ghidra_scripts/AnalyzeCrossReferences.java +644 -0
  281. package/package.json +16 -5
  282. package/requirements.txt +2 -0
  283. package/workers/frida_worker.py +814 -0
  284. package/workers/requirements-dynamic.txt +4 -0
  285. package/workers/requirements-qiling.txt +5 -0
  286. package/workers/requirements.txt +1 -0
  287. package/workers/rizin_preview_worker.py +84 -0
  288. package/workers/static_worker.py +817 -33
package/CHANGELOG.md CHANGED
@@ -7,6 +7,135 @@ Versioning where practical.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.0-beta.1] - 2026-03-29
11
+
12
+ ### Frida Dynamic Instrumentation
13
+
14
+ - Added Frida runtime instrumentation with `frida.runtime.instrument` supporting spawn and attach modes
15
+ - Added Frida script injection via `frida.script.inject` with pre-built script library:
16
+ - `api_trace.js` - Windows API tracing with argument logging
17
+ - `string_decoder.js` - Runtime string decryption
18
+ - `anti_debug_bypass.js` - Anti-debug detection neutralization
19
+ - `crypto_finder.js` - Cryptographic API detection
20
+ - `file_registry_monitor.js` - File/registry operation tracking
21
+ - Added Frida trace capture via `frida.trace.capture` with canonical MCP trace schema
22
+ - Implemented trace filtering, aggregation, artifact persistence, and provenance tracking
23
+ - Integrated Frida traces into `dynamic.trace.import`, `report.generate`, and `report.summarize`
24
+ - Added async job support for long-running Frida traces via `task.status` / `task.cancel`
25
+ - Added evidence scope selection (`all`/`latest`/`session`) and compare/baseline support for Frida traces
26
+ - Added comprehensive Frida documentation: installation guides, workflow examples, troubleshooting guidance
27
+ - Added `frida_scripts/` library with README documentation
28
+ - Added comprehensive unit tests for Frida tools:
29
+ - `tests/unit/frida-runtime-instrument.test.ts` - Runtime instrumentation tests (11 tests)
30
+ - `tests/unit/frida-script-inject.test.ts` - Script injection tests (13 tests)
31
+ - `tests/unit/frida-trace-capture.test.ts` - Trace capture/normalization tests (19 tests)
32
+ - `tests/unit/setup-guidance.test.ts` - Setup guidance behavior tests (24 tests)
33
+ - Added integration tests for Frida workflows:
34
+ - `tests/integration/frida-workflow.test.ts` - End-to-end spawn/attach/capture workflow tests
35
+ - Tests graceful degradation when Frida unavailable with structured setup guidance
36
+ - Tests concurrent operations and artifact persistence
37
+
38
+ ### Static Analysis Foundation
39
+
40
+ - Added a static triage foundation for the upcoming `0.2.0` line: `static.capability.triage`, `pe.structure.analyze`, and `compiler.packer.detect`
41
+ - Added worker/config/setup support for `flare-capa`, `pefile`, `lief`, `CAPA_RULES_PATH`, and `DIE_PATH`
42
+ - Integrated static capability, PE structure, and compiler/packer attribution into `workflow.triage`, `report.summarize`, and `report.generate`
43
+ - Added static artifact persistence, provenance, scope selection, and compare/baseline support for the new analysis families
44
+ - Updated MCP docs, install guides, and release notes to cover early-stage static triage chaining and optional dependency bootstrap
45
+
46
+ ### HTTP File Server
47
+
48
+ - Added embedded HTTP file server on port 18080 for direct sample uploads and artifact downloads
49
+ - Implemented REST API endpoints:
50
+ - `POST /api/v1/samples` - Direct sample upload with multipart/form-data support
51
+ - `GET /api/v1/samples/:id` - Sample metadata retrieval and optional file download
52
+ - `GET /api/v1/artifacts` - List artifacts with optional sample filtering
53
+ - `GET/DELETE /api/v1/artifacts/:id` - Artifact metadata, download, and deletion
54
+ - `GET /api/v1/health` - Health check endpoint
55
+ - `POST/GET /api/v1/uploads/:token` - Upload session management
56
+ - Added API key authentication via `X-API-Key` header (optional, configurable via `API_KEY`)
57
+ - Added MCP tools for file access:
58
+ - `sample.download` - Download sample by ID with metadata
59
+ - `artifact.download` - Download artifact by ID with optional content parsing
60
+ - Added PowerShell CLI tools:
61
+ - `scripts/upload-api.ps1` - Sample upload with progress display and error handling
62
+ - `scripts/download-artifact.ps1` - Artifact download with metadata support
63
+ - Implemented storage management:
64
+ - `StorageManager` - Unified storage operations with date partitioning
65
+ - `cleanup-job.ts` - Automatic retention-based cleanup (configurable via `API_RETENTION_DAYS`)
66
+ - `metadata-logger.ts` - Audit logging for upload tracking
67
+ - Added comprehensive documentation:
68
+ - `docs/API-FILE-SERVER.md` - API usage guide with examples
69
+ - `docs/API-REFERENCE.md` - Complete API reference with error codes
70
+ - Updated `README.md` and `INSTALL.md` with API configuration
71
+ - Added Docker configuration:
72
+ - Exposed port 18080 in Dockerfile
73
+ - Added storage volume mounting in docker-compose.yml
74
+ - Added API environment variables in .env.example
75
+ - Added unit tests:
76
+ - `tests/unit/api/auth-middleware.test.ts` - Authentication tests
77
+ - `tests/unit/api/sample-upload.test.ts` - Upload workflow tests
78
+ - `tests/unit/api/storage-manager.test.ts` - Storage operation tests
79
+ - `tests/unit/api/api-endpoints.test.ts` - Endpoint contract tests
80
+ - `tests/unit/api/upload-workflow.test.ts` - E2E workflow tests
81
+
82
+ ### MCP Server Optimization (Phase 1-8)
83
+
84
+ - **Cache Layer Optimization** (Phase 1):
85
+ - Implemented smart cache key generation filtering 18 unstable parameters
86
+ - Added parameter normalization for deterministic key generation
87
+ - Implemented cache hit rate statistics and monitoring
88
+ - Expected improvement: +30-50% cache hit rate
89
+ - New modules: `src/smart-cache.ts`, `src/cache-manager.ts` extensions
90
+
91
+ - **Tiered Response System** (Phase 2):
92
+ - Implemented L1/L2/L3 response tiering to reduce token consumption
93
+ - Created `TieredResponse` interface and `BaseTool` abstract class
94
+ - L1 Summary (100-500 tokens), L2 Structured data, L3 Artifact references
95
+ - Expected improvement: -80-90% token consumption
96
+ - New module: `src/tiered-response.ts`
97
+
98
+ - **JobQueue Enhancement** (Phase 3):
99
+ - Added progress tracking API (`updateProgress`)
100
+ - Added cancellation check API (`isCancelled`)
101
+ - Improved workflow observability
102
+ - Modified: `src/job-queue.ts`
103
+
104
+ - **Artifact Lifecycle Management** (Phase 4):
105
+ - Implemented artifact age calculation and retention bucket classification
106
+ - Added gzip compression for artifacts older than 7 days
107
+ - Implemented automatic cleanup with configurable retention policy
108
+ - Added dry-run mode for preview
109
+ - Expected improvement: -50-70% disk usage
110
+ - New module: `src/artifact-lifecycle.ts`
111
+
112
+ - **Error Recovery Enhancement** (Phase 5):
113
+ - Implemented intelligent error classification (9 categories)
114
+ - Added auto-recovery actions (5 types: install, retry, downgrade, etc.)
115
+ - Implemented exponential backoff retry logic
116
+ - Added lite mode fallback for resource exhaustion
117
+ - New module: `src/error-handler-enhanced.ts`
118
+
119
+ - **MCP Resources Protocol** (Phase 6):
120
+ - Implemented `resources/list` and `resources/read` endpoints
121
+ - Added `artifact://` and `sample://` URI schemes
122
+ - Added resource change notifications
123
+ - New module: `src/mcp-resources.ts`
124
+
125
+ - **Token Budget Tracking** (Phase 7):
126
+ - Implemented SQLite `token_usage` table for persistence
127
+ - Added simple usage recording and querying
128
+ - Provides tool-based statistics and recent usage history
129
+ - Lightweight implementation focused on core recording needs
130
+ - New module: `src/token-budget.ts`
131
+
132
+ - **Performance Benchmarking** (Phase 8):
133
+ - Created benchmark suite for cache, response, and disk optimization
134
+ - Implemented token reduction measurement
135
+ - Added optimization report generation
136
+ - Added tuning recommendations
137
+ - New module: `src/performance-benchmark.ts`
138
+
10
139
  ## [0.1.4] - 2026-03-14
11
140
 
12
141
  - 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