windows-exe-decompiler-mcp-server 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE_INSTALLATION.md +129 -0
- package/CODEX_INSTALLATION.md +25 -1
- package/COPILOT_INSTALLATION.md +29 -1
- package/LICENSE +21 -21
- package/README.md +232 -110
- package/dist/analysis-provenance.d.ts +50 -2
- package/dist/analysis-provenance.js +1 -0
- package/dist/analysis-task-runner.js +92 -0
- package/dist/config.d.ts +35 -16
- package/dist/config.js +37 -3
- package/dist/database.js +115 -115
- package/dist/decompiler-worker.d.ts +10 -5
- package/dist/decompiler-worker.js +240 -58
- package/dist/dynamic-trace.d.ts +6 -0
- package/dist/dynamic-trace.js +52 -1
- package/dist/ghidra-config.js +17 -1
- package/dist/index.js +38 -8
- package/dist/pe-runtime-functions.d.ts +90 -0
- package/dist/pe-runtime-functions.js +452 -0
- package/dist/prompts/module-reconstruction-review.d.ts +5 -0
- package/dist/prompts/module-reconstruction-review.js +65 -0
- package/dist/runtime-correlation.d.ts +5 -0
- package/dist/runtime-correlation.js +179 -2
- package/dist/sample-workspace.d.ts +28 -0
- package/dist/sample-workspace.js +186 -0
- package/dist/semantic-name-suggestion-artifacts.d.ts +56 -0
- package/dist/semantic-name-suggestion-artifacts.js +87 -0
- package/dist/server.js +1 -1
- package/dist/setup-guidance.d.ts +73 -0
- package/dist/setup-guidance.js +211 -0
- package/dist/tools/artifact-read.d.ts +10 -10
- package/dist/tools/artifacts-diff.d.ts +8 -8
- package/dist/tools/artifacts-list.d.ts +16 -16
- package/dist/tools/attack-map.d.ts +8 -8
- package/dist/tools/binary-role-profile.d.ts +1197 -0
- package/dist/tools/binary-role-profile.js +575 -0
- package/dist/tools/code-function-explain-apply.d.ts +12 -12
- package/dist/tools/code-function-explain-prepare.d.ts +12 -12
- package/dist/tools/code-function-explain-review.d.ts +58 -58
- package/dist/tools/code-function-rename-apply.d.ts +12 -12
- package/dist/tools/code-function-rename-prepare.d.ts +14 -14
- package/dist/tools/code-function-rename-review.d.ts +66 -66
- package/dist/tools/code-functions-define.d.ts +337 -0
- package/dist/tools/code-functions-define.js +337 -0
- package/dist/tools/code-functions-list.js +1 -1
- package/dist/tools/code-functions-rank.js +1 -1
- package/dist/tools/code-functions-reconstruct.d.ts +368 -58
- package/dist/tools/code-functions-reconstruct.js +130 -10
- package/dist/tools/code-functions-smart-recover.d.ts +352 -0
- package/dist/tools/code-functions-smart-recover.js +190 -0
- package/dist/tools/code-module-review-apply.d.ts +233 -0
- package/dist/tools/code-module-review-apply.js +209 -0
- package/dist/tools/code-module-review-prepare.d.ts +756 -0
- package/dist/tools/code-module-review-prepare.js +343 -0
- package/dist/tools/code-module-review.d.ts +474 -0
- package/dist/tools/code-module-review.js +566 -0
- package/dist/tools/code-reconstruct-export.d.ts +193 -21
- package/dist/tools/code-reconstruct-export.js +578 -21
- package/dist/tools/code-reconstruct-plan.d.ts +20 -20
- package/dist/tools/com-role-profile.d.ts +353 -0
- package/dist/tools/com-role-profile.js +186 -0
- package/dist/tools/dll-export-profile.d.ts +625 -0
- package/dist/tools/dll-export-profile.js +230 -0
- package/dist/tools/dotnet-metadata-extract.d.ts +122 -122
- package/dist/tools/dotnet-reconstruct-export.d.ts +49 -49
- package/dist/tools/dotnet-types-list.d.ts +66 -66
- package/dist/tools/dynamic-dependencies.d.ts +144 -8
- package/dist/tools/dynamic-dependencies.js +20 -1
- package/dist/tools/dynamic-memory-import.js +105 -2
- package/dist/tools/ghidra-analyze.d.ts +20 -0
- package/dist/tools/ghidra-analyze.js +10 -2
- package/dist/tools/ghidra-health.d.ts +177 -0
- package/dist/tools/ghidra-health.js +28 -0
- package/dist/tools/ioc-export.d.ts +8 -8
- package/dist/tools/packer-detect.d.ts +14 -14
- package/dist/tools/packer-detect.js +6 -9
- package/dist/tools/pe-exports-extract.d.ts +8 -8
- package/dist/tools/pe-exports-extract.js +6 -9
- package/dist/tools/pe-fingerprint.d.ts +36 -36
- package/dist/tools/pe-imports-extract.d.ts +8 -8
- package/dist/tools/pe-imports-extract.js +6 -9
- package/dist/tools/pe-pdata-extract.d.ts +448 -0
- package/dist/tools/pe-pdata-extract.js +219 -0
- package/dist/tools/pe-symbols-recover.d.ts +227 -0
- package/dist/tools/pe-symbols-recover.js +316 -0
- package/dist/tools/report-generate.d.ts +15 -1
- package/dist/tools/report-generate.js +139 -16
- package/dist/tools/report-summarize.d.ts +2242 -8
- package/dist/tools/report-summarize.js +246 -10
- package/dist/tools/runtime-detect.d.ts +8 -8
- package/dist/tools/runtime-detect.js +2 -12
- package/dist/tools/rust-binary-analyze.d.ts +2047 -0
- package/dist/tools/rust-binary-analyze.js +443 -0
- package/dist/tools/sample-profile-get.d.ts +135 -16
- package/dist/tools/sample-profile-get.js +35 -32
- package/dist/tools/sandbox-execute.d.ts +10 -10
- package/dist/tools/strings-extract.d.ts +8 -8
- package/dist/tools/strings-extract.js +2 -12
- package/dist/tools/strings-floss-decode.d.ts +8 -8
- package/dist/tools/system-health.d.ts +172 -36
- package/dist/tools/system-health.js +14 -0
- package/dist/tools/system-setup-guide.d.ts +179 -0
- package/dist/tools/system-setup-guide.js +62 -0
- package/dist/tools/tool-help.d.ts +16 -16
- package/dist/tools/tool-help.js +172 -0
- package/dist/tools/yara-scan.d.ts +8 -8
- package/dist/types.d.ts +2 -0
- package/dist/workflows/function-explanation-review.d.ts +3034 -76
- package/dist/workflows/function-explanation-review.js +172 -42
- package/dist/workflows/function-index-recover.d.ts +333 -0
- package/dist/workflows/function-index-recover.js +291 -0
- package/dist/workflows/module-reconstruction-review.d.ts +3537 -0
- package/dist/workflows/module-reconstruction-review.js +354 -0
- package/dist/workflows/reconstruct.d.ts +2182 -223
- package/dist/workflows/reconstruct.js +575 -32
- package/dist/workflows/semantic-name-review.d.ts +1436 -85
- package/dist/workflows/semantic-name-review.js +150 -58
- package/dist/workflows/triage.d.ts +8 -8
- package/ghidra_scripts/DecompileFunction.java +487 -487
- package/ghidra_scripts/ExtractCFG.java +256 -256
- package/ghidra_scripts/ExtractFunctions.java +442 -442
- package/ghidra_scripts/README.md +112 -112
- package/ghidra_scripts/SearchFunctionReferences.java +380 -380
- package/helpers/DotNetMetadataProbe/DotNetMetadataProbe.csproj +9 -9
- package/helpers/DotNetMetadataProbe/Program.cs +566 -566
- package/install-to-claude.ps1 +432 -0
- package/install-to-codex.ps1 +256 -178
- package/install-to-copilot.ps1 +389 -303
- package/package.json +4 -2
- package/requirements.txt +9 -9
- package/workers/requirements-dynamic.txt +11 -11
- package/workers/requirements.txt +8 -8
- package/workers/speakeasy_compat.py +175 -175
- package/workers/static_worker.py +3474 -3474
package/dist/index.js
CHANGED
|
@@ -18,6 +18,8 @@ import { artifactsDiffToolDefinition, createArtifactsDiffHandler } from './tools
|
|
|
18
18
|
import { peFingerprintToolDefinition, createPEFingerprintHandler } from './tools/pe-fingerprint.js';
|
|
19
19
|
import { peImportsExtractToolDefinition, createPEImportsExtractHandler } from './tools/pe-imports-extract.js';
|
|
20
20
|
import { peExportsExtractToolDefinition, createPEExportsExtractHandler } from './tools/pe-exports-extract.js';
|
|
21
|
+
import { pePdataExtractToolDefinition, createPEPdataExtractHandler, } from './tools/pe-pdata-extract.js';
|
|
22
|
+
import { peSymbolsRecoverToolDefinition, createPESymbolsRecoverHandler, } from './tools/pe-symbols-recover.js';
|
|
21
23
|
import { stringsExtractToolDefinition, createStringsExtractHandler } from './tools/strings-extract.js';
|
|
22
24
|
import { stringsFlossDecodeToolDefinition, createStringsFlossDecodeHandler } from './tools/strings-floss-decode.js';
|
|
23
25
|
import { yaraScanToolDefinition, createYaraScanHandler } from './tools/yara-scan.js';
|
|
@@ -25,9 +27,14 @@ import { runtimeDetectToolDefinition, createRuntimeDetectHandler } from './tools
|
|
|
25
27
|
import { dotNetMetadataExtractToolDefinition, createDotNetMetadataExtractHandler } from './tools/dotnet-metadata-extract.js';
|
|
26
28
|
import { dotNetTypesListToolDefinition, createDotNetTypesListHandler } from './tools/dotnet-types-list.js';
|
|
27
29
|
import { packerDetectToolDefinition, createPackerDetectHandler } from './tools/packer-detect.js';
|
|
30
|
+
import { binaryRoleProfileToolDefinition, createBinaryRoleProfileHandler, } from './tools/binary-role-profile.js';
|
|
31
|
+
import { dllExportProfileToolDefinition, createDllExportProfileHandler, } from './tools/dll-export-profile.js';
|
|
32
|
+
import { comRoleProfileToolDefinition, createComRoleProfileHandler, } from './tools/com-role-profile.js';
|
|
33
|
+
import { rustBinaryAnalyzeToolDefinition, createRustBinaryAnalyzeHandler, } from './tools/rust-binary-analyze.js';
|
|
28
34
|
import { triageWorkflowToolDefinition, createTriageWorkflowHandler } from './workflows/triage.js';
|
|
29
35
|
import { reconstructWorkflowToolDefinition, createReconstructWorkflowHandler } from './workflows/reconstruct.js';
|
|
30
36
|
import { deepStaticWorkflowToolDefinition, createDeepStaticWorkflowHandler } from './workflows/deep-static.js';
|
|
37
|
+
import { functionIndexRecoverWorkflowToolDefinition, createFunctionIndexRecoverWorkflowHandler, } from './workflows/function-index-recover.js';
|
|
31
38
|
import { semanticNameReviewWorkflowToolDefinition, createSemanticNameReviewWorkflowHandler, } from './workflows/semantic-name-review.js';
|
|
32
39
|
import { functionExplanationReviewWorkflowToolDefinition, createFunctionExplanationReviewWorkflowHandler, } from './workflows/function-explanation-review.js';
|
|
33
40
|
import { reportSummarizeToolDefinition, createReportSummarizeHandler } from './tools/report-summarize.js';
|
|
@@ -36,6 +43,7 @@ import { toolHelpToolDefinition, createToolHelpHandler } from './tools/tool-help
|
|
|
36
43
|
import { ghidraAnalyzeToolDefinition, createGhidraAnalyzeHandler } from './tools/ghidra-analyze.js';
|
|
37
44
|
import { ghidraHealthToolDefinition, createGhidraHealthHandler } from './tools/ghidra-health.js';
|
|
38
45
|
import { systemHealthToolDefinition, createSystemHealthHandler } from './tools/system-health.js';
|
|
46
|
+
import { systemSetupGuideToolDefinition, createSystemSetupGuideHandler, } from './tools/system-setup-guide.js';
|
|
39
47
|
import { dynamicDependenciesToolDefinition, createDynamicDependenciesHandler } from './tools/dynamic-dependencies.js';
|
|
40
48
|
import { dynamicTraceImportToolDefinition, createDynamicTraceImportHandler } from './tools/dynamic-trace-import.js';
|
|
41
49
|
import { dynamicMemoryImportToolDefinition, createDynamicMemoryImportHandler } from './tools/dynamic-memory-import.js';
|
|
@@ -47,6 +55,8 @@ import { taskCancelToolDefinition, createTaskCancelHandler } from './tools/task-
|
|
|
47
55
|
import { taskSweepToolDefinition, createTaskSweepHandler } from './tools/task-sweep.js';
|
|
48
56
|
import { codeFunctionsListToolDefinition, createCodeFunctionsListHandler } from './tools/code-functions-list.js';
|
|
49
57
|
import { codeFunctionsRankToolDefinition, createCodeFunctionsRankHandler } from './tools/code-functions-rank.js';
|
|
58
|
+
import { codeFunctionsSmartRecoverToolDefinition, createCodeFunctionsSmartRecoverHandler, } from './tools/code-functions-smart-recover.js';
|
|
59
|
+
import { codeFunctionsDefineToolDefinition, createCodeFunctionsDefineHandler, } from './tools/code-functions-define.js';
|
|
50
60
|
import { codeFunctionsSearchToolDefinition, createCodeFunctionsSearchHandler } from './tools/code-functions-search.js';
|
|
51
61
|
import { codeFunctionDecompileToolDefinition, createCodeFunctionDecompileHandler } from './tools/code-function-decompile.js';
|
|
52
62
|
import { codeFunctionDisassembleToolDefinition, createCodeFunctionDisassembleHandler } from './tools/code-function-disassemble.js';
|
|
@@ -63,6 +73,11 @@ import { dotNetReconstructExportToolDefinition, createDotNetReconstructExportHan
|
|
|
63
73
|
import { codeReconstructPlanToolDefinition, createCodeReconstructPlanHandler } from './tools/code-reconstruct-plan.js';
|
|
64
74
|
import { semanticNameReviewPromptDefinition, createSemanticNameReviewPromptHandler, } from './prompts/semantic-name-review.js';
|
|
65
75
|
import { functionExplanationReviewPromptDefinition, createFunctionExplanationReviewPromptHandler, } from './prompts/function-explanation-review.js';
|
|
76
|
+
import { moduleReconstructionReviewPromptDefinition, createModuleReconstructionReviewPromptHandler, } from './prompts/module-reconstruction-review.js';
|
|
77
|
+
import { codeModuleReviewPrepareToolDefinition, createCodeModuleReviewPrepareHandler, } from './tools/code-module-review-prepare.js';
|
|
78
|
+
import { codeModuleReviewApplyToolDefinition, createCodeModuleReviewApplyHandler, } from './tools/code-module-review-apply.js';
|
|
79
|
+
import { codeModuleReviewToolDefinition, createCodeModuleReviewHandler, } from './tools/code-module-review.js';
|
|
80
|
+
import { moduleReconstructionReviewWorkflowToolDefinition, createModuleReconstructionReviewWorkflowHandler, } from './workflows/module-reconstruction-review.js';
|
|
66
81
|
// Export public API
|
|
67
82
|
export { MCPServer } from './server.js';
|
|
68
83
|
export { loadConfig } from './config.js';
|
|
@@ -75,9 +90,9 @@ async function main() {
|
|
|
75
90
|
const config = loadConfig(configPath);
|
|
76
91
|
// Initialize components
|
|
77
92
|
const workspaceManager = new WorkspaceManager(config.workspace.root);
|
|
78
|
-
const database = new DatabaseManager(config.database.path
|
|
79
|
-
const policyGuard = new PolicyGuard(
|
|
80
|
-
const cacheManager = new CacheManager(
|
|
93
|
+
const database = new DatabaseManager(config.database.path);
|
|
94
|
+
const policyGuard = new PolicyGuard(config.logging.auditPath);
|
|
95
|
+
const cacheManager = new CacheManager(config.cache.root, database);
|
|
81
96
|
const jobQueue = new JobQueue();
|
|
82
97
|
const analysisTaskRunner = new AnalysisTaskRunner(jobQueue, database, workspaceManager, cacheManager);
|
|
83
98
|
analysisTaskRunner.start();
|
|
@@ -86,10 +101,11 @@ async function main() {
|
|
|
86
101
|
// Register tools
|
|
87
102
|
server.registerPrompt(semanticNameReviewPromptDefinition, createSemanticNameReviewPromptHandler());
|
|
88
103
|
server.registerPrompt(functionExplanationReviewPromptDefinition, createFunctionExplanationReviewPromptHandler());
|
|
104
|
+
server.registerPrompt(moduleReconstructionReviewPromptDefinition, createModuleReconstructionReviewPromptHandler());
|
|
89
105
|
// Task 8.1: sample.ingest tool
|
|
90
106
|
server.registerTool(sampleIngestToolDefinition, createSampleIngestHandler(workspaceManager, database, policyGuard));
|
|
91
107
|
// Task 8.2: sample.profile.get tool
|
|
92
|
-
server.registerTool(sampleProfileGetToolDefinition, createSampleProfileGetHandler(database));
|
|
108
|
+
server.registerTool(sampleProfileGetToolDefinition, createSampleProfileGetHandler(database, workspaceManager));
|
|
93
109
|
// Task 18.15: artifact.read tool - Read manifest/gaps and other artifacts via MCP
|
|
94
110
|
server.registerTool(artifactReadToolDefinition, createArtifactReadHandler(workspaceManager, database));
|
|
95
111
|
// Task 18.18: artifacts.list tool - Enumerate artifact inventory with existence metadata
|
|
@@ -101,6 +117,8 @@ async function main() {
|
|
|
101
117
|
server.registerTool(peImportsExtractToolDefinition, createPEImportsExtractHandler(workspaceManager, database, cacheManager));
|
|
102
118
|
// Task 8.5: pe.exports.extract tool
|
|
103
119
|
server.registerTool(peExportsExtractToolDefinition, createPEExportsExtractHandler(workspaceManager, database, cacheManager));
|
|
120
|
+
server.registerTool(pePdataExtractToolDefinition, createPEPdataExtractHandler(workspaceManager, database, cacheManager));
|
|
121
|
+
server.registerTool(peSymbolsRecoverToolDefinition, createPESymbolsRecoverHandler(workspaceManager, database, cacheManager));
|
|
104
122
|
// Task 8.6: strings.extract tool
|
|
105
123
|
server.registerTool(stringsExtractToolDefinition, createStringsExtractHandler(workspaceManager, database, cacheManager));
|
|
106
124
|
// Task 8.7: strings.floss.decode tool
|
|
@@ -113,18 +131,24 @@ async function main() {
|
|
|
113
131
|
server.registerTool(dotNetTypesListToolDefinition, createDotNetTypesListHandler(workspaceManager, database, cacheManager));
|
|
114
132
|
// Task 8.10: packer.detect tool
|
|
115
133
|
server.registerTool(packerDetectToolDefinition, createPackerDetectHandler(workspaceManager, database, cacheManager));
|
|
134
|
+
server.registerTool(binaryRoleProfileToolDefinition, createBinaryRoleProfileHandler(workspaceManager, database, cacheManager));
|
|
135
|
+
server.registerTool(dllExportProfileToolDefinition, createDllExportProfileHandler(workspaceManager, database, cacheManager));
|
|
136
|
+
server.registerTool(comRoleProfileToolDefinition, createComRoleProfileHandler(workspaceManager, database, cacheManager));
|
|
137
|
+
server.registerTool(rustBinaryAnalyzeToolDefinition, createRustBinaryAnalyzeHandler(workspaceManager, database, cacheManager));
|
|
116
138
|
// Task 9.1: workflow.triage - Quick triage workflow
|
|
117
139
|
server.registerTool(triageWorkflowToolDefinition, createTriageWorkflowHandler(workspaceManager, database, cacheManager));
|
|
118
140
|
// Task 40.5.1: workflow.reconstruct - End-to-end source reconstruction workflow
|
|
119
|
-
server.registerTool(reconstructWorkflowToolDefinition, createReconstructWorkflowHandler(workspaceManager, database, cacheManager));
|
|
141
|
+
server.registerTool(reconstructWorkflowToolDefinition, createReconstructWorkflowHandler(workspaceManager, database, cacheManager, undefined, jobQueue));
|
|
120
142
|
// Task 16.x: workflow.deep_static - Comprehensive long-running static analysis
|
|
121
143
|
server.registerTool(deepStaticWorkflowToolDefinition, createDeepStaticWorkflowHandler(workspaceManager, database, cacheManager, jobQueue));
|
|
122
|
-
server.registerTool(
|
|
123
|
-
server.registerTool(
|
|
144
|
+
server.registerTool(functionIndexRecoverWorkflowToolDefinition, createFunctionIndexRecoverWorkflowHandler(workspaceManager, database, cacheManager));
|
|
145
|
+
server.registerTool(semanticNameReviewWorkflowToolDefinition, createSemanticNameReviewWorkflowHandler(workspaceManager, database, cacheManager, server, undefined, jobQueue));
|
|
146
|
+
server.registerTool(functionExplanationReviewWorkflowToolDefinition, createFunctionExplanationReviewWorkflowHandler(workspaceManager, database, cacheManager, server, undefined, jobQueue));
|
|
147
|
+
server.registerTool(moduleReconstructionReviewWorkflowToolDefinition, createModuleReconstructionReviewWorkflowHandler(workspaceManager, database, cacheManager, server, undefined, jobQueue));
|
|
124
148
|
// Task 9.2: report.summarize - Generate quick triage report
|
|
125
149
|
server.registerTool(reportSummarizeToolDefinition, createReportSummarizeHandler(workspaceManager, database, cacheManager));
|
|
126
150
|
// Task 24.x: report.generate - Generate stored multi-stage analysis report artifact
|
|
127
|
-
server.registerTool(reportGenerateToolDefinition, createReportGenerateHandler(workspaceManager, database));
|
|
151
|
+
server.registerTool(reportGenerateToolDefinition, createReportGenerateHandler(workspaceManager, database, cacheManager));
|
|
128
152
|
// Task 15.1: ghidra.analyze - Analyze binary with Ghidra
|
|
129
153
|
server.registerTool(ghidraAnalyzeToolDefinition, createGhidraAnalyzeHandler(workspaceManager, database, jobQueue));
|
|
130
154
|
// Task execution controls: query/cancel/sweep analysis jobs
|
|
@@ -135,6 +159,7 @@ async function main() {
|
|
|
135
159
|
server.registerTool(ghidraHealthToolDefinition, createGhidraHealthHandler(workspaceManager, database));
|
|
136
160
|
// Task 40.5.2: system.health - Aggregated HA readiness health check
|
|
137
161
|
server.registerTool(systemHealthToolDefinition, createSystemHealthHandler(workspaceManager, database, { cacheManager }));
|
|
162
|
+
server.registerTool(systemSetupGuideToolDefinition, createSystemSetupGuideHandler());
|
|
138
163
|
// Task 18.22: dynamic.dependencies - probe dynamic-analysis component readiness
|
|
139
164
|
server.registerTool(dynamicDependenciesToolDefinition, createDynamicDependenciesHandler(workspaceManager, database));
|
|
140
165
|
// Runtime evidence import: normalize external traces / memory summaries into MCP artifacts
|
|
@@ -153,6 +178,8 @@ async function main() {
|
|
|
153
178
|
server.registerTool(codeFunctionsListToolDefinition, createCodeFunctionsListHandler(workspaceManager, database));
|
|
154
179
|
// Task 15.3: code.functions.rank - Rank functions by interest
|
|
155
180
|
server.registerTool(codeFunctionsRankToolDefinition, createCodeFunctionsRankHandler(workspaceManager, database));
|
|
181
|
+
server.registerTool(codeFunctionsSmartRecoverToolDefinition, createCodeFunctionsSmartRecoverHandler(workspaceManager, database, cacheManager));
|
|
182
|
+
server.registerTool(codeFunctionsDefineToolDefinition, createCodeFunctionsDefineHandler(workspaceManager, database));
|
|
156
183
|
server.registerTool(codeFunctionsSearchToolDefinition, createCodeFunctionsSearchHandler(workspaceManager, database));
|
|
157
184
|
// Task 15.4: code.function.decompile - Decompile specific function
|
|
158
185
|
server.registerTool(codeFunctionDecompileToolDefinition, createCodeFunctionDecompileHandler(workspaceManager, database));
|
|
@@ -166,6 +193,9 @@ async function main() {
|
|
|
166
193
|
server.registerTool(codeFunctionRenamePrepareToolDefinition, createCodeFunctionRenamePrepareHandler(workspaceManager, database, cacheManager));
|
|
167
194
|
server.registerTool(codeFunctionExplainPrepareToolDefinition, createCodeFunctionExplainPrepareHandler(workspaceManager, database, cacheManager));
|
|
168
195
|
server.registerTool(codeFunctionExplainApplyToolDefinition, createCodeFunctionExplainApplyHandler(workspaceManager, database));
|
|
196
|
+
server.registerTool(codeModuleReviewPrepareToolDefinition, createCodeModuleReviewPrepareHandler(workspaceManager, database, cacheManager));
|
|
197
|
+
server.registerTool(codeModuleReviewApplyToolDefinition, createCodeModuleReviewApplyHandler(workspaceManager, database));
|
|
198
|
+
server.registerTool(codeModuleReviewToolDefinition, createCodeModuleReviewHandler(workspaceManager, database, cacheManager, server));
|
|
169
199
|
server.registerTool(codeFunctionExplainReviewToolDefinition, createCodeFunctionExplainReviewHandler(workspaceManager, database, cacheManager, server));
|
|
170
200
|
server.registerTool(codeFunctionRenameApplyToolDefinition, createCodeFunctionRenameApplyHandler(workspaceManager, database));
|
|
171
201
|
server.registerTool(codeFunctionRenameReviewToolDefinition, createCodeFunctionRenameReviewHandler(workspaceManager, database, cacheManager, server));
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export interface PESectionRecord {
|
|
2
|
+
name: string;
|
|
3
|
+
virtualAddress: number;
|
|
4
|
+
virtualSize: number;
|
|
5
|
+
rawSize: number;
|
|
6
|
+
rawPointer: number;
|
|
7
|
+
characteristics: number;
|
|
8
|
+
executable: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PEExportRecord {
|
|
11
|
+
rva: number;
|
|
12
|
+
name: string;
|
|
13
|
+
ordinal: number;
|
|
14
|
+
isForwarder: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface UnwindInfoRecord {
|
|
17
|
+
version: number;
|
|
18
|
+
flags: number;
|
|
19
|
+
flagNames: string[];
|
|
20
|
+
prologSize: number;
|
|
21
|
+
unwindCodeCount: number;
|
|
22
|
+
frameRegister: string | null;
|
|
23
|
+
frameRegisterId: number;
|
|
24
|
+
frameOffset: number;
|
|
25
|
+
handlerRva?: number;
|
|
26
|
+
chainedRuntimeFunction?: {
|
|
27
|
+
beginRva: number;
|
|
28
|
+
endRva: number;
|
|
29
|
+
unwindInfoRva: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface PERuntimeFunctionEntry {
|
|
33
|
+
beginRva: number;
|
|
34
|
+
endRva: number;
|
|
35
|
+
size: number;
|
|
36
|
+
beginVa: number;
|
|
37
|
+
endVa: number;
|
|
38
|
+
beginAddress: string;
|
|
39
|
+
endAddress: string;
|
|
40
|
+
unwindInfoRva: number;
|
|
41
|
+
sectionName: string | null;
|
|
42
|
+
executableSection: boolean;
|
|
43
|
+
confidence: number;
|
|
44
|
+
unwind: UnwindInfoRecord | null;
|
|
45
|
+
}
|
|
46
|
+
export interface PdataExtractResult {
|
|
47
|
+
machine: number;
|
|
48
|
+
machineName: string;
|
|
49
|
+
imageBase: number;
|
|
50
|
+
entryPointRva: number;
|
|
51
|
+
exceptionDirectoryRva: number;
|
|
52
|
+
exceptionDirectorySize: number;
|
|
53
|
+
pdataPresent: boolean;
|
|
54
|
+
xdataPresent: boolean;
|
|
55
|
+
count: number;
|
|
56
|
+
sections: PESectionRecord[];
|
|
57
|
+
exports: PEExportRecord[];
|
|
58
|
+
entries: PERuntimeFunctionEntry[];
|
|
59
|
+
warnings: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface SmartRecoveredFunction {
|
|
62
|
+
address: string;
|
|
63
|
+
va: number;
|
|
64
|
+
rva: number;
|
|
65
|
+
size: number;
|
|
66
|
+
name: string;
|
|
67
|
+
nameSource: 'entry_point' | 'export' | 'synthetic_sub';
|
|
68
|
+
confidence: number;
|
|
69
|
+
source: 'pdata_runtime_function' | 'entry_point_only';
|
|
70
|
+
sectionName: string | null;
|
|
71
|
+
executableSection: boolean;
|
|
72
|
+
isEntryPoint: boolean;
|
|
73
|
+
isExported: boolean;
|
|
74
|
+
exportName?: string;
|
|
75
|
+
unwind?: UnwindInfoRecord | null;
|
|
76
|
+
evidence: string[];
|
|
77
|
+
}
|
|
78
|
+
export interface SmartRecoverResult {
|
|
79
|
+
machine: number;
|
|
80
|
+
machineName: string;
|
|
81
|
+
imageBase: number;
|
|
82
|
+
entryPointRva: number;
|
|
83
|
+
strategy: string[];
|
|
84
|
+
count: number;
|
|
85
|
+
functions: SmartRecoveredFunction[];
|
|
86
|
+
warnings: string[];
|
|
87
|
+
}
|
|
88
|
+
export declare function extractPdataFromPE(filePath: string): PdataExtractResult;
|
|
89
|
+
export declare function smartRecoverFunctionsFromPE(filePath: string): SmartRecoverResult;
|
|
90
|
+
//# sourceMappingURL=pe-runtime-functions.d.ts.map
|