Analyzes PE files for malware development indicators, suspicious APIs, entropy, section anomalies, and C2 framework artifacts.
MalDev Analyzer MCP exposes a single tool 'analyze_exports_table' with serious definition and security deficiencies. The tool has a truncated source file (ends mid-function at 'hits'), making full assessment of implementation impossible. The input schema is present but minimal. The description is vague and does not explain use cases or output format. There is no documented output schema. The tool accepts a file path parameter without validation guidance, creating path-traversal and injection risks. The server is STDIO-only, which caps protocol readiness at 50 regardless of other factors. Overall, this is a non-production-ready implementation.
Check any suspicous section names in the Export table.
Tool description is vague and under 20 characters minimum guidance. 'Check any suspicous section names in the Export table.' lacks context: What is 'suspicious'? What export table? What does the tool return? When should it be called?
No output schema documented. LLMs cannot predict what fields the tool returns, making it impossible to plan follow-up operations or extract relevant data.
Input parameter 'file' lacks validation constraints. Description states '(i.e., local / absolute path)' but does not specify: accepted formats, length limits, path traversal protections, or what happens if the file is not a PE binary.
Source code is incomplete/truncated. The file ends mid-function definition ('found = set()\n\n for s in strings:\n for api in suspicious:\n if api.lower() in s.lower():\n found.add(api)\n\n return list(found)' followed by unfinished tool definition). Full implementation cannot be verified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | 2026-07-28+ | v2 |
No error handling guidance. The tool will fail ungracefully if the file does not exist, is not readable, or is not a valid PE binary. LLM receives no guidance on recovery (e.g., 'File not found. Provide a valid PE binary path').
Security risk: file parameter is user-supplied and passed directly to pefile.PE(). No path validation, no sandboxing, no rate limiting. An agent could be tricked into reading or processing arbitrary files via path traversal.
Tool name 'analyze_exports_table' is passive/vague. Does it return a pass/fail? A list of suspicious exports? A risk score? Reframe as 'check_pe_exports' or 'detect_suspicious_exports' to clarify intent.
No indication of whether the tool modifies the file or is read-only (risk is declared READ_ONLY but not confirmed in description or error messages).