Corvus
NUGET · CORVUSRE
Reverse engineering and security analysis of .NET and native binaries: decompile, compare, patch.
Available components
Last scanned (14 hours ago)
Scores higher than 56% of NuGet servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security88
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Build provenance not yet verified. View diagnostics → Unverified
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 0 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 28245 tokens (~170/item across 166 items; 165 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management67
- Stability check failed: the tool surface changed between 2.3.0 and 2.11.0: 4 tool removals, 0 breaking changes, 13 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 167 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Checks we ran (14)
- Malware scan
- Known CVEs
- Dependency health
- Source repository
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (2)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Install scripts in Supply Chain SecurityInstall-script risk not yet assessed.
- Provenance in Provenance & TransparencyBuild provenance not yet verified.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 81% → 100% ▲ functional
- Package version: 2.10.0 → 2.11.0 functional
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 61 to 64.
- 3 Nov 26 +1
- Package version: 2.7.3 → 2.10.0 functional
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 51.
- 29 Oct 26 +1
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 2.7.2 → 2.7.3 functional
- 28 Oct 26 +15
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 2.7.0 → 2.7.2 functional
- Package version: 2.7.0 → 2.7.1 functional
- 27 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Stability: 0.37 → fail ▼ security
- Schema quality: 182 → 163 ▲ functional
- Package version: 2.6.0 → 2.7.0 functional
- 25 Oct 26 0
- Tool safety: pass → unverified ▼ security
- Stability: 0.30 → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Licence: MIT → Apache-2.0 functional
- Package version: 2.5.1 → 2.6.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed nuget/CorvusRE@2.11.0
Provenance Inconclusive
We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.
| Result | Inconclusive |
|---|---|
| Ecosystem | nuget |
| Reason | Package not fetched |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
migrate_native_names Carry names to a new build ~219
Copy names, comments and engine types from the old build to the new one through the function match, as undoable edits. Never replaces the new build's user annotations. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| codeOnly | boolean | – | Match by code, not names. |
| dryRun | boolean | – | true previews; false applies. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| minScore | number | – | Least mapping confidence accepted (0-1). |
| minTier | integer | – | Weakest match tier accepted: 1 (names, identical bytes) to 5 (all). |
| namesOnly | boolean | – | Names only, no comments. |
| newImage | string | yes | New build: image id or path. |
| offset | integer | – | Rows to skip. |
| oldImage | string | yes | Older build (image id or path), static library or object file: its functions name the starts holding their bytes. |
| sources | array | – | Layers to copy (default user). |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| items | array | – | – |
| newImage | string | – | – |
| notes | array | – | – |
| oldImage | string | – | – |
| set | integer | – | – |
| skipped | integer | – | – |
| skippedBy | array | – | – |
No examples provided.
migrate_native_patches Migrate patches to a new build ~192
Carry byte patches from an old build to a new one through the function match. A patch applies only where the mapped address holds its original bytes, else is refused; the same image twice with patchSet replays the set. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| codeOnly | boolean | – | Match by code, not names. |
| dryRun | boolean | – | true previews; false applies. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| newImage | string | yes | New build: image id or path (the second load gets an id like name#2). |
| offset | integer | – | Rows to skip. |
| oldImage | string | yes | Old build: image id or path (its in-memory patches are the source unless patchSet). |
| patchSet | string | – | A JSON patch set (export_native_patches format=json): path or text. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| carried | integer | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| items | array | – | – |
| newImage | string | – | – |
| notes | array | – | – |
| oldImage | string | – | – |
| patches | integer | – | – |
| refused | integer | – | – |
| refusedBy | array | – | – |
| source | string | – | – |
No examples provided.
native_call_tree Native call tree ~198
Callers or callees of a native function across loaded images, thunks and import slots; module!import gives its callers. Callees include GetProcAddress and virtual call targets. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| calls | string | – | Call edges (default all). |
| depth | integer | – | Levels (1-8). |
| direction | string | – | both: depth 1, by call site. |
| engine | string | – | auto (default): IDA or Ghidra if analyzed, else ours. |
| function | string | yes | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| image | string | yes | Image id, name, path. |
| limit | integer | – | Max nodes per page. |
| maxNodes | integer | – | Max nodes in the tree. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| engine | string | – | – |
| engineNote | string | – | – |
| frontier | array | – | – |
| image | string | – | – |
| items | array | – | – |
| partial | string | – | – |
| pendingParents | array | – | – |
| root | string | – | – |
No examples provided.
open_minidump Open a crash dump ~370
Open a Windows minidump, ELF or Mach-O core, or region-set manifest; returns its id. view=summary: OS, process, exception, .NET state; other views page rows. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | – | outputPath: loaded or preferred. |
| compareWith | string | – | view=changes: dump to compare with. |
| dacPath | string | – | DAC file or folder for a build not installed. |
| downloadDac | boolean | – | Fetch a matching DAC (symbol server; refused under CORVUS_OFFLINE=1). |
| group | string | – | view=changes: shape groups rows by module, section, kind and shape; default none. |
| imageDirectories | string | – | Program binary folders (';'-separated), kept for the dump, plus its own. |
| imports | string | – | outputPath: restore or keep. |
| layout | string | – | outputPath: file or mapped. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| modules | string | – | File name, 0x address, all or unlisted; outputPath also code. |
| offset | integer | – | Rows to skip. |
| outputPath | string | – | view=modules: new or empty image folder. |
| path | string | yes | The .dmp path or open dump id. |
| regionFilter | string | – | view=memory: all (default) or unbacked. |
| symbols | string | – | outputPath: none, local or download PDBs. |
| view | string | – | summary, modules, threads, memory, unloaded or changes. |
| yara | string | – | unbacked: YARA rules (text, file, folder, pack:name). |
| Name | Type | Req | Description |
|---|---|---|---|
| counts | object | – | – |
| dumpType | array | – | – |
| exception | object | – | – |
| faultingModule | object | – | – |
| faultingThread | object | – | – |
| fileSize | integer | – | – |
| handleTypes | array | – | – |
| id | string | – | – |
| issues | array | – | – |
| items | array | – | – |
| managed | object | – | – |
| path | string | – | – |
| process | object | – | – |
| system | object | – | – |
| timeUtc | string | – | – |
| view | string | – | – |
No examples provided.
patch_asm Assemble and patch native code ~255
Assemble x86/x64 instructions and write them at a native address in memory. Safety rules and undo as patch_bytes; PE absolute addresses get relocations. Warnings as patch_bytes. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| allowUnsafe | boolean | – | Allow mid-instruction, past-function-end, header or loader-written bytes. |
| assembly | string | yes | Instructions, one per line; labels and db <hex> allowed. |
| dryRun | boolean | – | true previews; false applies. |
| extend | boolean | – | Put code larger than the site in a stub (placement) it jumps to and back. Refused when unsafe. |
| image | string | yes | Image id, name, path. |
| placement | string | – | With extend: auto (default): cave, else section (a new PE section or ELF/Mach-O segment). |
| relocations | string | – | PE relocations: auto (default) keeps valid, clears stale, adds new; neutralize clears all. |
| stubMode | string | – | With extend: replace (default; the displaced instructions), before or after them. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
| items | array | – | – |
| pushedTo | array | – | – |
No examples provided.
patch_bytes Patch native bytes ~337
Replace bytes at a native address in memory as an undoable edit. Unsafe sites need allowUnsafe; encrypted bytes are refused; signatures become invalid. Warnings (writable_executable_section, high_entropy_section, signature_invalidated) name the site and the file. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| allowUnsafe | boolean | – | Allow mid-instruction, past-function-end, header or loader-written bytes. |
| dryRun | boolean | – | true previews; false applies. |
| extend | boolean | – | Put code larger than the site in a stub (placement) it jumps to and back. Refused when unsafe. |
| hex | string | – | Replacement bytes as hex (90 90, 9090 or 0x90,0x90). |
| image | string | yes | Image id, name, path. |
| placement | string | – | With extend: auto (default): cave, else section (a new PE section or ELF/Mach-O segment). |
| relocations | string | – | PE relocations: auto (default) keeps valid, clears stale, adds new; neutralize clears all. |
| stubMode | string | – | With extend: replace (default; the displaced instructions), before or after them. |
| type | string | – | With value: i8-i64, u8-u64, f32, f64 or ptr; be suffix: big-endian. |
| value | string | – | Instead of hex: a number of type (range-checked); ptr: or a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
| items | array | – | – |
| pushedTo | array | – | – |
No examples provided.
patch_method_csharp Replace method body with C# ~113
Replace a method, constructor or accessor body with C# compiled against the assembly; private members are accessible. Errors name your lines. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| code | string | yes | Statements of the new body only. |
| dryRun | boolean | – | true previews the IL to be written; false applies. |
| method | string | yes | Ns.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
No examples provided.
patch_method_il Rewrite method body in IL ~129
Rewrite a method body from IL text, stack-validated: edit the get_il lines and pass them back (syntax: guide edits).
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| dryRun | boolean | – | true previews; false applies. |
| il | string | yes | IL instructions, one per line. |
| method | string | yes | Ns.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token. |
| mode | string | – | replace swaps the body; prepend runs before it and can branch to its IL_xxxx labels. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
No examples provided.
pull_android_file Pull device file ~89
Copy one device file (not a directory) to outputPath with its size and SHA-256; a failed pull leaves nothing. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| outputPath | string | yes | The local file to write. |
| overwrite | boolean | – | Overwrite outputPath. |
| remotePath | string | yes | Path on the device. |
| serial | string | – | Device serial; omit if one device. |
| Name | Type | Req | Description |
|---|---|---|---|
| local | string | – | – |
| remote | string | – | – |
| sha256 | string | – | – |
| size | integer | – | – |
No examples provided.
pull_android_package Pull installed package ~91
Copy every APK of an installed package (base and splits) into a new or empty directory, with sizes and SHA-256. A failed pull leaves no files. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| outputDirectory | string | yes | A new or empty directory to write the APKs to. |
| package | string | yes | Package (com.example.app). |
| serial | string | – | Device serial; omit if one device. |
| Name | Type | Req | Description |
|---|---|---|---|
| aotCode | array | – | – |
| files | array | – | – |
| next | string | – | – |
| package | string | – | – |
| serial | string | – | – |
| summary | object | – | – |
No examples provided.
read_android_log Read device log ~147
Device log (logcat -d), newest lines first, by buffer, process, tag, priority and start time.
| Name | Type | Req | Description |
|---|---|---|---|
| buffer | string | – | Log buffer (default: main, system, crash). |
| limit | integer | – | Most lines. |
| offset | integer | – | Lines to skip from the newest. |
| pid | integer | – | Only this process id. |
| priority | string | – | Lowest priority. |
| serial | string | – | Device serial; omit if one device. |
| since | string | – | Only lines since this time ("01-31 12:00:00.000") or the last N lines. |
| tag | string | – | Only this log tag. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
| serial | string | – | – |
No examples provided.
read_bytes Read native bytes or values ~189
Hex dump of native image bytes at an address as the loader maps them; uninitialized bytes show as ??. type= reads values instead; get_native_type read=true reads structs.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| image | string | yes | Image id, name, path. |
| length | integer | – | Bytes (default 256, max 65536); with type: values (default 1, max 4096). |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Bytes from address (a page's nextOffset). |
| type | string | – | Value type: u8-u64, i8-i64 (be suffix: u32be), f32, f64, ptr, a C name (DWORD), cstr or wstr. |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| code | string | – | – |
| image | string | – | – |
| length | integer | – | – |
| nextAddress | string | – | – |
| nextOffset | integer | – | – |
| offset | integer | – | – |
| totalBytes | integer | – | – |
| totalChars | integer | – | – |
No examples provided.
read_dump_memory Read crash dump memory ~156
Hex dump of a dump's memory at an address, with its module, captured range and protection. Bytes the dump lacks come from the module image (writable data: initial values) unless dumpOnly.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Hex address, module+0x1234 or module name (its base). |
| dump | string | yes | A .dmp path or open_minidump's id. |
| dumpOnly | boolean | – | Only the bytes the dump holds, none from the image. |
| length | integer | – | Bytes to read (up to 65536). |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Byte offset into the read (a page's nextOffset). |
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| code | string | – | – |
| dump | string | – | – |
| length | integer | – | – |
| location | string | – | – |
| nextAddress | string | – | – |
| nextOffset | integer | – | – |
| note | string | – | – |
| offset | integer | – | – |
| protection | string | – | – |
| region | string | – | – |
| requested | integer | – | – |
| source | string | – | – |
| totalChars | integer | – | – |
No examples provided.
read_result Read a kept result ~259
Page, search or save a kept result (r-..., kept 7 days). format=evidence bundles results and their calls into outputPath; format=verify re-runs a bundle or result, or compares it with against.
| Name | Type | Req | Description |
|---|---|---|---|
| against | string | – | format=verify: compare with this, not a re-run: a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...). |
| format | string | – | text; json: the structured record; jsonl: its items, one per line; timesketch: Timesketch events, one per UTC timestamp. |
| id | string | yes | Result id (r-...); evidence: ids or last:N, comma-separated; verify: also a bundle file or entry (file.json#r-...). |
| maxTokens | integer | – | Page size in tokens (default 6000). |
| offset | integer | – | Character offset (nextOffset). |
| outputPath | string | – | Write the whole result to this file; returns path, bytes, SHA-256. |
| overwrite | boolean | – | Overwrite outputPath. |
| query | string | – | Only lines containing this text (/regex/ for a pattern), with offsets. |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | – | – |
| checks | array | – | – |
| code | string | – | – |
| id | string | – | – |
| input | string | – | – |
| matches | array | – | – |
| nextOffset | integer | – | – |
| offset | integer | – | – |
| path | string | – | – |
| sha256 | string | – | – |
| tool | string | – | – |
| totalChars | integer | – | – |
No examples provided.
reanalyze_native Re-run native auto-analysis ~216
Start IDA or Ghidra auto-analysis over an image or range in the background and save; completes a cut-short analysis. analyzers=true lists the options. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| analyzers | boolean | – | List analyzer options instead of running. |
| engine | string | – | Default auto. |
| filter | string | – | With analyzers: name filter. |
| from | string | – | Range start (default: whole image). |
| image | string | yes | Image id, name, path. |
| limit | integer | – | With analyzers: max rows. |
| offset | integer | – | With analyzers: rows to skip. |
| options | array | – | name=value per analyzer option for this run (AF_FLIRT=false). |
| preset | string | – | full (Ghidra defaults) or a preset in analysis-presets.json. |
| timeoutSeconds | integer | – | Budget in seconds; omit to run until done or stalled. Other engine calls conflict until done. |
| to | string | – | Range end (exclusive). |
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | – |
| image | string | – | – |
| items | array | – | – |
| options | array | – | – |
| scope | string | – | – |
No examples provided.
record_note Record a note ~169
Record a finding, question, hypothesis or todo on a native address, .NET member, file or dump. Notes persist per user and follow the binary by SHA-256 or MVID.
| Name | Type | Req | Description |
|---|---|---|---|
| anchor | string | – | <image>@<address>, <assembly>:<symbol or token>, image or assembly id, dump:<id or path>, or empty (session-wide). |
| evidence | array | – | At most 10: {result: r-... or last:N, expect: supports|refutes}, {tool, args} of a call made here, or {text}. |
| kind | string | – | Default finding. |
| status | string | – | Default open. |
| tags | array | – | At most 10. |
| text | string | yes | At most 4,000 characters. |
| Name | Type | Req | Description |
|---|---|---|---|
| anchor | object | – | – |
| author | string | – | – |
| created | string | – | – |
| evidence | array | – | – |
| id | string | – | – |
| kind | string | – | – |
| origin | string | – | – |
| revision | integer | – | – |
| status | string | – | – |
| tags | array | – | – |
| text | string | – | – |
| updated | string | – | – |
No examples provided.
reload_assembly Reload assembly ~44
Re-read an assembly from disk (after an update or an overwriting save), discarding unsaved edits.
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | yes | Assembly id, name, path. |
| Name | Type | Req | Description |
|---|---|---|---|
| discardedEdits | integer | – | – |
| entries | array | – | – |
| ids | array | – | – |
| skipped | integer | – | – |
No examples provided.
rename_namespace Rename namespace ~99
Move every type of a namespace (optionally its sub-namespaces) to a new namespace, in memory.
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | yes | Assembly id, name, path. |
| dryRun | boolean | – | true previews; false applies. |
| includeSubNamespaces | boolean | – | Also rewrite the namespaces under oldNamespace. |
| newNamespace | string | yes | New namespace. |
| oldNamespace | string | yes | Existing namespace ("" for the global one). |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
No examples provided.
rename_native Name a native address ~220
Name a native address for every native tool and the engines; kept per file and undoable. Letters, digits, _ $ @, up to 255 chars; empty clears. items: many in one push. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| allowDuplicate | boolean | – | Allow a name already used at another address. |
| dryRun | boolean | – | true previews; false applies. |
| engine | string | – | Engine to push to now (default: the one with this image open, else next use). |
| image | string | yes | Image id, name, path. |
| items | string | – | Lines address = name, or JSON [{address, name}]. |
| name | string | – | New name; empty clears the name here. |
| showDecompile | string | – | after: pseudocode after the edit; diff: its unified diff. |
| stopOnError | boolean | – | Stop at the first failing item. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
| items | array | – | – |
| pushedTo | array | – | – |
No examples provided.
rename_symbol Rename symbol ~120
Rename a type, method, field, property (and accessors) or event in memory; other assemblies keep the old name.
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| dryRun | boolean | – | true previews; false applies. |
| kind | string | – | Only resolve symbols of this kind. |
| newName | string | yes | New name (a type: simple name without namespace). |
| symbol | string | yes | Ns.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
No examples provided.
resolve_address Resolve native address ~117
What a native address is: RVA, VA, file offset, section, nearest symbol, source line; with the code index, its function, instruction or data item, references. Reads PDB, DWARF, AOT metadata where present. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| addresses | array | – | Instead of address: up to 100. |
| image | string | yes | Image id, name, path. |
| Name | Type | Req | Description |
|---|---|---|---|
| access | string | – | – |
| boundTo | string | – | – |
| comment | string | – | – |
| containingInstruction | string | – | – |
| dataItem | string | – | – |
| export | string | – | – |
| failed | integer | – | – |
| fileOffset | string | – | – |
| function | string | – | – |
| image | string | – | – |
| import | string | – | – |
| inlined | array | – | – |
| name | string | – | – |
| nameSource | string | – | – |
| referencesTo | object | – | – |
| results | array | – | – |
| rva | string | – | – |
| section | string | – | – |
| source | string | – | – |
| status | string | – | – |
| va | string | – | – |
No examples provided.
resolve_call_targets Native call targets ~245
Resolve targets of call and tail-jump sites, indirect ones too, with basis and confidence. An unresolved site names its reason and the trace_native_values call to follow. engine= merges that engine's targets. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | A call, or an address in a function (its sites): Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| deep | boolean | – | Trace pointer parameters back into the callers (slower). |
| engine | string | – | auto (default): IDA or Ghidra if analyzed, else ours. |
| image | string | yes | Image id, name, path. |
| limit | integer | – | Max sites (max 1000). |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| scope | string | – | image: all indirect sites. Default: site at a call, else function. |
| status | string | – | Default all; indirect: all but direct branches. |
| timeoutSeconds | integer | – | Seconds per engine request (default CORVUS_ENGINE_REQUEST_TIMEOUT); scans answer partial. |
| Name | Type | Req | Description |
|---|---|---|---|
| byMechanism | object | – | – |
| byStatus | object | – | – |
| engine | string | – | – |
| engineNote | string | – | – |
| image | string | – | – |
| items | array | – | – |
| notes | array | – | – |
| scope | string | – | – |
| topUnresolved | array | – | – |
No examples provided.
resolve_symbol Resolve symbol ~118
Every match of a symbol string or token, with kind, assembly, token and signature; disambiguates before other calls.
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| kind | string | – | Restrict to this kind. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| symbol | string | yes | Ns.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
| notEvaluated | integer | – | – |
No examples provided.
revert_edits Discard all edits ~51
Discard every unsaved edit of an assembly; resultId keeps them as a script (read_result outputPath=, then apply_edits).
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | yes | Assembly id, name, path. |
| Name | Type | Req | Description |
|---|---|---|---|
| applied | boolean | – | – |
| changes | array | – | – |
| digest | string | – | – |
| dryRun | boolean | – | – |
| editIds | array | – | – |
| failed | integer | – | – |
No examples provided.
save_assembly Save patched assembly ~163
Write an assembly and its edits to a new file, atomically; a file changed since load is refused. Members the writer changed are listed with reason codes (docs/saving.md).
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | yes | Assembly id, name, path. |
| outputPath | string | – | Output path (.wasm writes Webcil for Blazor); default ORIGINAL.patched.dll. |
| overwrite | boolean | – | Replace an existing file, not the original. |
| replaceOriginal | boolean | – | Replace the loaded file, keeping a .bak (needs --allow-replace-original). |
| strict | boolean | – | Write nothing if the writer would change a member (default: save, list them). |
| versioned | boolean | – | Write NAME.N.dll, the first free N. |
| Name | Type | Req | Description |
|---|---|---|---|
| backup | string | – | – |
| bytes | integer | – | – |
| editList | array | – | – |
| edits | integer | – | – |
| outputPath | string | – | – |
| sha256 | string | – | – |
No examples provided.
save_native Save patched native image ~156
Write the patched native image to a new file; the PE checksum is recomputed and a signature becomes invalid. replaceOriginal=true keeps a .bak and refuses a file changed on disk. Warnings as patch_bytes; stripSignature=true drops signature_invalidated. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| image | string | yes | Image id, name, path. |
| outputPath | string | yes | Output file path. |
| overwrite | boolean | – | Replace an existing file, not the original. |
| replaceOriginal | boolean | – | Replace the loaded file (needs --allow-replace-original). |
| stripSignature | boolean | – | Remove the Authenticode certificate table from the output. |
| versioned | boolean | – | Write NAME.N.dll, the first free N. |
| Name | Type | Req | Description |
|---|---|---|---|
| backup | string | – | – |
| bytes | integer | – | – |
| checksum | string | – | – |
| editList | array | – | – |
| notes | array | – | – |
| outputPath | string | – | – |
| patches | integer | – | – |
| sha256 | string | – | – |
| verified | boolean | – | – |
No examples provided.
save_session Save the session ~85
Save loaded files, .NET edits, native patches, names, comments, notes and open dumps to one JSON file; load_session restores it.
| Name | Type | Req | Description |
|---|---|---|---|
| include | string | – | Comma list: edits, patches, annotations, notes, all (default). |
| outputPath | string | yes | Output file path (.json). |
| overwrite | boolean | – | Replace the file if it exists. |
| Name | Type | Req | Description |
|---|---|---|---|
| actionNotes | array | – | – |
| comments | integer | – | – |
| editedAssemblies | integer | – | – |
| edits | integer | – | – |
| files | integer | – | – |
| names | integer | – | – |
| notes | integer | – | – |
| outputPath | string | – | – |
| patchedImages | integer | – | – |
| patches | integer | – | – |
No examples provided.
search_bytes Search native bytes ~210
Find a hex or text pattern in the mapped sections of a native image: VA, section and file offset per hit. memory=engine searches the engine's loaded bytes.
| Name | Type | Req | Description |
|---|---|---|---|
| image | string | yes | Image id, name, path. |
| limit | integer | – | Max hits. |
| mask | string | – | Bit mask per pattern byte (FF F0 FF). |
| maxTokens | integer | – | Page size in tokens. |
| memory | string | – | file, or engine / ida / ghidra: its loaded bytes. |
| offset | integer | – | Rows to skip. |
| pattern | string | – | Hex (48 8B 05 ?? ?? ?? ??): ?? any byte, 4? a nibble, 40&F8 masked bits. |
| patterns | array | – | Instead of pattern: up to 50. |
| section | string | – | Only this section, e.g. .text. |
| text | boolean | – | pattern is text (ASCII and UTF-16LE). |
| Name | Type | Req | Description |
|---|---|---|---|
| failed | integer | – | – |
| image | string | – | – |
| items | array | – | – |
| memory | string | – | – |
| patterns | array | – | – |
No examples provided.
search_code_pattern Search a code pattern ~125
Find a byte pattern with ?? wildcards (make_code_pattern's format except yara) in the executable sections of loaded native images, with each hit's function and offset. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| allSections | boolean | – | Search every section, not only executable ones. |
| images | array | – | Image ids or paths; omit for every loaded native image. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| pattern | string | yes | Hex bytes with ?? wildcards. |
| Name | Type | Req | Description |
|---|---|---|---|
| failed | array | – | – |
| items | array | – | – |
| notes | array | – | – |
| pattern | string | – | – |
No examples provided.
search_constants Search numeric constants ~103
Find a number (magic, opcode id, flag, crypto constant) in IL literals, const and enum values, attribute arguments and static arrays.
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| value | string | yes | Decimal, 0x hex, negative or floating-point. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
| value | string | – | – |
No examples provided.
search_container Search inside a container ~196
Find managed types and members by name in a container or assembly, without extracting. Other kinds: paths, pcap packets, endpoints, capture requests, JS features, YARA rules, locked packages, incident lists.
| Name | Type | Req | Description |
|---|---|---|---|
| capture | string | – | kind=endpoint: a HAR, mitmproxy, .saz or pcap capture to join, or compare if path is one. |
| kind | string | – | Kind to restrict to; omit: all members. |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| path | string | yes | Container or assembly file (absolute). |
| query | string | yes | Name, substring or * ? wildcards; packet: display filter; feature: JS text; yara: rule file, folder or text. |
| values | boolean | – | kind=request: show header, cookie and query values. |
| Name | Type | Req | Description |
|---|---|---|---|
| container | string | – | – |
| items | array | – | – |
| notes | array | – | – |
| searched | integer | – | – |
| source | string | – | – |
No examples provided.
search_decompiled Search native pseudocode ~182
Search the IDA or Ghidra pseudocode of every function, line by line, in address order. Stops at maxFunctions, timeoutSeconds or limit hits; continue with nextOffset. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | Default auto. |
| filter | string | – | substring (case-insensitive), * ? glob, or /regex/ (flags i, m, s). |
| image | string | yes | Image id, name, path. |
| limit | integer | – | Max hits (max 2000). |
| maxFunctions | integer | – | Max 20000. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | First function (nextOffset). |
| pattern | string | yes | Regex, case-insensitive; (?-i) for exact case. |
| timeoutSeconds | integer | – | Max 600. |
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | – |
| engineNote | string | – | – |
| failed | integer | – | – |
| functionsSearched | integer | – | – |
| functionsTotal | integer | – | – |
| image | string | – | – |
| items | array | – | – |
| pattern | string | – | – |
| stoppedBy | string | – | – |
No examples provided.
search_dex Search DEX code ~150
Search DEX code for strings (literals and decoder results), types, methods, fields, numeric constants or opcodes, with method and offset per use. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | What to search. |
| limit | integer | – | Most hits. |
| mapping | string | – | R8/ProGuard mapping.txt: shows and accepts original names; kept per package. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| path | string | yes | An Android package, .dex or jar with classes*.dex. |
| query | string | yes | Case-insensitive substring or * / ? pattern; for const a number. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
| notes | array | – | – |
No examples provided.
search_il Search IL instruction patterns ~138
Find methods with an IL instruction sequence: ;-separated opcode [operand] elements with * and ? wildcards (operands match names, strings, numbers); ... skips up to 16 instructions, e.g. "ldstr *password*; ...; call *::Hash*".
| Name | Type | Req | Description |
|---|---|---|---|
| assembly | string | – | Assembly id, name, path; omit: all. |
| context | integer | – | Instructions shown per match (1-24). |
| limit | integer | – | Max rows. |
| maxTokens | integer | – | Page size in tokens. |
| offset | integer | – | Rows to skip. |
| pattern | string | yes | Instruction pattern. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
No examples provided.
search_instructions Search native instructions ~292
Find instructions by mnemonic, operand or line regex (case-insensitive), or by operand value, in all functions, one function or an address range. A page the scan budget stopped continues at nextOffset. [Long-running.]
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | auto (default): IDA or Ghidra if analyzed, else ours. |
| from | string | – | Range start (with to, or alone: to the end of its section). |
| function | string | – | Only this function: Hex VA/RVA (rva:/va:/off:), export, module!import, function. |
| image | string | yes | Image id, name, path. |
| limit | integer | – | Max matches (max 2000). |
| maxInstructions | integer | – | Instructions scanned per page (max 5000000). |
| maxTokens | integer | – | Page size in tokens. |
| mnemonic | string | – | Mnemonic regex, e.g. ^(call|jmp)$ |
| offset | integer | – | Rows to skip. |
| operands | string | – | Operand text regex, e.g. rsp\+|fs: |
| text | string | – | Regex over the whole instruction text. |
| to | string | – | Range end (exclusive). |
| value | string | – | Operand value: 0x10B, 267, an address, or range 0x100..0x1FF. |
| Name | Type | Req | Description |
|---|---|---|---|
| engine | string | – | – |
| engineNote | string | – | – |
| image | string | – | – |
| items | array | – | – |
| scanned | integer | – | – |
No examples provided.
How do I install the Corvus MCP server?
Corvus runs locally as a NuGet package, launched with dnx CorvusRE@2.11.0 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · CorvusRE
claude mcp add albasha0x0-corvus -- dnx CorvusRE@2.11.0 --yes
What is the Corvus MCP server?
Corvus is an MCP server listed in the public MCP registry as io.github.Albasha0x0/corvus. Reverse engineering and security analysis of .NET and native binaries: decompile, compare, patch. This page covers its NuGet package (CorvusRE).
Is the Corvus MCP server safe to use?
Corvus scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Corvus MCP server expose?
Corvus exposes 165 tools: get_engine_status, export_edits, list_types, resolve_call_targets, search_constants, and 160 more. Their descriptions and schemas cost roughly 27,723 tokens of context every time the server is loaded.
Is the Corvus MCP server still maintained?
Corvus is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Corvus MCP server under?
Corvus declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the Corvus MCP server?
VerifyMCP ran 14 checks on Corvus, covering Malware scan, Known CVEs, Dependency health, Source repository and 10 more. 2 items could not be completed, a gap on our side rather than a finding about Corvus: Install scripts and Provenance. Endpoint Security and Transport & Reachability do not apply to a NuGet package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.