Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Corvus

NUGET · CORVUSRE

Reverse engineering and security analysis of .NET and native binaries: decompile, compare, patch.

Available components

+4 this week 77 Trust /100

Last scanned (14 hours ago)

Scores higher than 56% of NuGet servers

Category Developer Tools

Trust breakdown (7 categories)

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
What we tested

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 →

Changelog

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
Diagnostics

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 →

MCP tools · 165 exposed · ~27,723 tokens

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 →

Tool Tokens
migrate_native_names ~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.]

NameTypeReqDescription
codeOnlyboolean–Match by code, not names.
dryRunboolean–true previews; false applies.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
minScorenumber–Least mapping confidence accepted (0-1).
minTierinteger–Weakest match tier accepted: 1 (names, identical bytes) to 5 (all).
namesOnlyboolean–Names only, no comments.
newImagestringyesNew build: image id or path.
offsetinteger–Rows to skip.
oldImagestringyesOlder build (image id or path), static library or object file: its functions name the starts holding their bytes.
sourcesarray–Layers to copy (default user).
NameTypeReqDescription
appliedboolean––
dryRunboolean––
editIdsarray––
itemsarray––
newImagestring––
notesarray––
oldImagestring––
setinteger––
skippedinteger––
skippedByarray––

No examples provided.

migrate_native_patches ~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.]

NameTypeReqDescription
codeOnlyboolean–Match by code, not names.
dryRunboolean–true previews; false applies.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
newImagestringyesNew build: image id or path (the second load gets an id like name#2).
offsetinteger–Rows to skip.
oldImagestringyesOld build: image id or path (its in-memory patches are the source unless patchSet).
patchSetstring–A JSON patch set (export_native_patches format=json): path or text.
NameTypeReqDescription
appliedboolean––
carriedinteger––
dryRunboolean––
editIdsarray––
itemsarray––
newImagestring––
notesarray––
oldImagestring––
patchesinteger––
refusedinteger––
refusedByarray––
sourcestring––

No examples provided.

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.]

NameTypeReqDescription
callsstring–Call edges (default all).
depthinteger–Levels (1-8).
directionstring–both: depth 1, by call site.
enginestring–auto (default): IDA or Ghidra if analyzed, else ours.
functionstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
imagestringyesImage id, name, path.
limitinteger–Max nodes per page.
maxNodesinteger–Max nodes in the tree.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
NameTypeReqDescription
directionstring––
enginestring––
engineNotestring––
frontierarray––
imagestring––
itemsarray––
partialstring––
pendingParentsarray––
rootstring––

No examples provided.

open_minidump ~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.]

NameTypeReqDescription
basestring–outputPath: loaded or preferred.
compareWithstring–view=changes: dump to compare with.
dacPathstring–DAC file or folder for a build not installed.
downloadDacboolean–Fetch a matching DAC (symbol server; refused under CORVUS_OFFLINE=1).
groupstring–view=changes: shape groups rows by module, section, kind and shape; default none.
imageDirectoriesstring–Program binary folders (';'-separated), kept for the dump, plus its own.
importsstring–outputPath: restore or keep.
layoutstring–outputPath: file or mapped.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
modulesstring–File name, 0x address, all or unlisted; outputPath also code.
offsetinteger–Rows to skip.
outputPathstring–view=modules: new or empty image folder.
pathstringyesThe .dmp path or open dump id.
regionFilterstring–view=memory: all (default) or unbacked.
symbolsstring–outputPath: none, local or download PDBs.
viewstring–summary, modules, threads, memory, unloaded or changes.
yarastring–unbacked: YARA rules (text, file, folder, pack:name).
NameTypeReqDescription
countsobject––
dumpTypearray––
exceptionobject––
faultingModuleobject––
faultingThreadobject––
fileSizeinteger––
handleTypesarray––
idstring––
issuesarray––
itemsarray––
managedobject––
pathstring––
processobject––
systemobject––
timeUtcstring––
viewstring––

No examples provided.

patch_asm ~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.]

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
allowUnsafeboolean–Allow mid-instruction, past-function-end, header or loader-written bytes.
assemblystringyesInstructions, one per line; labels and db <hex> allowed.
dryRunboolean–true previews; false applies.
extendboolean–Put code larger than the site in a stub (placement) it jumps to and back. Refused when unsafe.
imagestringyesImage id, name, path.
placementstring–With extend: auto (default): cave, else section (a new PE section or ELF/Mach-O segment).
relocationsstring–PE relocations: auto (default) keeps valid, clears stale, adds new; neutralize clears all.
stubModestring–With extend: replace (default; the displaced instructions), before or after them.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––
itemsarray––
pushedToarray––

No examples provided.

patch_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.]

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
allowUnsafeboolean–Allow mid-instruction, past-function-end, header or loader-written bytes.
dryRunboolean–true previews; false applies.
extendboolean–Put code larger than the site in a stub (placement) it jumps to and back. Refused when unsafe.
hexstring–Replacement bytes as hex (90 90, 9090 or 0x90,0x90).
imagestringyesImage id, name, path.
placementstring–With extend: auto (default): cave, else section (a new PE section or ELF/Mach-O segment).
relocationsstring–PE relocations: auto (default) keeps valid, clears stale, adds new; neutralize clears all.
stubModestring–With extend: replace (default; the displaced instructions), before or after them.
typestring–With value: i8-i64, u8-u64, f32, f64 or ptr; be suffix: big-endian.
valuestring–Instead of hex: a number of type (range-checked); ptr: or a name.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––
itemsarray––
pushedToarray––

No examples provided.

patch_method_csharp ~113

Replace a method, constructor or accessor body with C# compiled against the assembly; private members are accessible. Errors name your lines. [Long-running.]

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
codestringyesStatements of the new body only.
dryRunboolean–true previews the IL to be written; false applies.
methodstringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

patch_method_il ~129

Rewrite a method body from IL text, stack-validated: edit the get_il lines and pass them back (syntax: guide edits).

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
dryRunboolean–true previews; false applies.
ilstringyesIL instructions, one per line.
methodstringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
modestring–replace swaps the body; prepend runs before it and can branch to its IL_xxxx labels.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

pull_android_file ~89

Copy one device file (not a directory) to outputPath with its size and SHA-256; a failed pull leaves nothing. [Long-running.]

NameTypeReqDescription
outputPathstringyesThe local file to write.
overwriteboolean–Overwrite outputPath.
remotePathstringyesPath on the device.
serialstring–Device serial; omit if one device.
NameTypeReqDescription
localstring––
remotestring––
sha256string––
sizeinteger––

No examples provided.

pull_android_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.]

NameTypeReqDescription
outputDirectorystringyesA new or empty directory to write the APKs to.
packagestringyesPackage (com.example.app).
serialstring–Device serial; omit if one device.
NameTypeReqDescription
aotCodearray––
filesarray––
nextstring––
packagestring––
serialstring––
summaryobject––

No examples provided.

read_android_log ~147

Device log (logcat -d), newest lines first, by buffer, process, tag, priority and start time.

NameTypeReqDescription
bufferstring–Log buffer (default: main, system, crash).
limitinteger–Most lines.
offsetinteger–Lines to skip from the newest.
pidinteger–Only this process id.
prioritystring–Lowest priority.
serialstring–Device serial; omit if one device.
sincestring–Only lines since this time ("01-31 12:00:00.000") or the last N lines.
tagstring–Only this log tag.
NameTypeReqDescription
itemsarray––
serialstring––

No examples provided.

read_bytes ~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.

NameTypeReqDescription
addressstringyesHex VA/RVA (rva:/va:/off:), export, module!import, function.
imagestringyesImage id, name, path.
lengthinteger–Bytes (default 256, max 65536); with type: values (default 1, max 4096).
maxTokensinteger–Page size in tokens.
offsetinteger–Bytes from address (a page's nextOffset).
typestring–Value type: u8-u64, i8-i64 (be suffix: u32be), f32, f64, ptr, a C name (DWORD), cstr or wstr.
NameTypeReqDescription
addressstring––
codestring––
imagestring––
lengthinteger––
nextAddressstring––
nextOffsetinteger––
offsetinteger––
totalBytesinteger––
totalCharsinteger––

No examples provided.

read_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.

NameTypeReqDescription
addressstringyesHex address, module+0x1234 or module name (its base).
dumpstringyesA .dmp path or open_minidump's id.
dumpOnlyboolean–Only the bytes the dump holds, none from the image.
lengthinteger–Bytes to read (up to 65536).
maxTokensinteger–Page size in tokens.
offsetinteger–Byte offset into the read (a page's nextOffset).
NameTypeReqDescription
addressstring––
codestring––
dumpstring––
lengthinteger––
locationstring––
nextAddressstring––
nextOffsetinteger––
notestring––
offsetinteger––
protectionstring––
regionstring––
requestedinteger––
sourcestring––
totalCharsinteger––

No examples provided.

read_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.

NameTypeReqDescription
againststring–format=verify: compare with this, not a re-run: a kept result (r-...), last:N (recent call) or bundle entry (file.json#r-...).
formatstring–text; json: the structured record; jsonl: its items, one per line; timesketch: Timesketch events, one per UTC timestamp.
idstringyesResult id (r-...); evidence: ids or last:N, comma-separated; verify: also a bundle file or entry (file.json#r-...).
maxTokensinteger–Page size in tokens (default 6000).
offsetinteger–Character offset (nextOffset).
outputPathstring–Write the whole result to this file; returns path, bytes, SHA-256.
overwriteboolean–Overwrite outputPath.
querystring–Only lines containing this text (/regex/ for a pattern), with offsets.
NameTypeReqDescription
bytesinteger––
checksarray––
codestring––
idstring––
inputstring––
matchesarray––
nextOffsetinteger––
offsetinteger––
pathstring––
sha256string––
toolstring––
totalCharsinteger––

No examples provided.

reanalyze_native ~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.]

NameTypeReqDescription
analyzersboolean–List analyzer options instead of running.
enginestring–Default auto.
filterstring–With analyzers: name filter.
fromstring–Range start (default: whole image).
imagestringyesImage id, name, path.
limitinteger–With analyzers: max rows.
offsetinteger–With analyzers: rows to skip.
optionsarray–name=value per analyzer option for this run (AF_FLIRT=false).
presetstring–full (Ghidra defaults) or a preset in analysis-presets.json.
timeoutSecondsinteger–Budget in seconds; omit to run until done or stalled. Other engine calls conflict until done.
tostring–Range end (exclusive).
NameTypeReqDescription
enginestring––
imagestring––
itemsarray––
optionsarray––
scopestring––

No examples provided.

record_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.

NameTypeReqDescription
anchorstring–<image>@<address>, <assembly>:<symbol or token>, image or assembly id, dump:<id or path>, or empty (session-wide).
evidencearray–At most 10: {result: r-... or last:N, expect: supports|refutes}, {tool, args} of a call made here, or {text}.
kindstring–Default finding.
statusstring–Default open.
tagsarray–At most 10.
textstringyesAt most 4,000 characters.
NameTypeReqDescription
anchorobject––
authorstring––
createdstring––
evidencearray––
idstring––
kindstring––
originstring––
revisioninteger––
statusstring––
tagsarray––
textstring––
updatedstring––

No examples provided.

reload_assembly ~44

Re-read an assembly from disk (after an update or an overwriting save), discarding unsaved edits.

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
NameTypeReqDescription
discardedEditsinteger––
entriesarray––
idsarray––
skippedinteger––

No examples provided.

rename_namespace ~99

Move every type of a namespace (optionally its sub-namespaces) to a new namespace, in memory.

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
dryRunboolean–true previews; false applies.
includeSubNamespacesboolean–Also rewrite the namespaces under oldNamespace.
newNamespacestringyesNew namespace.
oldNamespacestringyesExisting namespace ("" for the global one).
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

rename_native ~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.]

NameTypeReqDescription
addressstring–Hex VA/RVA (rva:/va:/off:), export, module!import, function.
allowDuplicateboolean–Allow a name already used at another address.
dryRunboolean–true previews; false applies.
enginestring–Engine to push to now (default: the one with this image open, else next use).
imagestringyesImage id, name, path.
itemsstring–Lines address = name, or JSON [{address, name}].
namestring–New name; empty clears the name here.
showDecompilestring–after: pseudocode after the edit; diff: its unified diff.
stopOnErrorboolean–Stop at the first failing item.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––
itemsarray––
pushedToarray––

No examples provided.

rename_symbol ~120

Rename a type, method, field, property (and accessors) or event in memory; other assemblies keep the old name.

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
dryRunboolean–true previews; false applies.
kindstring–Only resolve symbols of this kind.
newNamestringyesNew name (a type: simple name without namespace).
symbolstringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

resolve_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.]

NameTypeReqDescription
addressstring–Hex VA/RVA (rva:/va:/off:), export, module!import, function.
addressesarray–Instead of address: up to 100.
imagestringyesImage id, name, path.
NameTypeReqDescription
accessstring––
boundTostring––
commentstring––
containingInstructionstring––
dataItemstring––
exportstring––
failedinteger––
fileOffsetstring––
functionstring––
imagestring––
importstring––
inlinedarray––
namestring––
nameSourcestring––
referencesToobject––
resultsarray––
rvastring––
sectionstring––
sourcestring––
statusstring––
vastring––

No examples provided.

resolve_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.]

NameTypeReqDescription
addressstring–A call, or an address in a function (its sites): Hex VA/RVA (rva:/va:/off:), export, module!import, function.
deepboolean–Trace pointer parameters back into the callers (slower).
enginestring–auto (default): IDA or Ghidra if analyzed, else ours.
imagestringyesImage id, name, path.
limitinteger–Max sites (max 1000).
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
scopestring–image: all indirect sites. Default: site at a call, else function.
statusstring–Default all; indirect: all but direct branches.
timeoutSecondsinteger–Seconds per engine request (default CORVUS_ENGINE_REQUEST_TIMEOUT); scans answer partial.
NameTypeReqDescription
byMechanismobject––
byStatusobject––
enginestring––
engineNotestring––
imagestring––
itemsarray––
notesarray––
scopestring––
topUnresolvedarray––

No examples provided.

resolve_symbol ~118

Every match of a symbol string or token, with kind, assembly, token and signature; disambiguates before other calls.

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
kindstring–Restrict to this kind.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
symbolstringyesNs.Type, Ns.Outer+Inner, Ns.Type::Method(int), name or token.
NameTypeReqDescription
itemsarray––
notEvaluatedinteger––

No examples provided.

revert_edits ~51

Discard every unsaved edit of an assembly; resultId keeps them as a script (read_result outputPath=, then apply_edits).

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
NameTypeReqDescription
appliedboolean––
changesarray––
digeststring––
dryRunboolean––
editIdsarray––
failedinteger––

No examples provided.

save_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).

NameTypeReqDescription
assemblystringyesAssembly id, name, path.
outputPathstring–Output path (.wasm writes Webcil for Blazor); default ORIGINAL.patched.dll.
overwriteboolean–Replace an existing file, not the original.
replaceOriginalboolean–Replace the loaded file, keeping a .bak (needs --allow-replace-original).
strictboolean–Write nothing if the writer would change a member (default: save, list them).
versionedboolean–Write NAME.N.dll, the first free N.
NameTypeReqDescription
backupstring––
bytesinteger––
editListarray––
editsinteger––
outputPathstring––
sha256string––

No examples provided.

save_native ~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.]

NameTypeReqDescription
imagestringyesImage id, name, path.
outputPathstringyesOutput file path.
overwriteboolean–Replace an existing file, not the original.
replaceOriginalboolean–Replace the loaded file (needs --allow-replace-original).
stripSignatureboolean–Remove the Authenticode certificate table from the output.
versionedboolean–Write NAME.N.dll, the first free N.
NameTypeReqDescription
backupstring––
bytesinteger––
checksumstring––
editListarray––
notesarray––
outputPathstring––
patchesinteger––
sha256string––
verifiedboolean––

No examples provided.

save_session ~85

Save loaded files, .NET edits, native patches, names, comments, notes and open dumps to one JSON file; load_session restores it.

NameTypeReqDescription
includestring–Comma list: edits, patches, annotations, notes, all (default).
outputPathstringyesOutput file path (.json).
overwriteboolean–Replace the file if it exists.
NameTypeReqDescription
actionNotesarray––
commentsinteger––
editedAssembliesinteger––
editsinteger––
filesinteger––
namesinteger––
notesinteger––
outputPathstring––
patchedImagesinteger––
patchesinteger––

No examples provided.

search_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.

NameTypeReqDescription
imagestringyesImage id, name, path.
limitinteger–Max hits.
maskstring–Bit mask per pattern byte (FF F0 FF).
maxTokensinteger–Page size in tokens.
memorystring–file, or engine / ida / ghidra: its loaded bytes.
offsetinteger–Rows to skip.
patternstring–Hex (48 8B 05 ?? ?? ?? ??): ?? any byte, 4? a nibble, 40&F8 masked bits.
patternsarray–Instead of pattern: up to 50.
sectionstring–Only this section, e.g. .text.
textboolean–pattern is text (ASCII and UTF-16LE).
NameTypeReqDescription
failedinteger––
imagestring––
itemsarray––
memorystring––
patternsarray––

No examples provided.

search_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.]

NameTypeReqDescription
allSectionsboolean–Search every section, not only executable ones.
imagesarray–Image ids or paths; omit for every loaded native image.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
patternstringyesHex bytes with ?? wildcards.
NameTypeReqDescription
failedarray––
itemsarray––
notesarray––
patternstring––

No examples provided.

search_constants ~103

Find a number (magic, opcode id, flag, crypto constant) in IL literals, const and enum values, attribute arguments and static arrays.

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
valuestringyesDecimal, 0x hex, negative or floating-point.
NameTypeReqDescription
itemsarray––
valuestring––

No examples provided.

search_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.

NameTypeReqDescription
capturestring–kind=endpoint: a HAR, mitmproxy, .saz or pcap capture to join, or compare if path is one.
kindstring–Kind to restrict to; omit: all members.
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
pathstringyesContainer or assembly file (absolute).
querystringyesName, substring or * ? wildcards; packet: display filter; feature: JS text; yara: rule file, folder or text.
valuesboolean–kind=request: show header, cookie and query values.
NameTypeReqDescription
containerstring––
itemsarray––
notesarray––
searchedinteger––
sourcestring––

No examples provided.

search_decompiled ~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.]

NameTypeReqDescription
enginestring–Default auto.
filterstring–substring (case-insensitive), * ? glob, or /regex/ (flags i, m, s).
imagestringyesImage id, name, path.
limitinteger–Max hits (max 2000).
maxFunctionsinteger–Max 20000.
maxTokensinteger–Page size in tokens.
offsetinteger–First function (nextOffset).
patternstringyesRegex, case-insensitive; (?-i) for exact case.
timeoutSecondsinteger–Max 600.
NameTypeReqDescription
enginestring––
engineNotestring––
failedinteger––
functionsSearchedinteger––
functionsTotalinteger––
imagestring––
itemsarray––
patternstring––
stoppedBystring––

No examples provided.

search_dex ~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.]

NameTypeReqDescription
kindstringyesWhat to search.
limitinteger–Most hits.
mappingstring–R8/ProGuard mapping.txt: shows and accepts original names; kept per package.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
pathstringyesAn Android package, .dex or jar with classes*.dex.
querystringyesCase-insensitive substring or * / ? pattern; for const a number.
NameTypeReqDescription
itemsarray––
notesarray––

No examples provided.

search_il ~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*".

NameTypeReqDescription
assemblystring–Assembly id, name, path; omit: all.
contextinteger–Instructions shown per match (1-24).
limitinteger–Max rows.
maxTokensinteger–Page size in tokens.
offsetinteger–Rows to skip.
patternstringyesInstruction pattern.
NameTypeReqDescription
itemsarray––

No examples provided.

search_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.]

NameTypeReqDescription
enginestring–auto (default): IDA or Ghidra if analyzed, else ours.
fromstring–Range start (with to, or alone: to the end of its section).
functionstring–Only this function: Hex VA/RVA (rva:/va:/off:), export, module!import, function.
imagestringyesImage id, name, path.
limitinteger–Max matches (max 2000).
maxInstructionsinteger–Instructions scanned per page (max 5000000).
maxTokensinteger–Page size in tokens.
mnemonicstring–Mnemonic regex, e.g. ^(call|jmp)$
offsetinteger–Rows to skip.
operandsstring–Operand text regex, e.g. rsp\+|fs:
textstring–Regex over the whole instruction text.
tostring–Range end (exclusive).
valuestring–Operand value: 0x10B, 267, an address, or range 0x100..0x1FF.
NameTypeReqDescription
enginestring––
engineNotestring––
imagestring––
itemsarray––
scannedinteger––

No examples provided.

Install

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

# add to Claude Code
claude mcp add albasha0x0-corvus -- dnx CorvusRE@2.11.0 --yes
Common questions

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.