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.
Files changed (134) hide show
  1. package/CLAUDE_INSTALLATION.md +129 -0
  2. package/CODEX_INSTALLATION.md +25 -1
  3. package/COPILOT_INSTALLATION.md +29 -1
  4. package/LICENSE +21 -21
  5. package/README.md +232 -110
  6. package/dist/analysis-provenance.d.ts +50 -2
  7. package/dist/analysis-provenance.js +1 -0
  8. package/dist/analysis-task-runner.js +92 -0
  9. package/dist/config.d.ts +35 -16
  10. package/dist/config.js +37 -3
  11. package/dist/database.js +115 -115
  12. package/dist/decompiler-worker.d.ts +10 -5
  13. package/dist/decompiler-worker.js +240 -58
  14. package/dist/dynamic-trace.d.ts +6 -0
  15. package/dist/dynamic-trace.js +52 -1
  16. package/dist/ghidra-config.js +17 -1
  17. package/dist/index.js +38 -8
  18. package/dist/pe-runtime-functions.d.ts +90 -0
  19. package/dist/pe-runtime-functions.js +452 -0
  20. package/dist/prompts/module-reconstruction-review.d.ts +5 -0
  21. package/dist/prompts/module-reconstruction-review.js +65 -0
  22. package/dist/runtime-correlation.d.ts +5 -0
  23. package/dist/runtime-correlation.js +179 -2
  24. package/dist/sample-workspace.d.ts +28 -0
  25. package/dist/sample-workspace.js +186 -0
  26. package/dist/semantic-name-suggestion-artifacts.d.ts +56 -0
  27. package/dist/semantic-name-suggestion-artifacts.js +87 -0
  28. package/dist/server.js +1 -1
  29. package/dist/setup-guidance.d.ts +73 -0
  30. package/dist/setup-guidance.js +211 -0
  31. package/dist/tools/artifact-read.d.ts +10 -10
  32. package/dist/tools/artifacts-diff.d.ts +8 -8
  33. package/dist/tools/artifacts-list.d.ts +16 -16
  34. package/dist/tools/attack-map.d.ts +8 -8
  35. package/dist/tools/binary-role-profile.d.ts +1197 -0
  36. package/dist/tools/binary-role-profile.js +575 -0
  37. package/dist/tools/code-function-explain-apply.d.ts +12 -12
  38. package/dist/tools/code-function-explain-prepare.d.ts +12 -12
  39. package/dist/tools/code-function-explain-review.d.ts +58 -58
  40. package/dist/tools/code-function-rename-apply.d.ts +12 -12
  41. package/dist/tools/code-function-rename-prepare.d.ts +14 -14
  42. package/dist/tools/code-function-rename-review.d.ts +66 -66
  43. package/dist/tools/code-functions-define.d.ts +337 -0
  44. package/dist/tools/code-functions-define.js +337 -0
  45. package/dist/tools/code-functions-list.js +1 -1
  46. package/dist/tools/code-functions-rank.js +1 -1
  47. package/dist/tools/code-functions-reconstruct.d.ts +368 -58
  48. package/dist/tools/code-functions-reconstruct.js +130 -10
  49. package/dist/tools/code-functions-smart-recover.d.ts +352 -0
  50. package/dist/tools/code-functions-smart-recover.js +190 -0
  51. package/dist/tools/code-module-review-apply.d.ts +233 -0
  52. package/dist/tools/code-module-review-apply.js +209 -0
  53. package/dist/tools/code-module-review-prepare.d.ts +756 -0
  54. package/dist/tools/code-module-review-prepare.js +343 -0
  55. package/dist/tools/code-module-review.d.ts +474 -0
  56. package/dist/tools/code-module-review.js +566 -0
  57. package/dist/tools/code-reconstruct-export.d.ts +193 -21
  58. package/dist/tools/code-reconstruct-export.js +578 -21
  59. package/dist/tools/code-reconstruct-plan.d.ts +20 -20
  60. package/dist/tools/com-role-profile.d.ts +353 -0
  61. package/dist/tools/com-role-profile.js +186 -0
  62. package/dist/tools/dll-export-profile.d.ts +625 -0
  63. package/dist/tools/dll-export-profile.js +230 -0
  64. package/dist/tools/dotnet-metadata-extract.d.ts +122 -122
  65. package/dist/tools/dotnet-reconstruct-export.d.ts +49 -49
  66. package/dist/tools/dotnet-types-list.d.ts +66 -66
  67. package/dist/tools/dynamic-dependencies.d.ts +144 -8
  68. package/dist/tools/dynamic-dependencies.js +20 -1
  69. package/dist/tools/dynamic-memory-import.js +105 -2
  70. package/dist/tools/ghidra-analyze.d.ts +20 -0
  71. package/dist/tools/ghidra-analyze.js +10 -2
  72. package/dist/tools/ghidra-health.d.ts +177 -0
  73. package/dist/tools/ghidra-health.js +28 -0
  74. package/dist/tools/ioc-export.d.ts +8 -8
  75. package/dist/tools/packer-detect.d.ts +14 -14
  76. package/dist/tools/packer-detect.js +6 -9
  77. package/dist/tools/pe-exports-extract.d.ts +8 -8
  78. package/dist/tools/pe-exports-extract.js +6 -9
  79. package/dist/tools/pe-fingerprint.d.ts +36 -36
  80. package/dist/tools/pe-imports-extract.d.ts +8 -8
  81. package/dist/tools/pe-imports-extract.js +6 -9
  82. package/dist/tools/pe-pdata-extract.d.ts +448 -0
  83. package/dist/tools/pe-pdata-extract.js +219 -0
  84. package/dist/tools/pe-symbols-recover.d.ts +227 -0
  85. package/dist/tools/pe-symbols-recover.js +316 -0
  86. package/dist/tools/report-generate.d.ts +15 -1
  87. package/dist/tools/report-generate.js +139 -16
  88. package/dist/tools/report-summarize.d.ts +2242 -8
  89. package/dist/tools/report-summarize.js +246 -10
  90. package/dist/tools/runtime-detect.d.ts +8 -8
  91. package/dist/tools/runtime-detect.js +2 -12
  92. package/dist/tools/rust-binary-analyze.d.ts +2047 -0
  93. package/dist/tools/rust-binary-analyze.js +443 -0
  94. package/dist/tools/sample-profile-get.d.ts +135 -16
  95. package/dist/tools/sample-profile-get.js +35 -32
  96. package/dist/tools/sandbox-execute.d.ts +10 -10
  97. package/dist/tools/strings-extract.d.ts +8 -8
  98. package/dist/tools/strings-extract.js +2 -12
  99. package/dist/tools/strings-floss-decode.d.ts +8 -8
  100. package/dist/tools/system-health.d.ts +172 -36
  101. package/dist/tools/system-health.js +14 -0
  102. package/dist/tools/system-setup-guide.d.ts +179 -0
  103. package/dist/tools/system-setup-guide.js +62 -0
  104. package/dist/tools/tool-help.d.ts +16 -16
  105. package/dist/tools/tool-help.js +172 -0
  106. package/dist/tools/yara-scan.d.ts +8 -8
  107. package/dist/types.d.ts +2 -0
  108. package/dist/workflows/function-explanation-review.d.ts +3034 -76
  109. package/dist/workflows/function-explanation-review.js +172 -42
  110. package/dist/workflows/function-index-recover.d.ts +333 -0
  111. package/dist/workflows/function-index-recover.js +291 -0
  112. package/dist/workflows/module-reconstruction-review.d.ts +3537 -0
  113. package/dist/workflows/module-reconstruction-review.js +354 -0
  114. package/dist/workflows/reconstruct.d.ts +2182 -223
  115. package/dist/workflows/reconstruct.js +575 -32
  116. package/dist/workflows/semantic-name-review.d.ts +1436 -85
  117. package/dist/workflows/semantic-name-review.js +150 -58
  118. package/dist/workflows/triage.d.ts +8 -8
  119. package/ghidra_scripts/DecompileFunction.java +487 -487
  120. package/ghidra_scripts/ExtractCFG.java +256 -256
  121. package/ghidra_scripts/ExtractFunctions.java +442 -442
  122. package/ghidra_scripts/README.md +112 -112
  123. package/ghidra_scripts/SearchFunctionReferences.java +380 -380
  124. package/helpers/DotNetMetadataProbe/DotNetMetadataProbe.csproj +9 -9
  125. package/helpers/DotNetMetadataProbe/Program.cs +566 -566
  126. package/install-to-claude.ps1 +432 -0
  127. package/install-to-codex.ps1 +256 -178
  128. package/install-to-copilot.ps1 +389 -303
  129. package/package.json +4 -2
  130. package/requirements.txt +9 -9
  131. package/workers/requirements-dynamic.txt +11 -11
  132. package/workers/requirements.txt +8 -8
  133. package/workers/speakeasy_compat.py +175 -175
  134. 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 || './data/database.db');
79
- const policyGuard = new PolicyGuard('./audit.log');
80
- const cacheManager = new CacheManager('./cache', database);
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(semanticNameReviewWorkflowToolDefinition, createSemanticNameReviewWorkflowHandler(workspaceManager, database, cacheManager, server));
123
- server.registerTool(functionExplanationReviewWorkflowToolDefinition, createFunctionExplanationReviewWorkflowHandler(workspaceManager, database, cacheManager, server));
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