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.
- package/CHANGELOG.md +129 -0
- package/CLAUDE_INSTALLATION.md +43 -0
- package/CODEX_INSTALLATION.md +12 -0
- package/COPILOT_INSTALLATION.md +12 -0
- package/README.md +380 -29
- package/README_zh.md +102 -3
- package/bin/windows-exe-decompiler-mcp-docker.js +5 -0
- package/bin/windows-exe-decompiler-mcp-server.js +10 -1
- package/dist/analysis-budget-scheduler.d.ts +96 -0
- package/dist/analysis-budget-scheduler.js +608 -0
- package/dist/analysis-coverage.d.ts +290 -0
- package/dist/analysis-coverage.js +178 -0
- package/dist/analysis-evidence.d.ts +232 -0
- package/dist/analysis-evidence.js +337 -0
- package/dist/analysis-provenance.d.ts +300 -154
- package/dist/analysis-provenance.js +27 -0
- package/dist/analysis-run-state.d.ts +576 -0
- package/dist/analysis-run-state.js +563 -0
- package/dist/analysis-task-runner.d.ts +4 -1
- package/dist/analysis-task-runner.js +170 -2
- package/dist/api/auth-middleware.d.ts +29 -0
- package/dist/api/auth-middleware.js +62 -0
- package/dist/api/file-server.d.ts +47 -0
- package/dist/api/file-server.js +520 -0
- package/dist/api/multipart-parser.d.ts +19 -0
- package/dist/api/multipart-parser.js +96 -0
- package/dist/api/routes/health.d.ts +17 -0
- package/dist/api/routes/health.js +19 -0
- package/dist/artifact-inventory.js +3 -0
- package/dist/async-tool-wrapper.d.ts +28 -0
- package/dist/async-tool-wrapper.js +75 -0
- package/dist/cache-manager.d.ts +10 -0
- package/dist/cache-manager.js +67 -0
- package/dist/cfg-visual-exports.d.ts +100 -0
- package/dist/cfg-visual-exports.js +651 -0
- package/dist/chunked-analysis-evidence.d.ts +20 -0
- package/dist/chunked-analysis-evidence.js +45 -0
- package/dist/confidence-semantics.d.ts +39 -19
- package/dist/confidence-semantics.js +53 -0
- package/dist/config.d.ts +454 -242
- package/dist/config.js +193 -0
- package/dist/crypto-breakpoint-analysis.d.ts +920 -0
- package/dist/crypto-breakpoint-analysis.js +873 -0
- package/dist/crypto-planning-artifacts.d.ts +30 -0
- package/dist/crypto-planning-artifacts.js +149 -0
- package/dist/database.d.ts +281 -0
- package/dist/database.js +995 -0
- package/dist/decompiler-worker.d.ts +37 -0
- package/dist/decompiler-worker.js +154 -0
- package/dist/explanation-graphs.d.ts +714 -0
- package/dist/explanation-graphs.js +238 -0
- package/dist/frida/script-generator.d.ts +21 -0
- package/dist/frida/script-generator.js +93 -0
- package/dist/ghidra-config.js +23 -0
- package/dist/ghidra-execution-summary.d.ts +92 -92
- package/dist/index.js +81 -10
- package/dist/intent-routing.d.ts +279 -0
- package/dist/intent-routing.js +445 -0
- package/dist/job-queue.d.ts +21 -1
- package/dist/job-queue.js +79 -11
- package/dist/kb/function-kb.d.ts +24 -0
- package/dist/kb/function-kb.js +127 -0
- package/dist/kb/kb-database.d.ts +58 -0
- package/dist/kb/kb-database.js +99 -0
- package/dist/kb/kb-llm-integration.d.ts +37 -0
- package/dist/kb/kb-llm-integration.js +42 -0
- package/dist/kb/sample-kb.d.ts +43 -0
- package/dist/kb/sample-kb.js +45 -0
- package/dist/kb/search-kb.d.ts +30 -0
- package/dist/kb/search-kb.js +107 -0
- package/dist/kb/team-kb.d.ts +17 -0
- package/dist/kb/team-kb.js +45 -0
- package/dist/llm/auto-trigger.d.ts +39 -0
- package/dist/llm/auto-trigger.js +113 -0
- package/dist/llm/context-manager.d.ts +72 -0
- package/dist/llm/context-manager.js +142 -0
- package/dist/llm/llm-analyze.d.ts +93 -0
- package/dist/llm/llm-analyze.js +166 -0
- package/dist/logger.js +6 -3
- package/dist/nonblocking-analysis.d.ts +21 -0
- package/dist/nonblocking-analysis.js +54 -0
- package/dist/npm-docker-launcher.d.ts +22 -0
- package/dist/npm-docker-launcher.js +160 -0
- package/dist/performance-benchmark.d.ts +105 -0
- package/dist/performance-benchmark.js +217 -0
- package/dist/polling-guidance.d.ts +11 -11
- package/dist/polling-guidance.js +4 -1
- package/dist/prompts/function-explanation-review.js +2 -0
- package/dist/prompts/module-reconstruction-review.js +2 -0
- package/dist/prompts/semantic-name-review.js +2 -0
- package/dist/runtime-correlation.d.ts +42 -0
- package/dist/runtime-correlation.js +76 -0
- package/dist/runtime-paths.js +36 -3
- package/dist/runtime-worker-pool.d.ts +79 -0
- package/dist/runtime-worker-pool.js +317 -0
- package/dist/sample-finalization.d.ts +28 -0
- package/dist/sample-finalization.js +148 -0
- package/dist/selection-diff.d.ts +1050 -513
- package/dist/selection-diff.js +20 -4
- package/dist/server.d.ts +32 -3
- package/dist/server.js +295 -46
- package/dist/setup-guidance.d.ts +63 -33
- package/dist/setup-guidance.js +410 -6
- package/dist/static-analysis-artifacts.d.ts +28 -0
- package/dist/static-analysis-artifacts.js +127 -0
- package/dist/static-analysis-environment.d.ts +10 -0
- package/dist/static-analysis-environment.js +103 -0
- package/dist/static-backend-discovery.d.ts +39 -0
- package/dist/static-backend-discovery.js +455 -0
- package/dist/storage/cleanup-job.d.ts +24 -0
- package/dist/storage/cleanup-job.js +150 -0
- package/dist/storage/metadata-logger.d.ts +47 -0
- package/dist/storage/metadata-logger.js +98 -0
- package/dist/storage/storage-manager.d.ts +118 -0
- package/dist/storage/storage-manager.js +456 -0
- package/dist/string-xref-analysis.d.ts +629 -0
- package/dist/string-xref-analysis.js +577 -0
- package/dist/string-xref-artifacts.d.ts +30 -0
- package/dist/string-xref-artifacts.js +149 -0
- package/dist/summary-artifacts.d.ts +33 -0
- package/dist/summary-artifacts.js +149 -0
- package/dist/summary-digests.d.ts +2459 -0
- package/dist/summary-digests.js +653 -0
- package/dist/tool-name-normalization.d.ts +7 -0
- package/dist/tool-name-normalization.js +44 -0
- package/dist/tool-surface-guidance.d.ts +6 -0
- package/dist/tool-surface-guidance.js +12 -0
- package/dist/tools/analysis-context-link.d.ts +275 -0
- package/dist/tools/analysis-context-link.js +654 -0
- package/dist/tools/artifact-download.d.ts +102 -0
- package/dist/tools/artifact-download.js +154 -0
- package/dist/tools/artifact-read.d.ts +146 -146
- package/dist/tools/artifact-read.js +4 -0
- package/dist/tools/artifacts-diff.d.ts +546 -546
- package/dist/tools/artifacts-list.d.ts +368 -368
- package/dist/tools/artifacts-list.js +1 -0
- package/dist/tools/attack-map.d.ts +154 -154
- package/dist/tools/binary-role-profile.d.ts +933 -820
- package/dist/tools/binary-role-profile.js +122 -15
- package/dist/tools/breakpoint-smart.d.ts +436 -0
- package/dist/tools/breakpoint-smart.js +288 -0
- package/dist/tools/code-function-cfg.d.ts +940 -31
- package/dist/tools/code-function-cfg.js +419 -55
- package/dist/tools/code-function-decompile.d.ts +20 -20
- package/dist/tools/code-function-disassemble.d.ts +12 -12
- package/dist/tools/code-function-explain-apply.d.ts +170 -170
- package/dist/tools/code-function-explain-prepare.d.ts +344 -344
- package/dist/tools/code-function-explain-review.d.ts +258 -258
- package/dist/tools/code-function-explain-review.js +17 -2
- package/dist/tools/code-function-rename-apply.d.ts +164 -164
- package/dist/tools/code-function-rename-prepare.d.ts +350 -350
- package/dist/tools/code-function-rename-review.d.ts +400 -400
- package/dist/tools/code-function-rename-review.js +17 -2
- package/dist/tools/code-functions-define.d.ts +242 -242
- package/dist/tools/code-functions-list.d.ts +6 -6
- package/dist/tools/code-functions-rank.d.ts +4 -4
- package/dist/tools/code-functions-reconstruct.d.ts +2812 -2367
- package/dist/tools/code-functions-reconstruct.js +4 -1
- package/dist/tools/code-functions-search.d.ts +20 -20
- package/dist/tools/code-functions-search.js +2 -1
- package/dist/tools/code-functions-smart-recover.d.ts +254 -254
- package/dist/tools/code-module-review-apply.d.ts +150 -150
- package/dist/tools/code-module-review-prepare.d.ts +566 -566
- package/dist/tools/code-module-review.d.ts +328 -328
- package/dist/tools/code-module-review.js +17 -2
- package/dist/tools/code-reconstruct-export.d.ts +1300 -1036
- package/dist/tools/code-reconstruct-plan.d.ts +168 -168
- package/dist/tools/code-xrefs-analyze.d.ts +272 -0
- package/dist/tools/code-xrefs-analyze.js +344 -0
- package/dist/tools/com-role-profile.d.ts +232 -232
- package/dist/tools/compiler-packer-detect.d.ts +822 -0
- package/dist/tools/compiler-packer-detect.js +401 -0
- package/dist/tools/crypto-identify.d.ts +756 -0
- package/dist/tools/crypto-identify.js +670 -0
- package/dist/tools/dll-export-profile.d.ts +420 -420
- package/dist/tools/docker-backend-tools.d.ts +2471 -0
- package/dist/tools/docker-backend-tools.js +1692 -0
- package/dist/tools/dotnet-metadata-extract.d.ts +320 -320
- package/dist/tools/dotnet-reconstruct-export.d.ts +406 -406
- package/dist/tools/dotnet-types-list.d.ts +224 -224
- package/dist/tools/dynamic-dependencies.d.ts +147 -147
- package/dist/tools/dynamic-dependencies.js +143 -8
- package/dist/tools/frida-runtime-instrument.d.ts +381 -0
- package/dist/tools/frida-runtime-instrument.js +381 -0
- package/dist/tools/frida-script-inject.d.ts +360 -0
- package/dist/tools/frida-script-inject.js +401 -0
- package/dist/tools/frida-trace-capture.d.ts +365 -0
- package/dist/tools/frida-trace-capture.js +504 -0
- package/dist/tools/ghidra-analyze.d.ts +187 -32
- package/dist/tools/ghidra-analyze.js +82 -44
- package/dist/tools/ghidra-health.d.ts +137 -137
- package/dist/tools/ioc-export.d.ts +130 -130
- package/dist/tools/packer-detect.d.ts +86 -86
- package/dist/tools/packer-detect.js +16 -20
- package/dist/tools/pe-exports-extract.d.ts +90 -90
- package/dist/tools/pe-exports-extract.js +16 -20
- package/dist/tools/pe-fingerprint.d.ts +138 -138
- package/dist/tools/pe-fingerprint.js +16 -20
- package/dist/tools/pe-imports-extract.d.ts +42 -42
- package/dist/tools/pe-imports-extract.js +16 -20
- package/dist/tools/pe-pdata-extract.d.ts +328 -328
- package/dist/tools/pe-structure-analyze.d.ts +500 -0
- package/dist/tools/pe-structure-analyze.js +246 -0
- package/dist/tools/pe-symbols-recover.d.ts +154 -154
- package/dist/tools/report-generate.d.ts +601 -111
- package/dist/tools/report-generate.js +206 -8
- package/dist/tools/report-summarize.d.ts +7916 -3768
- package/dist/tools/report-summarize.js +1181 -50
- package/dist/tools/runtime-detect.d.ts +62 -62
- package/dist/tools/runtime-detect.js +16 -20
- package/dist/tools/rust-binary-analyze.d.ts +1540 -1540
- package/dist/tools/rust-demangle.d.ts +49 -0
- package/dist/tools/rust-demangle.js +202 -0
- package/dist/tools/sample-ingest.d.ts +73 -38
- package/dist/tools/sample-ingest.js +180 -154
- package/dist/tools/sample-profile-get.d.ts +340 -218
- package/dist/tools/sample-profile-get.js +112 -12
- package/dist/tools/sample-request-upload.d.ts +92 -0
- package/dist/tools/sample-request-upload.js +91 -0
- package/dist/tools/sandbox-execute.d.ts +302 -302
- package/dist/tools/setup-remediate.d.ts +495 -0
- package/dist/tools/setup-remediate.js +259 -0
- package/dist/tools/static-capability-triage.d.ts +666 -0
- package/dist/tools/static-capability-triage.js +305 -0
- package/dist/tools/static-worker-client.d.ts +41 -0
- package/dist/tools/static-worker-client.js +59 -0
- package/dist/tools/strings-extract.d.ts +1019 -252
- package/dist/tools/strings-extract.js +293 -43
- package/dist/tools/strings-floss-decode.d.ts +752 -74
- package/dist/tools/strings-floss-decode.js +133 -31
- package/dist/tools/system-health.d.ts +411 -385
- package/dist/tools/system-health.js +156 -9
- package/dist/tools/system-setup-guide.d.ts +125 -125
- package/dist/tools/system-setup-guide.js +14 -5
- package/dist/tools/task-cancel.d.ts +4 -4
- package/dist/tools/task-status.d.ts +131 -10
- package/dist/tools/task-status.js +300 -69
- package/dist/tools/task-sweep.d.ts +4 -4
- package/dist/tools/tool-help.d.ts +236 -222
- package/dist/tools/tool-help.js +563 -19
- package/dist/tools/trace-condition.d.ts +1118 -0
- package/dist/tools/trace-condition.js +366 -0
- package/dist/tools/yara-scan.d.ts +358 -358
- package/dist/tools/yara-scan.js +16 -20
- package/dist/types.d.ts +5 -1
- package/dist/unpack-debug-runtime.d.ts +421 -0
- package/dist/unpack-debug-runtime.js +542 -0
- package/dist/visualization/call-graph.d.ts +57 -0
- package/dist/visualization/call-graph.js +147 -0
- package/dist/visualization/crypto-flow.d.ts +50 -0
- package/dist/visualization/crypto-flow.js +152 -0
- package/dist/visualization/data-flow.d.ts +51 -0
- package/dist/visualization/data-flow.js +154 -0
- package/dist/visualization/visualization-integration.d.ts +53 -0
- package/dist/visualization/visualization-integration.js +50 -0
- package/dist/workflows/analyze-auto.d.ts +690 -0
- package/dist/workflows/analyze-auto.js +882 -0
- package/dist/workflows/analyze-pipeline.d.ts +7624 -0
- package/dist/workflows/analyze-pipeline.js +2017 -0
- package/dist/workflows/deep-static.d.ts +402 -16
- package/dist/workflows/deep-static.js +202 -55
- package/dist/workflows/function-explanation-review.d.ts +4702 -3319
- package/dist/workflows/function-index-recover.d.ts +224 -224
- package/dist/workflows/module-reconstruction-review.d.ts +4663 -3280
- package/dist/workflows/reconstruct.d.ts +5834 -3572
- package/dist/workflows/reconstruct.js +297 -10
- package/dist/workflows/semantic-name-review.d.ts +4824 -3441
- package/dist/workflows/summarize.d.ts +5839 -0
- package/dist/workflows/summarize.js +825 -0
- package/dist/workflows/triage.d.ts +1046 -405
- package/dist/workflows/triage.js +1177 -28
- package/dist/workspace-manager.d.ts +10 -0
- package/dist/workspace-manager.js +29 -0
- package/frida_scripts/README.md +90 -0
- package/frida_scripts/anti_debug_bypass.js +220 -0
- package/frida_scripts/api_trace.js +227 -0
- package/frida_scripts/crypto_finder.js +216 -0
- package/frida_scripts/file_registry_monitor.js +416 -0
- package/frida_scripts/string_decoder.js +210 -0
- package/ghidra_scripts/AnalyzeCrossReferences.java +644 -0
- package/package.json +16 -5
- package/requirements.txt +2 -0
- package/workers/frida_worker.py +814 -0
- package/workers/requirements-dynamic.txt +4 -0
- package/workers/requirements-qiling.txt +5 -0
- package/workers/requirements.txt +1 -0
- package/workers/rizin_preview_worker.py +84 -0
- 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
|
package/CLAUDE_INSTALLATION.md
CHANGED
|
@@ -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
|
package/CODEX_INSTALLATION.md
CHANGED
|
@@ -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`
|
package/COPILOT_INSTALLATION.md
CHANGED
|
@@ -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
|