save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -6,3 +6,6 @@ Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_sol
| --- | --- | --- |
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.ML/StellaOps.BinaryIndex.ML.md. |
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
| QA-BINARYINDEX-VERIFY-028 | BLOCKED | SPRINT_20260211_033 run-001: verify `ml-function-embedding-service` across Tier 0/1/2 evidence and terminalize dossier state. |

View File

@@ -0,0 +1,181 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>StellaOps.BinaryIndex.Contracts</name>
</assembly>
<members>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest">
<summary>
Request to resolve vulnerability status for a binary.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.Package">
<summary>
Package URL (PURL) or CPE identifier.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.FilePath">
<summary>
File path within container/filesystem.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.BuildId">
<summary>
ELF Build-ID, PE CodeView GUID, or Mach-O UUID.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.Hashes">
<summary>
Hash values for matching.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.Fingerprint">
<summary>
Fingerprint bytes (Base64-encoded).
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.FingerprintAlgorithm">
<summary>
Fingerprint algorithm if fingerprint provided (e.g., "combined", "tlsh", "ssdeep").
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.CveId">
<summary>
CVE to check (optional, for targeted queries). If not provided, checks all known CVEs.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionRequest.DistroRelease">
<summary>
Distro hint for fix status lookup (e.g., "debian:bookworm").
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionHashes">
<summary>
Hash values for binary matching.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionHashes.FileSha256">
<summary>SHA-256 hash of the entire file.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionHashes.TextSha256">
<summary>SHA-256 hash of the .text section.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionHashes.Blake3">
<summary>BLAKE3 hash (future-proof).</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse">
<summary>
Response from vulnerability resolution.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.Package">
<summary>Package identifier from request.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.Status">
<summary>Resolution status.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.FixedVersion">
<summary>Version where fix was applied (if status is Fixed).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.Evidence">
<summary>Evidence supporting the resolution.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.AttestationDsse">
<summary>DSSE attestation envelope (Base64-encoded JSON).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.ResolvedAt">
<summary>Timestamp when resolution was computed.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.FromCache">
<summary>Whether result was served from cache.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.VulnResolutionResponse.CveId">
<summary>CVE ID if a specific CVE was queried.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionStatus">
<summary>
Resolution status enumeration.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionStatus.Fixed">
<summary>Vulnerability is fixed in this binary (backport detected).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionStatus.Vulnerable">
<summary>Binary is vulnerable.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionStatus.NotAffected">
<summary>Binary is not affected by this CVE.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionStatus.Unknown">
<summary>Resolution status unknown.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence">
<summary>
Evidence supporting a resolution decision.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.MatchType">
<summary>Match method used (build_id, fingerprint, hash_exact).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.Confidence">
<summary>Confidence score (0.0-1.0).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.DistroAdvisoryId">
<summary>Distro advisory ID (e.g., DSA-5343-1, RHSA-2024:1234).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.PatchHash">
<summary>SHA-256 of the security patch.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.MatchedFingerprintIds">
<summary>List of matched fingerprint IDs.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.FunctionDiffSummary">
<summary>Summary of function-level differences.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.SourcePackage">
<summary>Source package name.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.ResolutionEvidence.FixMethod">
<summary>Detection method (security_feed, changelog, patch_header).</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionRequest">
<summary>
Batch request for resolving multiple vulnerabilities.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionRequest.Items">
<summary>List of resolution requests.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionRequest.Options">
<summary>Resolution options.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.BatchResolutionOptions">
<summary>
Options for batch resolution.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchResolutionOptions.BypassCache">
<summary>Bypass cache and perform fresh lookups.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchResolutionOptions.IncludeDsseAttestation">
<summary>Include DSSE attestation in responses.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionResponse">
<summary>
Response from batch vulnerability resolution.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionResponse.Results">
<summary>List of resolution results.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionResponse.TotalCount">
<summary>Total items processed.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionResponse.CacheHits">
<summary>Number of items served from cache.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Contracts.Resolution.BatchVulnResolutionResponse.ProcessingTimeMs">
<summary>Processing time in milliseconds.</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,635 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>StellaOps.BinaryIndex.Disassembly.Abstractions</name>
</assembly>
<members>
<member name="T:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin">
<summary>
Abstraction over binary disassembly engine plugins.
Each plugin implements this interface to provide disassembly capabilities.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.Capabilities">
<summary>
Gets the capabilities of this disassembly plugin.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.LoadBinary(System.IO.Stream,System.Nullable{StellaOps.BinaryIndex.Disassembly.CpuArchitecture},System.Nullable{StellaOps.BinaryIndex.Disassembly.BinaryFormat})">
<summary>
Loads a binary from a stream and detects format/architecture.
</summary>
<param name="stream">The binary stream to load.</param>
<param name="archHint">Optional hint for architecture detection.</param>
<param name="formatHint">Optional hint for format detection.</param>
<returns>Binary information including format, architecture, and metadata.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.LoadBinary(System.ReadOnlySpan{System.Byte},System.Nullable{StellaOps.BinaryIndex.Disassembly.CpuArchitecture},System.Nullable{StellaOps.BinaryIndex.Disassembly.BinaryFormat})">
<summary>
Loads a binary from a byte array.
</summary>
<param name="bytes">The binary data.</param>
<param name="archHint">Optional hint for architecture detection.</param>
<param name="formatHint">Optional hint for format detection.</param>
<returns>Binary information including format, architecture, and metadata.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.GetCodeRegions(StellaOps.BinaryIndex.Disassembly.BinaryInfo)">
<summary>
Gets executable code regions (sections) from the binary.
</summary>
<param name="binary">The loaded binary information.</param>
<returns>Enumerable of code regions.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.GetSymbols(StellaOps.BinaryIndex.Disassembly.BinaryInfo)">
<summary>
Gets symbols (functions) from the binary.
</summary>
<param name="binary">The loaded binary information.</param>
<returns>Enumerable of symbol information.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.Disassemble(StellaOps.BinaryIndex.Disassembly.BinaryInfo,StellaOps.BinaryIndex.Disassembly.CodeRegion)">
<summary>
Disassembles a code region to instructions.
</summary>
<param name="binary">The loaded binary information.</param>
<param name="region">The code region to disassemble.</param>
<returns>Enumerable of disassembled instructions.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.Disassemble(StellaOps.BinaryIndex.Disassembly.BinaryInfo,System.UInt64,System.UInt64)">
<summary>
Disassembles starting at a specific address for a given length.
</summary>
<param name="binary">The loaded binary information.</param>
<param name="startAddress">Virtual address to start disassembly.</param>
<param name="length">Maximum number of bytes to disassemble.</param>
<returns>Enumerable of disassembled instructions.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin.DisassembleSymbol(StellaOps.BinaryIndex.Disassembly.BinaryInfo,StellaOps.BinaryIndex.Disassembly.SymbolInfo)">
<summary>
Disassembles a specific symbol/function.
</summary>
<param name="binary">The loaded binary information.</param>
<param name="symbol">The symbol to disassemble.</param>
<returns>Enumerable of disassembled instructions.</returns>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry">
<summary>
Registry for disassembly plugins. Manages plugin discovery and selection.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry.Plugins">
<summary>
Gets all registered plugins.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry.FindPlugin(StellaOps.BinaryIndex.Disassembly.CpuArchitecture,StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<summary>
Finds the best plugin for the given architecture and format.
</summary>
<param name="architecture">Target CPU architecture.</param>
<param name="format">Target binary format.</param>
<returns>The best matching plugin, or null if none found.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry.FindPluginsForArchitecture(StellaOps.BinaryIndex.Disassembly.CpuArchitecture)">
<summary>
Finds all plugins that support the given architecture.
</summary>
<param name="architecture">Target CPU architecture.</param>
<returns>All matching plugins ordered by priority.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry.FindPluginsForFormat(StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<summary>
Finds all plugins that support the given format.
</summary>
<param name="format">Target binary format.</param>
<returns>All matching plugins ordered by priority.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry.GetPlugin(System.String)">
<summary>
Gets a plugin by its unique identifier.
</summary>
<param name="pluginId">The plugin identifier.</param>
<returns>The plugin if found, null otherwise.</returns>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.IDisassemblyService">
<summary>
Facade service for disassembly operations. Automatically selects the best plugin.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyService.LoadBinary(System.IO.Stream,System.String)">
<summary>
Loads a binary and automatically selects the best plugin.
</summary>
<param name="stream">The binary stream to load.</param>
<param name="preferredPluginId">Optional preferred plugin ID.</param>
<returns>Binary information and the plugin used.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.IDisassemblyService.LoadBinary(System.ReadOnlySpan{System.Byte},System.String)">
<summary>
Loads a binary from bytes and automatically selects the best plugin.
</summary>
<param name="bytes">The binary data.</param>
<param name="preferredPluginId">Optional preferred plugin ID.</param>
<returns>Binary information and the plugin used.</returns>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.IDisassemblyService.Registry">
<summary>
Gets the plugin registry.
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.BinaryFormat">
<summary>
Binary executable format.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.Unknown">
<summary>Unknown format.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.Raw">
<summary>Raw binary data (no format metadata).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.ELF">
<summary>Executable and Linkable Format (Linux, BSD, etc.).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.PE">
<summary>Portable Executable (Windows).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.MachO">
<summary>Mach-O (macOS, iOS).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.BinaryFormat.WASM">
<summary>WebAssembly module.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.BinaryInfo">
<summary>
Information about a loaded binary.
</summary>
<param name="Format">Binary format: ELF, PE, MachO, etc.</param>
<param name="Architecture">CPU architecture.</param>
<param name="Bitness">32 or 64 bit.</param>
<param name="Endianness">Byte order.</param>
<param name="Abi">Application binary interface hint (gnu, musl, msvc, darwin).</param>
<param name="EntryPoint">Entry point address if available.</param>
<param name="BuildId">Build identifier if present (e.g., GNU build-id).</param>
<param name="Metadata">Additional metadata from the binary.</param>
<param name="Handle">Internal handle for the disassembly engine (engine-specific).</param>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.BinaryInfo.#ctor(StellaOps.BinaryIndex.Disassembly.BinaryFormat,StellaOps.BinaryIndex.Disassembly.CpuArchitecture,System.Int32,StellaOps.BinaryIndex.Disassembly.Endianness,System.String,System.Nullable{System.UInt64},System.String,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Object},System.Object)">
<summary>
Information about a loaded binary.
</summary>
<param name="Format">Binary format: ELF, PE, MachO, etc.</param>
<param name="Architecture">CPU architecture.</param>
<param name="Bitness">32 or 64 bit.</param>
<param name="Endianness">Byte order.</param>
<param name="Abi">Application binary interface hint (gnu, musl, msvc, darwin).</param>
<param name="EntryPoint">Entry point address if available.</param>
<param name="BuildId">Build identifier if present (e.g., GNU build-id).</param>
<param name="Metadata">Additional metadata from the binary.</param>
<param name="Handle">Internal handle for the disassembly engine (engine-specific).</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Format">
<summary>Binary format: ELF, PE, MachO, etc.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Architecture">
<summary>CPU architecture.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Bitness">
<summary>32 or 64 bit.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Endianness">
<summary>Byte order.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Abi">
<summary>Application binary interface hint (gnu, musl, msvc, darwin).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.EntryPoint">
<summary>Entry point address if available.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.BuildId">
<summary>Build identifier if present (e.g., GNU build-id).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Metadata">
<summary>Additional metadata from the binary.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.BinaryInfo.Handle">
<summary>Internal handle for the disassembly engine (engine-specific).</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.CodeRegion">
<summary>
Represents a code region (section) in a binary.
</summary>
<param name="Name">Section name: .text, .rodata, etc.</param>
<param name="VirtualAddress">Virtual address in memory.</param>
<param name="FileOffset">Offset in the binary file.</param>
<param name="Size">Size in bytes.</param>
<param name="IsExecutable">Whether the region contains executable code.</param>
<param name="IsReadable">Whether the region is readable.</param>
<param name="IsWritable">Whether the region is writable.</param>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.CodeRegion.#ctor(System.String,System.UInt64,System.UInt64,System.UInt64,System.Boolean,System.Boolean,System.Boolean)">
<summary>
Represents a code region (section) in a binary.
</summary>
<param name="Name">Section name: .text, .rodata, etc.</param>
<param name="VirtualAddress">Virtual address in memory.</param>
<param name="FileOffset">Offset in the binary file.</param>
<param name="Size">Size in bytes.</param>
<param name="IsExecutable">Whether the region contains executable code.</param>
<param name="IsReadable">Whether the region is readable.</param>
<param name="IsWritable">Whether the region is writable.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.Name">
<summary>Section name: .text, .rodata, etc.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.VirtualAddress">
<summary>Virtual address in memory.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.FileOffset">
<summary>Offset in the binary file.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.Size">
<summary>Size in bytes.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.IsExecutable">
<summary>Whether the region contains executable code.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.IsReadable">
<summary>Whether the region is readable.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.CodeRegion.IsWritable">
<summary>Whether the region is writable.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.CpuArchitecture">
<summary>
CPU architecture identifier.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.Unknown">
<summary>Unknown architecture.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.X86">
<summary>Intel/AMD 32-bit x86.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.X86_64">
<summary>Intel/AMD 64-bit x86-64 (amd64).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.ARM32">
<summary>ARM 32-bit (ARMv7).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.ARM64">
<summary>ARM 64-bit (AArch64/ARMv8).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.MIPS32">
<summary>MIPS 32-bit.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.MIPS64">
<summary>MIPS 64-bit.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.RISCV64">
<summary>RISC-V 64-bit.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.PPC32">
<summary>PowerPC 32-bit.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.PPC64">
<summary>PowerPC 64-bit.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.SPARC">
<summary>SPARC.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.SH4">
<summary>SuperH SH4.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.AVR">
<summary>AVR microcontroller.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.EVM">
<summary>Ethereum Virtual Machine.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.CpuArchitecture.WASM">
<summary>WebAssembly.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction">
<summary>
A disassembled instruction.
</summary>
<param name="Address">Virtual address of the instruction.</param>
<param name="RawBytes">Raw bytes of the instruction.</param>
<param name="Mnemonic">Instruction mnemonic (e.g., MOV, ADD, JMP).</param>
<param name="OperandsText">Text representation of operands.</param>
<param name="Kind">Classification of the instruction.</param>
<param name="Operands">Parsed operands.</param>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.#ctor(System.UInt64,System.Collections.Immutable.ImmutableArray{System.Byte},System.String,System.String,StellaOps.BinaryIndex.Disassembly.InstructionKind,System.Collections.Immutable.ImmutableArray{StellaOps.BinaryIndex.Disassembly.Operand})">
<summary>
A disassembled instruction.
</summary>
<param name="Address">Virtual address of the instruction.</param>
<param name="RawBytes">Raw bytes of the instruction.</param>
<param name="Mnemonic">Instruction mnemonic (e.g., MOV, ADD, JMP).</param>
<param name="OperandsText">Text representation of operands.</param>
<param name="Kind">Classification of the instruction.</param>
<param name="Operands">Parsed operands.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.Address">
<summary>Virtual address of the instruction.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.RawBytes">
<summary>Raw bytes of the instruction.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.Mnemonic">
<summary>Instruction mnemonic (e.g., MOV, ADD, JMP).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.OperandsText">
<summary>Text representation of operands.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.Kind">
<summary>Classification of the instruction.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassembledInstruction.Operands">
<summary>Parsed operands.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities">
<summary>
Describes the capabilities of a disassembly plugin.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.PluginId">
<summary>
The unique identifier of the plugin.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.Name">
<summary>
Display name of the disassembly engine.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.Version">
<summary>
Version of the underlying disassembly library.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportedArchitectures">
<summary>
Supported CPU architectures.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportedFormats">
<summary>
Supported binary formats.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportsLifting">
<summary>
Whether the plugin supports lifting to intermediate representation.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportsCfgRecovery">
<summary>
Whether the plugin supports control flow graph recovery.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.Priority">
<summary>
Priority for plugin selection when multiple plugins support the same arch/format.
Higher values indicate higher priority.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportsArchitecture(StellaOps.BinaryIndex.Disassembly.CpuArchitecture)">
<summary>
Checks if this plugin supports the given architecture.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.SupportsFormat(StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<summary>
Checks if this plugin supports the given format.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyCapabilities.CanHandle(StellaOps.BinaryIndex.Disassembly.CpuArchitecture,StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<summary>
Checks if this plugin can handle the given architecture and format combination.
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.Endianness">
<summary>
Byte order.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.Endianness.Little">
<summary>Little-endian (LSB first).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.Endianness.Big">
<summary>Big-endian (MSB first).</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.InstructionKind">
<summary>
Classification of instruction types.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Unknown">
<summary>Unknown or unclassified instruction.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Arithmetic">
<summary>Arithmetic operation (ADD, SUB, MUL, DIV).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Logic">
<summary>Logical operation (AND, OR, XOR, NOT).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Move">
<summary>Data movement (MOV, PUSH, POP).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Load">
<summary>Memory load operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Store">
<summary>Memory store operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Branch">
<summary>Unconditional branch (JMP).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.ConditionalBranch">
<summary>Conditional branch (JE, JNE, JL, etc.).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Call">
<summary>Function call.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Return">
<summary>Function return.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Nop">
<summary>No operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Syscall">
<summary>System call.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Interrupt">
<summary>Software interrupt.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Compare">
<summary>Compare operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Shift">
<summary>Shift operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.Vector">
<summary>Vector/SIMD operation.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.InstructionKind.FloatingPoint">
<summary>Floating point operation.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.Operand">
<summary>
An instruction operand.
</summary>
<param name="Type">Operand type.</param>
<param name="Text">Text representation.</param>
<param name="Value">Immediate value if applicable.</param>
<param name="Register">Register name if applicable.</param>
<param name="MemoryBase">Base register for memory operand.</param>
<param name="MemoryIndex">Index register for memory operand.</param>
<param name="MemoryScale">Scale factor for indexed memory operand.</param>
<param name="MemoryDisplacement">Displacement for memory operand.</param>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.Operand.#ctor(StellaOps.BinaryIndex.Disassembly.OperandType,System.String,System.Nullable{System.Int64},System.String,System.String,System.String,System.Nullable{System.Int32},System.Nullable{System.Int64})">
<summary>
An instruction operand.
</summary>
<param name="Type">Operand type.</param>
<param name="Text">Text representation.</param>
<param name="Value">Immediate value if applicable.</param>
<param name="Register">Register name if applicable.</param>
<param name="MemoryBase">Base register for memory operand.</param>
<param name="MemoryIndex">Index register for memory operand.</param>
<param name="MemoryScale">Scale factor for indexed memory operand.</param>
<param name="MemoryDisplacement">Displacement for memory operand.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.Type">
<summary>Operand type.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.Text">
<summary>Text representation.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.Value">
<summary>Immediate value if applicable.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.Register">
<summary>Register name if applicable.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.MemoryBase">
<summary>Base register for memory operand.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.MemoryIndex">
<summary>Index register for memory operand.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.MemoryScale">
<summary>Scale factor for indexed memory operand.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.Operand.MemoryDisplacement">
<summary>Displacement for memory operand.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.OperandType">
<summary>
Type of operand.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.OperandType.Unknown">
<summary>Unknown operand type.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.OperandType.Register">
<summary>CPU register.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.OperandType.Immediate">
<summary>Immediate value.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.OperandType.Memory">
<summary>Memory reference.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.OperandType.Address">
<summary>Address/label.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.SymbolInfo">
<summary>
Information about a symbol in the binary.
</summary>
<param name="Name">Symbol name.</param>
<param name="Address">Virtual address of the symbol.</param>
<param name="Size">Size in bytes (0 if unknown).</param>
<param name="Type">Symbol type.</param>
<param name="Binding">Symbol binding.</param>
<param name="Section">Section containing the symbol.</param>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.SymbolInfo.#ctor(System.String,System.UInt64,System.UInt64,StellaOps.BinaryIndex.Disassembly.SymbolType,StellaOps.BinaryIndex.Disassembly.SymbolBinding,System.String)">
<summary>
Information about a symbol in the binary.
</summary>
<param name="Name">Symbol name.</param>
<param name="Address">Virtual address of the symbol.</param>
<param name="Size">Size in bytes (0 if unknown).</param>
<param name="Type">Symbol type.</param>
<param name="Binding">Symbol binding.</param>
<param name="Section">Section containing the symbol.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Name">
<summary>Symbol name.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Address">
<summary>Virtual address of the symbol.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Size">
<summary>Size in bytes (0 if unknown).</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Type">
<summary>Symbol type.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Binding">
<summary>Symbol binding.</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.SymbolInfo.Section">
<summary>Section containing the symbol.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.SymbolType">
<summary>
Type of symbol.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Unknown">
<summary>Unknown or unspecified type.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Function">
<summary>Function/procedure.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Object">
<summary>Data object.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Section">
<summary>Section symbol.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.File">
<summary>Source file name.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Common">
<summary>Common block symbol.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolType.Tls">
<summary>Thread-local storage.</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.SymbolBinding">
<summary>
Symbol binding/visibility.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolBinding.Unknown">
<summary>Unknown binding.</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolBinding.Local">
<summary>Local symbol (not visible outside the object).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolBinding.Global">
<summary>Global symbol (visible to other objects).</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.SymbolBinding.Weak">
<summary>Weak symbol (can be overridden).</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,271 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>StellaOps.BinaryIndex.Disassembly</name>
</assembly>
<members>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyOptions">
<summary>
Configuration options for the disassembly service.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.DisassemblyOptions.SectionName">
<summary>
Configuration section name.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyOptions.PreferredPluginId">
<summary>
The preferred plugin ID to use for disassembly when multiple plugins are available.
If not set, the plugin with the highest priority for the given architecture/format is used.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyOptions.ArchitecturePreferences">
<summary>
Plugin-specific preferences by architecture.
Key: architecture name (e.g., "x86_64", "arm64"), Value: preferred plugin ID.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyOptions.MaxInstructionsPerRegion">
<summary>
Maximum instruction count to disassemble per region (prevents runaway disassembly).
Default: 1,000,000 instructions.
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry">
<summary>
Default implementation of the disassembly plugin registry.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.#ctor(System.Collections.Generic.IEnumerable{StellaOps.BinaryIndex.Disassembly.IDisassemblyPlugin},Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry})">
<summary>
Creates a new plugin registry with the given plugins.
</summary>
<param name="plugins">The registered plugins.</param>
<param name="logger">Logger instance.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.Plugins">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.FindPlugin(StellaOps.BinaryIndex.Disassembly.CpuArchitecture,StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.FindPluginsForArchitecture(StellaOps.BinaryIndex.Disassembly.CpuArchitecture)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.FindPluginsForFormat(StellaOps.BinaryIndex.Disassembly.BinaryFormat)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyPluginRegistry.GetPlugin(System.String)">
<inheritdoc />
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult">
<summary>
Result of a disassembly operation with quality metrics.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.Binary">
<summary>
The loaded binary information.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.Plugin">
<summary>
The plugin that produced this result.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.CodeRegions">
<summary>
Discovered code regions.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.Symbols">
<summary>
Discovered symbols/functions.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.TotalInstructions">
<summary>
Total instructions disassembled across all regions.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.DecodedInstructions">
<summary>
Successfully decoded instructions count.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.FailedInstructions">
<summary>
Failed/invalid instruction count.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.Confidence">
<summary>
Confidence score (0.0-1.0) based on quality metrics.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.UsedFallback">
<summary>
Whether this result came from a fallback plugin.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.FallbackReason">
<summary>
Reason for fallback if applicable.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyQualityResult.DecodeSuccessRate">
<summary>
Decode success rate (DecodedInstructions / TotalInstructions).
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyService">
<summary>
Default implementation of the disassembly service facade.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyService.#ctor(StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry,Microsoft.Extensions.Options.IOptions{StellaOps.BinaryIndex.Disassembly.DisassemblyOptions},Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Disassembly.DisassemblyService})">
<summary>
Creates a new disassembly service.
</summary>
<param name="registry">The plugin registry.</param>
<param name="options">Service options.</param>
<param name="logger">Logger instance.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.DisassemblyService.Registry">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyService.LoadBinary(System.IO.Stream,System.String)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyService.LoadBinary(System.ReadOnlySpan{System.Byte},System.String)">
<inheritdoc />
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.DisassemblyServiceCollectionExtensions">
<summary>
Extension methods for configuring disassembly services.
</summary>
<summary>
Extension methods for configuring hybrid disassembly services.
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyServiceCollectionExtensions.AddDisassemblyServices(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Adds the disassembly service infrastructure (registry and service facade).
Use AddXxxDisassemblyPlugin() methods to register actual plugins.
</summary>
<param name="services">The service collection.</param>
<param name="configuration">Optional configuration for binding options.</param>
<returns>The service collection for chaining.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyServiceCollectionExtensions.AddDisassemblyServices(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{StellaOps.BinaryIndex.Disassembly.DisassemblyOptions})">
<summary>
Adds the disassembly service infrastructure with options configuration action.
</summary>
<param name="services">The service collection.</param>
<param name="configure">Action to configure options.</param>
<returns>The service collection for chaining.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyServiceCollectionExtensions.AddHybridDisassemblyServices(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration)">
<summary>
Adds the hybrid disassembly service with fallback logic between plugins.
This replaces the standard disassembly service with a hybrid version that
automatically falls back to secondary plugins when primary quality is low.
</summary>
<param name="services">The service collection.</param>
<param name="configuration">Configuration for binding options.</param>
<returns>The service collection for chaining.</returns>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.DisassemblyServiceCollectionExtensions.AddHybridDisassemblyServices(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions},System.Action{StellaOps.BinaryIndex.Disassembly.DisassemblyOptions})">
<summary>
Adds the hybrid disassembly service with configuration actions.
</summary>
<param name="services">The service collection.</param>
<param name="configureHybrid">Action to configure hybrid options.</param>
<param name="configureDisassembly">Optional action to configure standard options.</param>
<returns>The service collection for chaining.</returns>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions">
<summary>
Configuration options for hybrid disassembly with fallback logic.
</summary>
</member>
<member name="F:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.SectionName">
<summary>
Configuration section name.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.PrimaryPluginId">
<summary>
Primary plugin ID to try first. If null, auto-selects highest priority plugin.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.FallbackPluginId">
<summary>
Fallback plugin ID to use when primary fails quality threshold.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.MinConfidenceThreshold">
<summary>
Minimum confidence score (0.0-1.0) required to accept primary plugin results.
If primary result confidence is below this, fallback is attempted.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.MinFunctionCount">
<summary>
Minimum function discovery count. If primary finds fewer functions, fallback is attempted.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.MinDecodeSuccessRate">
<summary>
Minimum instruction decode success rate (0.0-1.0).
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.AutoFallbackOnUnsupported">
<summary>
Whether to automatically fallback when primary plugin doesn't support the architecture.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.EnableFallback">
<summary>
Whether to enable hybrid fallback logic at all. If false, behaves like standard service.
</summary>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions.PluginTimeoutSeconds">
<summary>
Timeout in seconds for each plugin attempt.
</summary>
</member>
<member name="T:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService">
<summary>
Hybrid disassembly service that implements smart routing between plugins
with quality-based fallback logic (e.g., B2R2 primary -> Ghidra fallback).
</summary>
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService.#ctor(StellaOps.BinaryIndex.Disassembly.IDisassemblyPluginRegistry,Microsoft.Extensions.Options.IOptions{StellaOps.BinaryIndex.Disassembly.HybridDisassemblyOptions},Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService})">
<summary>
Creates a new hybrid disassembly service.
</summary>
<param name="registry">The plugin registry.</param>
<param name="options">Hybrid options.</param>
<param name="logger">Logger instance.</param>
</member>
<member name="P:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService.Registry">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService.LoadBinary(System.IO.Stream,System.String)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService.LoadBinary(System.ReadOnlySpan{System.Byte},System.String)">
<inheritdoc />
</member>
<member name="M:StellaOps.BinaryIndex.Disassembly.HybridDisassemblyService.LoadBinaryWithQuality(System.ReadOnlySpan{System.Byte},System.String)">
<summary>
Loads binary with quality assessment and returns detailed quality result.
</summary>
<param name="bytes">The binary data.</param>
<param name="preferredPluginId">Optional preferred plugin ID.</param>
<returns>A quality result with metrics and fallback info.</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,453 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"StellaOps.BinaryIndex.ML/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.ML.OnnxRuntime": "1.20.1",
"StellaOps.BinaryIndex.Decompiler": "1.0.0",
"StellaOps.BinaryIndex.Semantic": "1.0.0"
},
"runtime": {
"StellaOps.BinaryIndex.ML.dll": {}
}
},
"Microsoft.Extensions.Configuration/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "10.0.1",
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Primitives": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Options.DataAnnotations/10.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Options.DataAnnotations.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.Extensions.Primitives/10.0.1": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.125.57005"
}
}
},
"Microsoft.ML.OnnxRuntime/1.20.1": {
"dependencies": {
"Microsoft.ML.OnnxRuntime.Managed": "1.20.1"
},
"runtimeTargets": {
"runtimes/android/native/onnxruntime.aar": {
"rid": "android",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/ios/native/onnxruntime.xcframework.zip": {
"rid": "ios",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libonnxruntime.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libonnxruntime_providers_shared.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libonnxruntime.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libonnxruntime_providers_shared.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-arm64/native/libonnxruntime.dylib": {
"rid": "osx-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libonnxruntime.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/onnxruntime.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-arm64/native/onnxruntime.lib": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/onnxruntime_providers_shared.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-arm64/native/onnxruntime_providers_shared.lib": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/onnxruntime.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-x64/native/onnxruntime.lib": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/onnxruntime_providers_shared.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-x64/native/onnxruntime_providers_shared.lib": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/onnxruntime.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-x86/native/onnxruntime.lib": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/onnxruntime_providers_shared.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "1.20.24.1119"
},
"runtimes/win-x86/native/onnxruntime_providers_shared.lib": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"Microsoft.ML.OnnxRuntime.Managed/1.20.1": {
"runtime": {
"lib/net8.0/Microsoft.ML.OnnxRuntime.dll": {
"assemblyVersion": "1.20.1.0",
"fileVersion": "1.20.1.0"
}
}
},
"StellaOps.BinaryIndex.Contracts/1.0.0": {
"runtime": {
"StellaOps.BinaryIndex.Contracts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.BinaryIndex.Decompiler/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"StellaOps.BinaryIndex.Ghidra": "1.0.0",
"StellaOps.BinaryIndex.Semantic": "1.0.0"
},
"runtime": {
"StellaOps.BinaryIndex.Decompiler.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.BinaryIndex.Disassembly/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1",
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
},
"runtime": {
"StellaOps.BinaryIndex.Disassembly.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.BinaryIndex.Disassembly.Abstractions/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.BinaryIndex.Disassembly.Abstractions.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.BinaryIndex.Ghidra/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1",
"Microsoft.Extensions.Options.DataAnnotations": "10.0.1",
"StellaOps.BinaryIndex.Contracts": "1.0.0",
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
"StellaOps.Determinism.Abstractions": "1.0.0"
},
"runtime": {
"StellaOps.BinaryIndex.Ghidra.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.BinaryIndex.Semantic/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
"Microsoft.Extensions.Options": "10.0.1",
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
},
"runtime": {
"StellaOps.BinaryIndex.Semantic.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"StellaOps.Determinism.Abstractions/1.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
},
"runtime": {
"StellaOps.Determinism.Abstractions.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"StellaOps.BinaryIndex.ML/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Extensions.Configuration/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-njoRekyMIK+smav8B6KL2YgIfUtlsRNuT7wvurpLW+m/hoRKVnoELk2YxnUnWRGScCd1rukLMxShwLqEOKowDg==",
"path": "microsoft.extensions.configuration/10.0.1",
"hashPath": "microsoft.extensions.configuration.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kPlU11hql+L9RjrN2N9/0GcRcRcZrNFlLLjadasFWeBORT6pL6OE+RYRk90GGCyVGSxTK+e1/f3dsMj5zpFFiQ==",
"path": "microsoft.extensions.configuration.abstractions/10.0.1",
"hashPath": "microsoft.extensions.configuration.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Lp4CZIuTVXtlvkAnTq6QvMSW7+H62gX2cU2vdFxHQUxvrWTpi7LwYI3X+YAyIS0r12/p7gaosco7efIxL4yFNw==",
"path": "microsoft.extensions.configuration.binder/10.0.1",
"hashPath": "microsoft.extensions.configuration.binder.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oIy8fQxxbUsSrrOvgBqlVgOeCtDmrcynnTG+FQufcUWBrwyPfwlUkCDB2vaiBeYPyT+20u9/HeuHeBf+H4F/8g==",
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YkmyiPIWAXVb+lPIrM0LE5bbtLOJkCiRTFiHpkVOvhI7uTvCfoOHLEN0LcsY56GpSD7NqX3gJNpsaDe87/B3zg==",
"path": "microsoft.extensions.logging.abstractions/10.0.1",
"hashPath": "microsoft.extensions.logging.abstractions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-G6VVwywpJI4XIobetGHwg7wDOYC2L2XBYdtskxLaKF/Ynb5QBwLl7Q//wxAR2aVCLkMpoQrjSP9VoORkyddsNQ==",
"path": "microsoft.extensions.options/10.0.1",
"hashPath": "microsoft.extensions.options.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pL78/Im7O3WmxHzlKUsWTYchKL881udU7E26gCD3T0+/tPhWVfjPwMzfN/MRKU7aoFYcOiqcG2k1QTlH5woWow==",
"path": "microsoft.extensions.options.configurationextensions/10.0.1",
"hashPath": "microsoft.extensions.options.configurationextensions.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Options.DataAnnotations/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gwHO+zpVQGKK9KB3yen82Tff2zdLHHGIJzTut9L8RvoOO2RMSyYZrOmElvxu0lA4ZyaSxy8I0oNw1S/O/vkvFg==",
"path": "microsoft.extensions.options.dataannotations/10.0.1",
"hashPath": "microsoft.extensions.options.dataannotations.10.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/10.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DO8XrJkp5x4PddDuc/CH37yDBCs9BYN6ijlKyR3vMb55BP1Vwh90vOX8bNfnKxr5B2qEI3D8bvbY1fFbDveDHQ==",
"path": "microsoft.extensions.primitives/10.0.1",
"hashPath": "microsoft.extensions.primitives.10.0.1.nupkg.sha512"
},
"Microsoft.ML.OnnxRuntime/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NzUD79BC6R7TKROLyB3XCzXTpbNZ1YfOdVbult7hoFvd/xyRecOMiRO5HTzkPXvaFlcvZ91+WNCiroAPzUE7Dw==",
"path": "microsoft.ml.onnxruntime/1.20.1",
"hashPath": "microsoft.ml.onnxruntime.1.20.1.nupkg.sha512"
},
"Microsoft.ML.OnnxRuntime.Managed/1.20.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+EVcEcKdq3gkw6iu8TYl2coJxfPnMi1YQc6eZ80BGNlw6mbBCxNGe6h4udDCwENYWsXFvYjoBc6412t40tl4ew==",
"path": "microsoft.ml.onnxruntime.managed/1.20.1",
"hashPath": "microsoft.ml.onnxruntime.managed.1.20.1.nupkg.sha512"
},
"StellaOps.BinaryIndex.Contracts/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.BinaryIndex.Decompiler/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.BinaryIndex.Disassembly/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.BinaryIndex.Disassembly.Abstractions/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.BinaryIndex.Ghidra/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.BinaryIndex.Semantic/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"StellaOps.Determinism.Abstractions/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}