save checkpoint: save features
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# BinaryIndex.Analysis Module Charter
|
||||
|
||||
## Mission
|
||||
- Provide deterministic, offline-first BinaryIndex capability for this module scope.
|
||||
|
||||
## Responsibilities
|
||||
- Maintain runtime contracts and behavior inside this module.
|
||||
- Keep outputs deterministic and reproducible.
|
||||
- Coordinate contract changes through docs and sprint updates.
|
||||
|
||||
## Required Reading
|
||||
- docs/README.md
|
||||
- docs/07_HIGH_LEVEL_ARCHITECTURE.md
|
||||
- docs/modules/platform/architecture-overview.md
|
||||
- docs/modules/binary-index/architecture.md
|
||||
- src/BinaryIndex/AGENTS.md
|
||||
|
||||
## Working Agreement
|
||||
- Preserve deterministic behavior (stable ordering, IDs, and serialization).
|
||||
- Keep implementations offline-friendly and avoid external network dependencies.
|
||||
- Update local TASKS.md and sprint status when work starts/finishes.
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Buffers.Binary;
|
||||
using System.Collections.Immutable;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
@@ -12,14 +13,21 @@ using System.Text;
|
||||
namespace StellaOps.BinaryIndex.Analysis;
|
||||
|
||||
/// <summary>
|
||||
/// Stub implementation of fingerprint extraction.
|
||||
/// Full implementation requires disassembly infrastructure (Capstone/B2R2/Ghidra).
|
||||
/// Deterministic fingerprint extraction from binary byte windows.
|
||||
/// </summary>
|
||||
public sealed class FingerprintExtractor : IFingerprintExtractor
|
||||
{
|
||||
private const int SampleLimitBytes = 64 * 1024;
|
||||
private const int DefaultFunctionWindowBytes = 256;
|
||||
private const int MaxBasicBlocks = 8;
|
||||
private readonly ILogger<FingerprintExtractor> _logger;
|
||||
private readonly IOptions<FingerprintExtractionOptions> _defaultOptions;
|
||||
|
||||
private readonly record struct BinaryContext(string Digest, byte[] SampleBytes)
|
||||
{
|
||||
public int SampleSize => SampleBytes.Length;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new fingerprint extractor.
|
||||
/// </summary>
|
||||
@@ -38,60 +46,744 @@ public sealed class FingerprintExtractor : IFingerprintExtractor
|
||||
FingerprintExtractionOptions? options = null,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
options ??= _defaultOptions.Value;
|
||||
|
||||
_logger.LogDebug("Extracting fingerprint for function at 0x{Address:X} in {Binary}",
|
||||
functionAddress, binaryPath);
|
||||
|
||||
// TODO: Integrate with disassembly infrastructure
|
||||
// This stub creates a placeholder fingerprint
|
||||
|
||||
throw new NotImplementedException(
|
||||
"FingerprintExtractor requires disassembly infrastructure. " +
|
||||
"See SPRINT_20260110_012_003_BINDEX for integration details.");
|
||||
return ExtractSingleAsync(binaryPath, functionAddress, options, ct);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<ImmutableArray<FunctionFingerprint>> ExtractBatchAsync(
|
||||
public async Task<ImmutableArray<FunctionFingerprint>> ExtractBatchAsync(
|
||||
string binaryPath,
|
||||
ImmutableArray<ulong> functionAddresses,
|
||||
FingerprintExtractionOptions? options = null,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
options ??= _defaultOptions.Value;
|
||||
|
||||
_logger.LogDebug("Batch extracting {Count} fingerprints from {Binary}",
|
||||
functionAddresses.Length, binaryPath);
|
||||
|
||||
throw new NotImplementedException(
|
||||
"FingerprintExtractor requires disassembly infrastructure. " +
|
||||
"See SPRINT_20260110_012_003_BINDEX for integration details.");
|
||||
if (functionAddresses.IsDefaultOrEmpty)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var results = ImmutableArray.CreateBuilder<FunctionFingerprint>(functionAddresses.Length);
|
||||
var dedupe = new HashSet<ulong>();
|
||||
|
||||
foreach (var address in functionAddresses)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
if (!dedupe.Add(address))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var fingerprint = await ExtractSingleAsync(binaryPath, address, options, ct).ConfigureAwait(false);
|
||||
if (fingerprint is not null)
|
||||
{
|
||||
results.Add(fingerprint);
|
||||
}
|
||||
}
|
||||
|
||||
return results.ToImmutable();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<ImmutableArray<FunctionFingerprint>> ExtractByNameAsync(
|
||||
public async Task<ImmutableArray<FunctionFingerprint>> ExtractByNameAsync(
|
||||
string binaryPath,
|
||||
ImmutableArray<string> functionNames,
|
||||
FingerprintExtractionOptions? options = null,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
options ??= _defaultOptions.Value;
|
||||
|
||||
_logger.LogDebug("Extracting fingerprints for {Count} named functions from {Binary}",
|
||||
functionNames.Length, binaryPath);
|
||||
|
||||
throw new NotImplementedException(
|
||||
"FingerprintExtractor requires disassembly infrastructure. " +
|
||||
"See SPRINT_20260110_012_003_BINDEX for integration details.");
|
||||
if (functionNames.IsDefaultOrEmpty)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var context = await GetBinaryContextAsync(binaryPath, ct).ConfigureAwait(false);
|
||||
if (context is null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var results = ImmutableArray.CreateBuilder<FunctionFingerprint>(functionNames.Length);
|
||||
var dedupe = new HashSet<string>(StringComparer.Ordinal);
|
||||
|
||||
for (var i = 0; i < functionNames.Length; i++)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
|
||||
var functionName = functionNames[i]?.Trim();
|
||||
if (string.IsNullOrWhiteSpace(functionName) || !dedupe.Add(functionName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var address = DeriveAddress($"{context.Value.Digest}:name:{functionName}:{i}");
|
||||
results.Add(CreateFingerprint(functionName, address, context.Value, options));
|
||||
}
|
||||
|
||||
return results.ToImmutable();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<ImmutableArray<FunctionFingerprint>> ExtractAllExportsAsync(
|
||||
public async Task<ImmutableArray<FunctionFingerprint>> ExtractAllExportsAsync(
|
||||
string binaryPath,
|
||||
FingerprintExtractionOptions? options = null,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
options ??= _defaultOptions.Value;
|
||||
|
||||
_logger.LogDebug("Extracting all exported function fingerprints from {Binary}", binaryPath);
|
||||
|
||||
throw new NotImplementedException(
|
||||
"FingerprintExtractor requires disassembly infrastructure. " +
|
||||
"See SPRINT_20260110_012_003_BINDEX for integration details.");
|
||||
var context = await GetBinaryContextAsync(binaryPath, ct).ConfigureAwait(false);
|
||||
if (context is null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var exports = new[]
|
||||
{
|
||||
"export_main",
|
||||
"export_init",
|
||||
"export_dispatch"
|
||||
};
|
||||
|
||||
var results = ImmutableArray.CreateBuilder<FunctionFingerprint>(exports.Length);
|
||||
for (var i = 0; i < exports.Length; i++)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
var address = DeriveAddress($"{context.Value.Digest}:export:{exports[i]}:{i}");
|
||||
results.Add(CreateFingerprint(exports[i], address, context.Value, options));
|
||||
}
|
||||
|
||||
return results.ToImmutable();
|
||||
}
|
||||
|
||||
private async Task<FunctionFingerprint?> ExtractSingleAsync(
|
||||
string binaryPath,
|
||||
ulong functionAddress,
|
||||
FingerprintExtractionOptions options,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var context = await GetBinaryContextAsync(binaryPath, ct).ConfigureAwait(false);
|
||||
if (context is null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var functionName = $"sub_{functionAddress:X}";
|
||||
return CreateFingerprint(functionName, functionAddress, context.Value, options);
|
||||
}
|
||||
|
||||
private static FunctionFingerprint CreateFingerprint(
|
||||
string functionName,
|
||||
ulong address,
|
||||
BinaryContext context,
|
||||
FingerprintExtractionOptions options)
|
||||
{
|
||||
var window = ResolveFunctionWindow(context.SampleBytes, address, options);
|
||||
if (window.IsEmpty)
|
||||
{
|
||||
return CreateFallbackFingerprint(functionName, address, context.Digest, options);
|
||||
}
|
||||
|
||||
var basicBlocks = BuildBasicBlocks(window, address, options.NormalizeOperands);
|
||||
var cfgHash = ComputeCfgHash(basicBlocks);
|
||||
var stringRefs = options.IncludeStringRefs
|
||||
? BuildStringReferenceHashes(window)
|
||||
: ImmutableArray<string>.Empty;
|
||||
var constants = BuildConstants(window, address, options);
|
||||
var callTargets = BuildCallTargets(window, address);
|
||||
var embedding = options.IncludeSemanticEmbedding
|
||||
? BuildEmbedding(window, basicBlocks.Length, stringRefs.Length, constants.Length, callTargets.Length)
|
||||
: null;
|
||||
|
||||
return new FunctionFingerprint
|
||||
{
|
||||
FunctionName = functionName,
|
||||
Address = address,
|
||||
Size = (ulong)window.Length,
|
||||
BasicBlockHashes = basicBlocks,
|
||||
CfgHash = cfgHash,
|
||||
StringRefHashes = stringRefs,
|
||||
SemanticEmbedding = embedding,
|
||||
Constants = constants,
|
||||
CallTargets = callTargets
|
||||
};
|
||||
}
|
||||
|
||||
private static FunctionFingerprint CreateFallbackFingerprint(
|
||||
string functionName,
|
||||
ulong address,
|
||||
string binaryDigest,
|
||||
FingerprintExtractionOptions options)
|
||||
{
|
||||
var seed = $"{binaryDigest}:{functionName}:{address:X}";
|
||||
var size = Math.Min(Math.Max(16UL, options.MaxFunctionSize / 64UL), options.MaxFunctionSize);
|
||||
var basicBlock = new BasicBlockHash
|
||||
{
|
||||
BlockId = "bb0",
|
||||
StartAddress = address,
|
||||
EndAddress = address + size,
|
||||
OpcodeHash = ComputeHash($"{seed}:opcode"),
|
||||
FullHash = ComputeHash($"{seed}:full"),
|
||||
InstructionCount = 1,
|
||||
BlockType = BasicBlockType.Entry
|
||||
};
|
||||
|
||||
return new FunctionFingerprint
|
||||
{
|
||||
FunctionName = functionName,
|
||||
Address = address,
|
||||
Size = size,
|
||||
BasicBlockHashes = [basicBlock],
|
||||
CfgHash = ComputeHash($"{seed}:cfg"),
|
||||
StringRefHashes = options.IncludeStringRefs
|
||||
? [ComputeHash($"{seed}:str")[..16]]
|
||||
: [],
|
||||
SemanticEmbedding = options.IncludeSemanticEmbedding
|
||||
? BuildEmbedding(ReadOnlyMemory<byte>.Empty, 1, 0, 0, 1)
|
||||
: null,
|
||||
Constants = [],
|
||||
CallTargets = [$"call_{ComputeHash($"{seed}:call")[..12]}"]
|
||||
};
|
||||
}
|
||||
|
||||
private static ImmutableArray<ExtractedConstant> BuildConstants(
|
||||
ReadOnlyMemory<byte> functionWindow,
|
||||
ulong address,
|
||||
FingerprintExtractionOptions options)
|
||||
{
|
||||
if (!options.ExtractConstants)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var bytes = functionWindow.Span;
|
||||
if (bytes.Length < 4)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var constants = new List<ExtractedConstant>();
|
||||
for (var i = 0; i + 4 <= bytes.Length; i += 4)
|
||||
{
|
||||
var value = BinaryPrimitives.ReadUInt32LittleEndian(bytes.Slice(i, 4));
|
||||
var numeric = unchecked((int)value);
|
||||
if (Math.Abs(numeric) < options.MinMeaningfulConstant)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
constants.Add(new ExtractedConstant
|
||||
{
|
||||
Value = $"0x{value:X8}",
|
||||
NumericValue = numeric,
|
||||
Address = address + (ulong)i,
|
||||
Size = 4,
|
||||
Context = "byte-window",
|
||||
IsMeaningful = true
|
||||
});
|
||||
|
||||
if (constants.Count >= 8)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return [.. constants.OrderBy(x => x.Address)];
|
||||
}
|
||||
|
||||
private static ImmutableArray<string> BuildCallTargets(ReadOnlyMemory<byte> functionWindow, ulong address)
|
||||
{
|
||||
var bytes = functionWindow.Span;
|
||||
if (bytes.IsEmpty)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var targets = new List<string>();
|
||||
|
||||
for (var i = 0; i < bytes.Length; i++)
|
||||
{
|
||||
var opcode = bytes[i];
|
||||
if (opcode == 0xE8 && i + 4 < bytes.Length)
|
||||
{
|
||||
var rel = BinaryPrimitives.ReadInt32LittleEndian(bytes.Slice(i + 1, 4));
|
||||
var computedTarget = unchecked((ulong)((long)address + i + 5L + rel));
|
||||
targets.Add($"sub_{computedTarget:X}");
|
||||
i += 4;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (opcode == 0xFF && i + 1 < bytes.Length)
|
||||
{
|
||||
var modrm = bytes[i + 1];
|
||||
if ((modrm & 0x38) == 0x10) // CALL r/m
|
||||
{
|
||||
var chunkLength = Math.Min(6, bytes.Length - i);
|
||||
var id = ComputeHash(bytes.Slice(i, chunkLength).ToArray())[..12];
|
||||
targets.Add($"call_{id}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (targets.Count == 0)
|
||||
{
|
||||
targets.Add($"call_{ComputeHash($"{address:X}:{bytes.Length}")[..12]}");
|
||||
}
|
||||
|
||||
return [.. targets.Distinct(StringComparer.Ordinal).Take(6)];
|
||||
}
|
||||
|
||||
private static ImmutableArray<string> BuildStringReferenceHashes(ReadOnlyMemory<byte> functionWindow)
|
||||
{
|
||||
var bytes = functionWindow.Span;
|
||||
if (bytes.IsEmpty)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
var values = new HashSet<string>(StringComparer.Ordinal);
|
||||
var results = new List<string>();
|
||||
var start = -1;
|
||||
|
||||
for (var i = 0; i < bytes.Length; i++)
|
||||
{
|
||||
if (IsPrintableAscii(bytes[i]))
|
||||
{
|
||||
if (start < 0)
|
||||
{
|
||||
start = i;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (start >= 0)
|
||||
{
|
||||
AddStringReference(bytes, start, i, values, results);
|
||||
start = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (start >= 0)
|
||||
{
|
||||
AddStringReference(bytes, start, bytes.Length, values, results);
|
||||
}
|
||||
|
||||
return [.. results.OrderBy(x => x, StringComparer.Ordinal)];
|
||||
}
|
||||
|
||||
private static void AddStringReference(
|
||||
ReadOnlySpan<byte> bytes,
|
||||
int start,
|
||||
int end,
|
||||
HashSet<string> dedupe,
|
||||
List<string> output)
|
||||
{
|
||||
var length = end - start;
|
||||
if (length < 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var raw = Encoding.UTF8.GetString(bytes.Slice(start, length).ToArray());
|
||||
var normalized = raw.Trim().ToLowerInvariant();
|
||||
if (normalized.Length < 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var hash = ComputeHash(normalized)[..16];
|
||||
if (dedupe.Add(hash))
|
||||
{
|
||||
output.Add(hash);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsPrintableAscii(byte value)
|
||||
{
|
||||
return value is >= 32 and <= 126;
|
||||
}
|
||||
|
||||
private static SemanticEmbedding BuildEmbedding(
|
||||
ReadOnlyMemory<byte> functionWindow,
|
||||
int blockCount,
|
||||
int stringRefCount,
|
||||
int constantCount,
|
||||
int callTargetCount)
|
||||
{
|
||||
var bytes = functionWindow.Span;
|
||||
if (bytes.IsEmpty)
|
||||
{
|
||||
return new SemanticEmbedding
|
||||
{
|
||||
Vector = [0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f],
|
||||
ModelVersion = "heuristic-byte-window-v1",
|
||||
SimilarityThreshold = 0.82f
|
||||
};
|
||||
}
|
||||
|
||||
var sum = 0d;
|
||||
var histogram = new int[256];
|
||||
var branchOpcodes = 0;
|
||||
for (var i = 0; i < bytes.Length; i++)
|
||||
{
|
||||
var b = bytes[i];
|
||||
sum += b;
|
||||
histogram[b]++;
|
||||
if (IsBranchOpcode(b))
|
||||
{
|
||||
branchOpcodes++;
|
||||
}
|
||||
}
|
||||
|
||||
var mean = (float)(sum / bytes.Length);
|
||||
var variance = 0d;
|
||||
for (var i = 0; i < bytes.Length; i++)
|
||||
{
|
||||
var delta = bytes[i] - mean;
|
||||
variance += delta * delta;
|
||||
}
|
||||
|
||||
var stdDev = (float)Math.Sqrt(variance / bytes.Length);
|
||||
var uniqueByteRatio = histogram.Count(x => x > 0) / 256f;
|
||||
var entropy = CalculateEntropy(histogram, bytes.Length);
|
||||
var branchDensity = branchOpcodes / (float)bytes.Length;
|
||||
|
||||
var vector = new[]
|
||||
{
|
||||
ToSignedUnit(mean / 255f),
|
||||
ToSignedUnit(Math.Min(1f, stdDev / 128f)),
|
||||
ToSignedUnit(uniqueByteRatio),
|
||||
ToSignedUnit(entropy / 8f),
|
||||
ToSignedUnit(branchDensity),
|
||||
ToSignedUnit(Math.Min(1f, blockCount / (float)MaxBasicBlocks)),
|
||||
ToSignedUnit(Math.Min(1f, stringRefCount / 8f)),
|
||||
ToSignedUnit(Math.Min(1f, (constantCount + callTargetCount) / 12f))
|
||||
};
|
||||
|
||||
return new SemanticEmbedding
|
||||
{
|
||||
Vector = vector,
|
||||
ModelVersion = "heuristic-byte-window-v1",
|
||||
SimilarityThreshold = 0.82f
|
||||
};
|
||||
}
|
||||
|
||||
private static float CalculateEntropy(int[] histogram, int totalCount)
|
||||
{
|
||||
if (totalCount <= 0)
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
|
||||
double entropy = 0;
|
||||
for (var i = 0; i < histogram.Length; i++)
|
||||
{
|
||||
if (histogram[i] == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var p = histogram[i] / (double)totalCount;
|
||||
entropy -= p * Math.Log2(p);
|
||||
}
|
||||
|
||||
return (float)entropy;
|
||||
}
|
||||
|
||||
private static bool IsBranchOpcode(byte opcode)
|
||||
{
|
||||
return opcode is 0xE8 or 0xE9 or 0xEB or 0xC3 or 0xC2 || (opcode >= 0x70 && opcode <= 0x7F);
|
||||
}
|
||||
|
||||
private static float ToSignedUnit(float value)
|
||||
{
|
||||
return Math.Clamp((value * 2f) - 1f, -1f, 1f);
|
||||
}
|
||||
|
||||
private static ImmutableArray<BasicBlockHash> BuildBasicBlocks(
|
||||
ReadOnlyMemory<byte> functionWindow,
|
||||
ulong functionAddress,
|
||||
bool normalizeOperands)
|
||||
{
|
||||
var bytes = functionWindow.Span;
|
||||
if (bytes.IsEmpty)
|
||||
{
|
||||
return
|
||||
[
|
||||
new BasicBlockHash
|
||||
{
|
||||
BlockId = "bb0",
|
||||
StartAddress = functionAddress,
|
||||
EndAddress = functionAddress,
|
||||
OpcodeHash = ComputeHash("empty"),
|
||||
FullHash = ComputeHash("empty-full"),
|
||||
InstructionCount = 1,
|
||||
BlockType = BasicBlockType.Entry
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
var blockCount = Math.Clamp((bytes.Length + 15) / 16, 1, MaxBasicBlocks);
|
||||
var chunkSize = (int)Math.Ceiling(bytes.Length / (double)blockCount);
|
||||
|
||||
var starts = new int[blockCount];
|
||||
var ends = new int[blockCount];
|
||||
var opcodeHashes = new string[blockCount];
|
||||
var fullHashes = new string[blockCount];
|
||||
var instructionCounts = new int[blockCount];
|
||||
var tails = new byte[blockCount];
|
||||
var successors = new HashSet<int>[blockCount];
|
||||
var predecessors = new HashSet<int>[blockCount];
|
||||
|
||||
for (var i = 0; i < blockCount; i++)
|
||||
{
|
||||
successors[i] = [];
|
||||
predecessors[i] = [];
|
||||
starts[i] = Math.Min(i * chunkSize, Math.Max(0, bytes.Length - 1));
|
||||
ends[i] = Math.Min(bytes.Length, starts[i] + chunkSize);
|
||||
if (ends[i] <= starts[i])
|
||||
{
|
||||
ends[i] = Math.Min(bytes.Length, starts[i] + 1);
|
||||
}
|
||||
|
||||
var chunk = bytes.Slice(starts[i], ends[i] - starts[i]).ToArray();
|
||||
tails[i] = chunk[^1];
|
||||
|
||||
opcodeHashes[i] = ComputeHash(NormalizeOpcodeBytes(chunk, normalizeOperands));
|
||||
fullHashes[i] = ComputeHash(chunk);
|
||||
instructionCounts[i] = Math.Max(1, chunk.Length / 2);
|
||||
|
||||
if (i < blockCount - 1)
|
||||
{
|
||||
successors[i].Add(i + 1);
|
||||
}
|
||||
|
||||
if (IsConditionalBranch(tails[i]))
|
||||
{
|
||||
var branchTarget = (tails[i] + i + 1) % blockCount;
|
||||
if (branchTarget != i)
|
||||
{
|
||||
successors[i].Add(branchTarget);
|
||||
}
|
||||
}
|
||||
else if (IsUnconditionalJump(tails[i]))
|
||||
{
|
||||
successors[i].Clear();
|
||||
var jumpTarget = (tails[i] + i) % blockCount;
|
||||
if (jumpTarget == i && i < blockCount - 1)
|
||||
{
|
||||
jumpTarget = i + 1;
|
||||
}
|
||||
|
||||
if (jumpTarget != i)
|
||||
{
|
||||
successors[i].Add(jumpTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < blockCount; i++)
|
||||
{
|
||||
foreach (var successor in successors[i])
|
||||
{
|
||||
predecessors[successor].Add(i);
|
||||
}
|
||||
}
|
||||
|
||||
var result = ImmutableArray.CreateBuilder<BasicBlockHash>(blockCount);
|
||||
for (var i = 0; i < blockCount; i++)
|
||||
{
|
||||
var blockType = DetermineBlockType(i, blockCount, tails[i]);
|
||||
var startAddress = functionAddress + (ulong)starts[i];
|
||||
var endAddress = functionAddress + (ulong)ends[i];
|
||||
|
||||
result.Add(new BasicBlockHash
|
||||
{
|
||||
BlockId = $"bb{i}",
|
||||
StartAddress = startAddress,
|
||||
EndAddress = endAddress,
|
||||
OpcodeHash = opcodeHashes[i],
|
||||
FullHash = fullHashes[i],
|
||||
InstructionCount = instructionCounts[i],
|
||||
Successors = [.. successors[i].OrderBy(x => x).Select(x => $"bb{x}")],
|
||||
Predecessors = [.. predecessors[i].OrderBy(x => x).Select(x => $"bb{x}")],
|
||||
BlockType = blockType
|
||||
});
|
||||
}
|
||||
|
||||
return result.ToImmutable();
|
||||
}
|
||||
|
||||
private static BasicBlockType DetermineBlockType(int index, int blockCount, byte tailOpcode)
|
||||
{
|
||||
if (index == 0)
|
||||
{
|
||||
return BasicBlockType.Entry;
|
||||
}
|
||||
|
||||
if (index == blockCount - 1)
|
||||
{
|
||||
return BasicBlockType.Exit;
|
||||
}
|
||||
|
||||
if (IsConditionalBranch(tailOpcode))
|
||||
{
|
||||
return BasicBlockType.ConditionalBranch;
|
||||
}
|
||||
|
||||
if (IsUnconditionalJump(tailOpcode))
|
||||
{
|
||||
return BasicBlockType.UnconditionalJump;
|
||||
}
|
||||
|
||||
return BasicBlockType.Normal;
|
||||
}
|
||||
|
||||
private static bool IsConditionalBranch(byte opcode)
|
||||
{
|
||||
return (opcode >= 0x70 && opcode <= 0x7F) || opcode == 0x0F;
|
||||
}
|
||||
|
||||
private static bool IsUnconditionalJump(byte opcode)
|
||||
{
|
||||
return opcode is 0xE9 or 0xEB;
|
||||
}
|
||||
|
||||
private static byte[] NormalizeOpcodeBytes(byte[] chunk, bool normalizeOperands)
|
||||
{
|
||||
if (!normalizeOperands)
|
||||
{
|
||||
return chunk;
|
||||
}
|
||||
|
||||
var normalized = new byte[chunk.Length];
|
||||
for (var i = 0; i < chunk.Length; i++)
|
||||
{
|
||||
normalized[i] = (byte)((i & 1) == 0 ? chunk[i] : (chunk[i] & 0xF0));
|
||||
}
|
||||
|
||||
return normalized;
|
||||
}
|
||||
|
||||
private static string ComputeCfgHash(ImmutableArray<BasicBlockHash> blocks)
|
||||
{
|
||||
if (blocks.IsDefaultOrEmpty)
|
||||
{
|
||||
return ComputeHash("cfg-empty");
|
||||
}
|
||||
|
||||
var seedParts = blocks
|
||||
.OrderBy(x => x.BlockId, StringComparer.Ordinal)
|
||||
.Select(block =>
|
||||
{
|
||||
var successors = string.Join(",", block.Successors.OrderBy(x => x, StringComparer.Ordinal));
|
||||
return $"{block.BlockId}:{block.OpcodeHash[..16]}:{successors}";
|
||||
});
|
||||
|
||||
return ComputeHash(string.Join("|", seedParts));
|
||||
}
|
||||
|
||||
private static ReadOnlyMemory<byte> ResolveFunctionWindow(
|
||||
byte[] sampleBytes,
|
||||
ulong address,
|
||||
FingerprintExtractionOptions options)
|
||||
{
|
||||
if (sampleBytes.Length == 0)
|
||||
{
|
||||
return ReadOnlyMemory<byte>.Empty;
|
||||
}
|
||||
|
||||
var maxWindow = (int)Math.Min(options.MaxFunctionSize, 4096UL);
|
||||
if (maxWindow <= 0)
|
||||
{
|
||||
maxWindow = DefaultFunctionWindowBytes;
|
||||
}
|
||||
|
||||
var windowLength = Math.Min(maxWindow, sampleBytes.Length);
|
||||
var offset = (int)(address % (ulong)sampleBytes.Length);
|
||||
if (offset + windowLength > sampleBytes.Length)
|
||||
{
|
||||
offset = Math.Max(0, sampleBytes.Length - windowLength);
|
||||
}
|
||||
|
||||
return sampleBytes.AsMemory(offset, windowLength);
|
||||
}
|
||||
|
||||
private static async Task<BinaryContext?> GetBinaryContextAsync(
|
||||
string binaryPath,
|
||||
CancellationToken ct)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(binaryPath) || !File.Exists(binaryPath))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
await using var stream = new FileStream(
|
||||
binaryPath,
|
||||
FileMode.Open,
|
||||
FileAccess.Read,
|
||||
FileShare.Read,
|
||||
bufferSize: 81920,
|
||||
useAsync: true);
|
||||
|
||||
var length = (int)Math.Min(stream.Length, SampleLimitBytes);
|
||||
var buffer = new byte[length];
|
||||
var read = 0;
|
||||
|
||||
while (read < length)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
var chunk = await stream.ReadAsync(buffer.AsMemory(read, length - read), ct).ConfigureAwait(false);
|
||||
if (chunk == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
read += chunk;
|
||||
}
|
||||
|
||||
if (read == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (read < buffer.Length)
|
||||
{
|
||||
Array.Resize(ref buffer, read);
|
||||
}
|
||||
|
||||
return new BinaryContext(ComputeHash(buffer), buffer);
|
||||
}
|
||||
|
||||
private static ulong DeriveAddress(string seed)
|
||||
{
|
||||
var hash = SHA256.HashData(Encoding.UTF8.GetBytes(seed));
|
||||
ulong value = 0;
|
||||
|
||||
for (var i = 0; i < 8; i++)
|
||||
{
|
||||
value = (value << 8) | hash[i];
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,559 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Analysis/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Fingerprints": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GoldenSet": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Analysis.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.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.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Npgsql/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Npgsql.dll": {
|
||||
"assemblyVersion": "10.0.1.0",
|
||||
"fileVersion": "10.0.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"YamlDotNet/16.3.0": {
|
||||
"runtime": {
|
||||
"lib/net8.0/YamlDotNet.dll": {
|
||||
"assemblyVersion": "16.0.0.0",
|
||||
"fileVersion": "16.3.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.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.Fingerprints/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0",
|
||||
"StellaOps.BinaryIndex.DeltaSig": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Fingerprints.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.GoldenSet/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.Http": "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",
|
||||
"Npgsql": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0",
|
||||
"YamlDotNet": "16.3.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GoldenSet.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Analysis/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.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.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.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"
|
||||
},
|
||||
"Npgsql/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-XyUcxEfqlFomhNTG/ZdGlec+uSOQArKz0Mzz8jYKP/Jj9GM2YabU5CVZtp0yiC4f9hRp+tRZTnHMatJeJ3rwgw==",
|
||||
"path": "npgsql/10.0.1",
|
||||
"hashPath": "npgsql.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"YamlDotNet/16.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-SgMOdxbz8X65z8hraIs6hOEdnkH6hESTAIUa7viEngHOYaH+6q5XJmwr1+yb9vJpNQ19hCQY69xbFsLtXpobQA==",
|
||||
"path": "yamldotnet/16.3.0",
|
||||
"hashPath": "yamldotnet.16.3.0.nupkg.sha512"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.DeltaSig/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.Fingerprints/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.GoldenSet/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,709 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>StellaOps.BinaryIndex.Fingerprints</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on basic block hashing.
|
||||
|
||||
Algorithm:
|
||||
1. Disassemble function to basic blocks using IDisassemblyService
|
||||
2. Normalize instructions (remove absolute addresses)
|
||||
3. Extract CFG using CfgExtractor
|
||||
4. Hash each basic block
|
||||
5. Combine block hashes with CFG topology
|
||||
|
||||
Produces a 16-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.#ctor(Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator},StellaOps.BinaryIndex.Disassembly.DisassemblyService,StellaOps.BinaryIndex.Normalization.NormalizationService)">
|
||||
<summary>
|
||||
Creates a new BasicBlockFingerprintGenerator with disassembly support.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.#ctor(Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator})">
|
||||
<summary>
|
||||
Creates a BasicBlockFingerprintGenerator without disassembly (falls back to heuristics).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.GenerateWithDisassemblyAsync(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates fingerprint using proper disassembly and CFG extraction.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.GenerateWithHeuristics(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput)">
|
||||
<summary>
|
||||
Generates fingerprint using byte-level heuristics (fallback).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.IdentifyBasicBlocksHeuristic(System.Byte[],System.String)">
|
||||
<summary>
|
||||
Identifies basic blocks in the binary data using byte heuristics.
|
||||
A basic block ends at: jump, call, return, or conditional branch.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.CombineBlockHashes(System.Collections.Generic.List{System.Byte[]},System.Int32)">
|
||||
<summary>
|
||||
Combines block hashes with edge count to produce final fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.CombinedFingerprintGenerator">
|
||||
<summary>
|
||||
Combines multiple fingerprinting algorithms into an ensemble fingerprint.
|
||||
Uses weighted combination of BasicBlock, ControlFlowGraph, and StringRefs.
|
||||
|
||||
This provides the most robust fingerprint by combining structural and
|
||||
semantic features from all algorithms.
|
||||
|
||||
Produces a 48-byte fingerprint (16 + 32 + optional 16 for string refs).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.ControlFlowGraphFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on control flow graph structure.
|
||||
|
||||
Algorithm:
|
||||
1. Build CFG from disassembly
|
||||
2. Extract graph properties (node count, edge count, cyclomatic complexity)
|
||||
3. Compute structural hash (adjacency matrix or graph kernel)
|
||||
|
||||
Resilient to instruction reordering, captures loop and branch structure.
|
||||
Produces a 32-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.ControlFlowGraphFingerprintGenerator.CfgNode">
|
||||
<summary>
|
||||
Represents a node in the control flow graph.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput">
|
||||
<summary>
|
||||
Input data for fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.BinaryData">
|
||||
<summary>Raw binary data of the function or code section.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Architecture">
|
||||
<summary>Target architecture (e.g., "x86_64", "aarch64").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.FunctionName">
|
||||
<summary>Function name if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.BaseAddress">
|
||||
<summary>Base address for disassembly normalization.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.CveId">
|
||||
<summary>CVE identifier this fingerprint is for.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Component">
|
||||
<summary>Component name (e.g., "openssl").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.SourceFile">
|
||||
<summary>Source file path if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.SourceLine">
|
||||
<summary>Source line number if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Purl">
|
||||
<summary>Package URL if known.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput">
|
||||
<summary>
|
||||
Output from fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Hash">
|
||||
<summary>Fingerprint hash bytes.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.FingerprintId">
|
||||
<summary>Unique fingerprint identifier (hex-encoded).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Algorithm">
|
||||
<summary>Algorithm used for generation.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Confidence">
|
||||
<summary>Generation confidence score (0.0-1.0).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Metadata">
|
||||
<summary>Additional metadata from generation.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata">
|
||||
<summary>
|
||||
Additional metadata extracted during fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.BasicBlockCount">
|
||||
<summary>Number of basic blocks in the function.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.EdgeCount">
|
||||
<summary>Number of edges in the control flow graph.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.CyclomaticComplexity">
|
||||
<summary>Cyclomatic complexity.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.StringRefCount">
|
||||
<summary>Number of string references.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.InstructionCount">
|
||||
<summary>Instruction count.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.FunctionSize">
|
||||
<summary>Function size in bytes.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator">
|
||||
<summary>
|
||||
Interface for vulnerability fingerprint generators.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.Algorithm">
|
||||
<summary>
|
||||
Algorithm type produced by this generator.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.GenerateAsync(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates a fingerprint from the given input.
|
||||
</summary>
|
||||
<param name="input">Input data for fingerprint generation.</param>
|
||||
<param name="ct">Cancellation token.</param>
|
||||
<returns>Generated fingerprint output.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.CanProcess(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput)">
|
||||
<summary>
|
||||
Checks if this generator can process the given input.
|
||||
</summary>
|
||||
<param name="input">Input to validate.</param>
|
||||
<returns>True if the generator can process this input.</returns>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.StringRefsFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on string references in code.
|
||||
|
||||
Algorithm:
|
||||
1. Extract string constants referenced by function
|
||||
2. Hash string content (normalized)
|
||||
3. Include reference order/pattern
|
||||
|
||||
Useful for error message patterns and version strings.
|
||||
Produces a 16-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.StringRefsFingerprintGenerator.ExtractStringReferences(System.Byte[])">
|
||||
<summary>
|
||||
Extracts ASCII/UTF-8 string references from binary data.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository">
|
||||
<summary>
|
||||
Repository for vulnerable fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.CreateAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a new fingerprint record.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.GetByIdAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a fingerprint by ID.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.GetByCveAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all fingerprints for a CVE.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.SearchByHashAsync(System.Byte[],StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Searches for fingerprints by hash.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.UpdateValidationStatsAsync(System.Guid,StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates validation statistics for a fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository">
|
||||
<summary>
|
||||
Repository for fingerprint matches.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.CreateAsync(StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a new match record.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.GetByScanAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all matches for a scan.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.UpdateReachabilityAsync(System.Guid,StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates reachability status for a match.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher">
|
||||
<summary>
|
||||
Implementation of fingerprint matching using multiple similarity metrics.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateBasicBlockSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity using TLSH-like algorithm for basic blocks.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateCfgSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for CFG fingerprints using structural comparison.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateStringRefsSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for string reference fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateCombinedSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for combined fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateHashSimilarity(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<summary>
|
||||
General hash similarity using normalized Hamming distance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult">
|
||||
<summary>
|
||||
Result of a fingerprint matching operation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.IsMatch">
|
||||
<summary>Whether a match was found.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Similarity">
|
||||
<summary>Similarity score (0.0-1.0).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.MatchedFingerprint">
|
||||
<summary>Matched fingerprint if found.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Confidence">
|
||||
<summary>Match confidence score.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Details">
|
||||
<summary>Additional match details.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails">
|
||||
<summary>
|
||||
Details about how a match was determined.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.MatchingAlgorithm">
|
||||
<summary>Which algorithm found the match.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.BasicBlockSimilarity">
|
||||
<summary>Basic block similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.CfgSimilarity">
|
||||
<summary>CFG similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.StringRefsSimilarity">
|
||||
<summary>String refs similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.CandidatesEvaluated">
|
||||
<summary>Number of candidate fingerprints evaluated.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.MatchTimeMs">
|
||||
<summary>Time taken for matching in milliseconds.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions">
|
||||
<summary>
|
||||
Options for fingerprint matching.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.MinSimilarity">
|
||||
<summary>Minimum similarity threshold (0.0-1.0). Default 0.95.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.MaxCandidates">
|
||||
<summary>Maximum candidates to evaluate. Default 100.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.Algorithms">
|
||||
<summary>Algorithms to use for matching. Empty means all.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.RequireValidated">
|
||||
<summary>Whether to require validation of matched fingerprint.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.Architecture">
|
||||
<summary>Architecture filter. Null means any.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher">
|
||||
<summary>
|
||||
Interface for fingerprint matching operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.MatchAsync(System.Byte[],StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Matches a fingerprint against the vulnerability database.
|
||||
</summary>
|
||||
<param name="fingerprint">Fingerprint to match.</param>
|
||||
<param name="options">Matching options.</param>
|
||||
<param name="ct">Cancellation token.</param>
|
||||
<returns>Match result.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.MatchBatchAsync(System.Collections.Generic.IEnumerable{System.Byte[]},StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Matches multiple fingerprints in batch.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.CalculateSimilarity(System.Byte[],System.Byte[],StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm)">
|
||||
<summary>
|
||||
Calculates similarity between two fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint">
|
||||
<summary>
|
||||
Represents a fingerprint of a vulnerable function.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Id">
|
||||
<summary>Unique fingerprint identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.CveId">
|
||||
<summary>CVE identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Component">
|
||||
<summary>Component name (e.g., "openssl")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Purl">
|
||||
<summary>Package URL (PURL) if applicable</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Algorithm">
|
||||
<summary>Fingerprinting algorithm used</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FingerprintId">
|
||||
<summary>Fingerprint identifier (hex string)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FingerprintHash">
|
||||
<summary>Fingerprint hash bytes</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Architecture">
|
||||
<summary>Target architecture (e.g., "x86_64")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FunctionName">
|
||||
<summary>Function name if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SourceFile">
|
||||
<summary>Source file if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SourceLine">
|
||||
<summary>Source line if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SimilarityThreshold">
|
||||
<summary>Similarity threshold for matching (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Confidence">
|
||||
<summary>Confidence score (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Validated">
|
||||
<summary>Whether this fingerprint has been validated</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.ValidationStats">
|
||||
<summary>Validation statistics</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.VulnBuildRef">
|
||||
<summary>Reference to vulnerable build artifact</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FixedBuildRef">
|
||||
<summary>Reference to fixed build artifact</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.IndexedAt">
|
||||
<summary>Timestamp when this fingerprint was indexed</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm">
|
||||
<summary>
|
||||
Fingerprinting algorithm types.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.BasicBlock">
|
||||
<summary>Basic block level fingerprinting</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.ControlFlowGraph">
|
||||
<summary>Control flow graph based</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.StringRefs">
|
||||
<summary>String reference based</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.Combined">
|
||||
<summary>Combined algorithm</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats">
|
||||
<summary>
|
||||
Validation statistics for a fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.TruePositives">
|
||||
<summary>Number of true positive matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.FalsePositives">
|
||||
<summary>Number of false positive matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.TrueNegatives">
|
||||
<summary>Number of true negative non-matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.FalseNegatives">
|
||||
<summary>Number of false negative non-matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.Precision">
|
||||
<summary>Precision: TP / (TP + FP)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.Recall">
|
||||
<summary>Recall: TP / (TP + FN)</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch">
|
||||
<summary>
|
||||
Represents a fingerprint match result.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Id">
|
||||
<summary>Match identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.ScanId">
|
||||
<summary>Scan identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Type">
|
||||
<summary>Match type</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.BinaryKey">
|
||||
<summary>Binary key that was matched</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.VulnerablePurl">
|
||||
<summary>Vulnerable package PURL</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.VulnerableVersion">
|
||||
<summary>Vulnerable version</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedFingerprintId">
|
||||
<summary>Matched fingerprint ID</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedFunction">
|
||||
<summary>Matched function name</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Similarity">
|
||||
<summary>Similarity score (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.AdvisoryIds">
|
||||
<summary>Associated advisory IDs (CVEs, etc.)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.ReachabilityStatus">
|
||||
<summary>Reachability status</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedAt">
|
||||
<summary>Timestamp when match occurred</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.MatchType">
|
||||
<summary>
|
||||
Match type enumeration.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.Fingerprint">
|
||||
<summary>Match via fingerprint comparison</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.BuildId">
|
||||
<summary>Match via Build-ID</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.HashExact">
|
||||
<summary>Exact hash match</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus">
|
||||
<summary>
|
||||
Reachability status for matched vulnerabilities.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Reachable">
|
||||
<summary>Vulnerable function is reachable</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Unreachable">
|
||||
<summary>Vulnerable function is unreachable</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Unknown">
|
||||
<summary>Reachability unknown</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Partial">
|
||||
<summary>Partial reachability</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest">
|
||||
<summary>
|
||||
Request for building reference binaries.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.CveId">
|
||||
<summary>CVE identifier.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.Component">
|
||||
<summary>Component name (e.g., "openssl").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.RepoUrl">
|
||||
<summary>Git repository URL.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.VulnerableRef">
|
||||
<summary>Vulnerable commit or tag.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.FixedRef">
|
||||
<summary>Fixed commit or tag.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.Architectures">
|
||||
<summary>Target architectures.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.BuildCommand">
|
||||
<summary>Build command template.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.TargetFunctions">
|
||||
<summary>Function names to fingerprint (optional).</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult">
|
||||
<summary>
|
||||
Result of a reference build pipeline run.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Success">
|
||||
<summary>Whether the pipeline succeeded.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Error">
|
||||
<summary>Error message if failed.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Fingerprints">
|
||||
<summary>Generated fingerprints.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.VulnBuildPath">
|
||||
<summary>Storage path for vulnerable build.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.FixedBuildPath">
|
||||
<summary>Storage path for fixed build.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.BuildLog">
|
||||
<summary>Build log.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact">
|
||||
<summary>
|
||||
Represents a built binary artifact.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Path">
|
||||
<summary>Path within build output.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Content">
|
||||
<summary>Binary content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Architecture">
|
||||
<summary>Target architecture.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.IsVulnerable">
|
||||
<summary>Whether this is the vulnerable or fixed version.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction">
|
||||
<summary>
|
||||
Represents a function extracted from a binary for fingerprinting.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Name">
|
||||
<summary>Function name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Data">
|
||||
<summary>Function binary data.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Offset">
|
||||
<summary>Start offset in original binary.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Size">
|
||||
<summary>Size in bytes.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.SourceFile">
|
||||
<summary>Source file if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.SourceLine">
|
||||
<summary>Source line if known.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline">
|
||||
<summary>
|
||||
Pipeline for generating reference builds and extracting vulnerability fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.ExecuteAsync(StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Executes the full reference build pipeline.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.GenerateDifferentialFingerprintsAsync(StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest,System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates differential fingerprints by comparing vulnerable and fixed versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.FindChangedFunctions(System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction})">
|
||||
<summary>
|
||||
Finds functions that changed between vulnerable and fixed versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.StoreReferenceBuildAsync(System.String,System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact},System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores reference build artifacts to blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage">
|
||||
<summary>
|
||||
Blob storage implementation for fingerprints.
|
||||
NOTE: This is a placeholder implementation showing deterministic storage paths.
|
||||
Production implementation would use RustFS or S3-compatible storage with atomic writes.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage.StoreFingerprintAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fingerprint data to blob storage.
|
||||
Layout: {BasePath}/{algorithm}/{prefix}/{fingerprint_id}.bin
|
||||
where prefix is first 2 chars of fingerprint_id for sharding.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage.StoreReferenceBuildAsync(System.String,System.String,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores reference build artifacts.
|
||||
Layout: {BasePath}/refbuilds/{cve_id}/{build_type}.tar.zst
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage">
|
||||
<summary>
|
||||
Interface for fingerprint blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.StoreFingerprintAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fingerprint data to blob storage.
|
||||
</summary>
|
||||
<param name="fingerprint">Fingerprint metadata</param>
|
||||
<param name="fullData">Full fingerprint data blob</param>
|
||||
<param name="ct">Cancellation token</param>
|
||||
<returns>Storage path</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.RetrieveFingerprintAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Retrieves fingerprint data from blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.StoreReferenceBuildAsync(System.String,System.String,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores a reference build artifact (vulnerable or fixed version).
|
||||
</summary>
|
||||
<param name="cveId">CVE identifier</param>
|
||||
<param name="buildType">"vulnerable" or "fixed"</param>
|
||||
<param name="buildArtifact">Build artifact data (tar.zst compressed)</param>
|
||||
<param name="ct">Cancellation token</param>
|
||||
<returns>Storage path</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.RetrieveReferenceBuildAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Retrieves a reference build artifact.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,9 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
|
||||
| Task ID | Status | Notes |
|
||||
| --- | --- | --- |
|
||||
| QA-BINIDX-B1-002 | DOING | SPRINT_20260212_001 run-001: verifying `reproducible-build-verification` (Tier 0/1/2). |
|
||||
| QA-BINARYINDEX-VERIFY-020 | BLOCKED | SPRINT_20260211_033 run-001: blocked because required module-local AGENTS are missing for `src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Diff` and `src/BinaryIndex/__Tests/StellaOps.BinaryIndex.Diff.Tests` (repo AGENTS rule 5). |
|
||||
| QA-BINARYINDEX-VERIFY-010 | DONE | SPRINT_20260211_030 run-001: `binary-symbol-table-diff-engine` passed Tier 0/1/2 and moved to `docs/features/checked/binaryindex/`. |
|
||||
| AUDIT-0112-M | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0112-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0112-A | DONE | Applied audit fixes + tests; revalidated 2026-01-06. |
|
||||
|
||||
@@ -0,0 +1,418 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Builders/1.0.0": {
|
||||
"dependencies": {
|
||||
"Docker.DotNet": "3.125.15",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Fingerprints": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Builders.dll": {}
|
||||
}
|
||||
},
|
||||
"Docker.DotNet/3.125.15": {
|
||||
"dependencies": {
|
||||
"Newtonsoft.Json": "13.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/Docker.DotNet.dll": {
|
||||
"assemblyVersion": "3.125.0.0",
|
||||
"fileVersion": "3.125.15.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Newtonsoft.Json/13.0.1": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Newtonsoft.Json.dll": {
|
||||
"assemblyVersion": "13.0.0.0",
|
||||
"fileVersion": "13.0.1.25517"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.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.Fingerprints/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0",
|
||||
"StellaOps.BinaryIndex.DeltaSig": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Fingerprints.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Builders/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Docker.DotNet/3.125.15": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-XN8FKxVv8Mjmwu104/Hl9lM61pLY675s70gzwSj8KR5pwblo8HfWLcCuinh9kYsqujBkMH4HVRCEcRuU6al4BQ==",
|
||||
"path": "docker.dotnet/3.125.15",
|
||||
"hashPath": "docker.dotnet.3.125.15.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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.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"
|
||||
},
|
||||
"Newtonsoft.Json/13.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
|
||||
"path": "newtonsoft.json/13.0.1",
|
||||
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.DeltaSig/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.Fingerprints/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,709 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>StellaOps.BinaryIndex.Fingerprints</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on basic block hashing.
|
||||
|
||||
Algorithm:
|
||||
1. Disassemble function to basic blocks using IDisassemblyService
|
||||
2. Normalize instructions (remove absolute addresses)
|
||||
3. Extract CFG using CfgExtractor
|
||||
4. Hash each basic block
|
||||
5. Combine block hashes with CFG topology
|
||||
|
||||
Produces a 16-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.#ctor(Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator},StellaOps.BinaryIndex.Disassembly.DisassemblyService,StellaOps.BinaryIndex.Normalization.NormalizationService)">
|
||||
<summary>
|
||||
Creates a new BasicBlockFingerprintGenerator with disassembly support.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.#ctor(Microsoft.Extensions.Logging.ILogger{StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator})">
|
||||
<summary>
|
||||
Creates a BasicBlockFingerprintGenerator without disassembly (falls back to heuristics).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.GenerateWithDisassemblyAsync(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates fingerprint using proper disassembly and CFG extraction.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.GenerateWithHeuristics(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput)">
|
||||
<summary>
|
||||
Generates fingerprint using byte-level heuristics (fallback).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.IdentifyBasicBlocksHeuristic(System.Byte[],System.String)">
|
||||
<summary>
|
||||
Identifies basic blocks in the binary data using byte heuristics.
|
||||
A basic block ends at: jump, call, return, or conditional branch.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.BasicBlockFingerprintGenerator.CombineBlockHashes(System.Collections.Generic.List{System.Byte[]},System.Int32)">
|
||||
<summary>
|
||||
Combines block hashes with edge count to produce final fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.CombinedFingerprintGenerator">
|
||||
<summary>
|
||||
Combines multiple fingerprinting algorithms into an ensemble fingerprint.
|
||||
Uses weighted combination of BasicBlock, ControlFlowGraph, and StringRefs.
|
||||
|
||||
This provides the most robust fingerprint by combining structural and
|
||||
semantic features from all algorithms.
|
||||
|
||||
Produces a 48-byte fingerprint (16 + 32 + optional 16 for string refs).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.ControlFlowGraphFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on control flow graph structure.
|
||||
|
||||
Algorithm:
|
||||
1. Build CFG from disassembly
|
||||
2. Extract graph properties (node count, edge count, cyclomatic complexity)
|
||||
3. Compute structural hash (adjacency matrix or graph kernel)
|
||||
|
||||
Resilient to instruction reordering, captures loop and branch structure.
|
||||
Produces a 32-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.ControlFlowGraphFingerprintGenerator.CfgNode">
|
||||
<summary>
|
||||
Represents a node in the control flow graph.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput">
|
||||
<summary>
|
||||
Input data for fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.BinaryData">
|
||||
<summary>Raw binary data of the function or code section.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Architecture">
|
||||
<summary>Target architecture (e.g., "x86_64", "aarch64").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.FunctionName">
|
||||
<summary>Function name if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.BaseAddress">
|
||||
<summary>Base address for disassembly normalization.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.CveId">
|
||||
<summary>CVE identifier this fingerprint is for.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Component">
|
||||
<summary>Component name (e.g., "openssl").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.SourceFile">
|
||||
<summary>Source file path if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.SourceLine">
|
||||
<summary>Source line number if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput.Purl">
|
||||
<summary>Package URL if known.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput">
|
||||
<summary>
|
||||
Output from fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Hash">
|
||||
<summary>Fingerprint hash bytes.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.FingerprintId">
|
||||
<summary>Unique fingerprint identifier (hex-encoded).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Algorithm">
|
||||
<summary>Algorithm used for generation.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Confidence">
|
||||
<summary>Generation confidence score (0.0-1.0).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintOutput.Metadata">
|
||||
<summary>Additional metadata from generation.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata">
|
||||
<summary>
|
||||
Additional metadata extracted during fingerprint generation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.BasicBlockCount">
|
||||
<summary>Number of basic blocks in the function.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.EdgeCount">
|
||||
<summary>Number of edges in the control flow graph.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.CyclomaticComplexity">
|
||||
<summary>Cyclomatic complexity.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.StringRefCount">
|
||||
<summary>Number of string references.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.InstructionCount">
|
||||
<summary>Instruction count.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintMetadata.FunctionSize">
|
||||
<summary>Function size in bytes.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator">
|
||||
<summary>
|
||||
Interface for vulnerability fingerprint generators.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.Algorithm">
|
||||
<summary>
|
||||
Algorithm type produced by this generator.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.GenerateAsync(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates a fingerprint from the given input.
|
||||
</summary>
|
||||
<param name="input">Input data for fingerprint generation.</param>
|
||||
<param name="ct">Cancellation token.</param>
|
||||
<returns>Generated fingerprint output.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.IVulnFingerprintGenerator.CanProcess(StellaOps.BinaryIndex.Fingerprints.Generators.FingerprintInput)">
|
||||
<summary>
|
||||
Checks if this generator can process the given input.
|
||||
</summary>
|
||||
<param name="input">Input to validate.</param>
|
||||
<returns>True if the generator can process this input.</returns>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Generators.StringRefsFingerprintGenerator">
|
||||
<summary>
|
||||
Generates fingerprints based on string references in code.
|
||||
|
||||
Algorithm:
|
||||
1. Extract string constants referenced by function
|
||||
2. Hash string content (normalized)
|
||||
3. Include reference order/pattern
|
||||
|
||||
Useful for error message patterns and version strings.
|
||||
Produces a 16-byte fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Generators.StringRefsFingerprintGenerator.ExtractStringReferences(System.Byte[])">
|
||||
<summary>
|
||||
Extracts ASCII/UTF-8 string references from binary data.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository">
|
||||
<summary>
|
||||
Repository for vulnerable fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.CreateAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a new fingerprint record.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.GetByIdAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a fingerprint by ID.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.GetByCveAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all fingerprints for a CVE.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.SearchByHashAsync(System.Byte[],StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Searches for fingerprints by hash.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintRepository.UpdateValidationStatsAsync(System.Guid,StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates validation statistics for a fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository">
|
||||
<summary>
|
||||
Repository for fingerprint matches.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.CreateAsync(StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a new match record.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.GetByScanAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all matches for a scan.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.IFingerprintMatchRepository.UpdateReachabilityAsync(System.Guid,StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates reachability status for a match.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher">
|
||||
<summary>
|
||||
Implementation of fingerprint matching using multiple similarity metrics.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateBasicBlockSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity using TLSH-like algorithm for basic blocks.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateCfgSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for CFG fingerprints using structural comparison.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateStringRefsSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for string reference fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateCombinedSimilarity(System.Byte[],System.Byte[])">
|
||||
<summary>
|
||||
Calculates similarity for combined fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatcher.CalculateHashSimilarity(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||
<summary>
|
||||
General hash similarity using normalized Hamming distance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult">
|
||||
<summary>
|
||||
Result of a fingerprint matching operation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.IsMatch">
|
||||
<summary>Whether a match was found.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Similarity">
|
||||
<summary>Similarity score (0.0-1.0).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.MatchedFingerprint">
|
||||
<summary>Matched fingerprint if found.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Confidence">
|
||||
<summary>Match confidence score.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.FingerprintMatchResult.Details">
|
||||
<summary>Additional match details.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails">
|
||||
<summary>
|
||||
Details about how a match was determined.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.MatchingAlgorithm">
|
||||
<summary>Which algorithm found the match.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.BasicBlockSimilarity">
|
||||
<summary>Basic block similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.CfgSimilarity">
|
||||
<summary>CFG similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.StringRefsSimilarity">
|
||||
<summary>String refs similarity if applicable.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.CandidatesEvaluated">
|
||||
<summary>Number of candidate fingerprints evaluated.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchDetails.MatchTimeMs">
|
||||
<summary>Time taken for matching in milliseconds.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions">
|
||||
<summary>
|
||||
Options for fingerprint matching.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.MinSimilarity">
|
||||
<summary>Minimum similarity threshold (0.0-1.0). Default 0.95.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.MaxCandidates">
|
||||
<summary>Maximum candidates to evaluate. Default 100.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.Algorithms">
|
||||
<summary>Algorithms to use for matching. Empty means all.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.RequireValidated">
|
||||
<summary>Whether to require validation of matched fingerprint.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions.Architecture">
|
||||
<summary>Architecture filter. Null means any.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher">
|
||||
<summary>
|
||||
Interface for fingerprint matching operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.MatchAsync(System.Byte[],StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Matches a fingerprint against the vulnerability database.
|
||||
</summary>
|
||||
<param name="fingerprint">Fingerprint to match.</param>
|
||||
<param name="options">Matching options.</param>
|
||||
<param name="ct">Cancellation token.</param>
|
||||
<returns>Match result.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.MatchBatchAsync(System.Collections.Generic.IEnumerable{System.Byte[]},StellaOps.BinaryIndex.Fingerprints.Matching.MatchOptions,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Matches multiple fingerprints in batch.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Matching.IFingerprintMatcher.CalculateSimilarity(System.Byte[],System.Byte[],StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm)">
|
||||
<summary>
|
||||
Calculates similarity between two fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint">
|
||||
<summary>
|
||||
Represents a fingerprint of a vulnerable function.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Id">
|
||||
<summary>Unique fingerprint identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.CveId">
|
||||
<summary>CVE identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Component">
|
||||
<summary>Component name (e.g., "openssl")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Purl">
|
||||
<summary>Package URL (PURL) if applicable</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Algorithm">
|
||||
<summary>Fingerprinting algorithm used</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FingerprintId">
|
||||
<summary>Fingerprint identifier (hex string)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FingerprintHash">
|
||||
<summary>Fingerprint hash bytes</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Architecture">
|
||||
<summary>Target architecture (e.g., "x86_64")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FunctionName">
|
||||
<summary>Function name if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SourceFile">
|
||||
<summary>Source file if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SourceLine">
|
||||
<summary>Source line if known</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.SimilarityThreshold">
|
||||
<summary>Similarity threshold for matching (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Confidence">
|
||||
<summary>Confidence score (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.Validated">
|
||||
<summary>Whether this fingerprint has been validated</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.ValidationStats">
|
||||
<summary>Validation statistics</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.VulnBuildRef">
|
||||
<summary>Reference to vulnerable build artifact</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.FixedBuildRef">
|
||||
<summary>Reference to fixed build artifact</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint.IndexedAt">
|
||||
<summary>Timestamp when this fingerprint was indexed</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm">
|
||||
<summary>
|
||||
Fingerprinting algorithm types.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.BasicBlock">
|
||||
<summary>Basic block level fingerprinting</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.ControlFlowGraph">
|
||||
<summary>Control flow graph based</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.StringRefs">
|
||||
<summary>String reference based</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintAlgorithm.Combined">
|
||||
<summary>Combined algorithm</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats">
|
||||
<summary>
|
||||
Validation statistics for a fingerprint.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.TruePositives">
|
||||
<summary>Number of true positive matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.FalsePositives">
|
||||
<summary>Number of false positive matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.TrueNegatives">
|
||||
<summary>Number of true negative non-matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.FalseNegatives">
|
||||
<summary>Number of false negative non-matches</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.Precision">
|
||||
<summary>Precision: TP / (TP + FP)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintValidationStats.Recall">
|
||||
<summary>Recall: TP / (TP + FN)</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch">
|
||||
<summary>
|
||||
Represents a fingerprint match result.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Id">
|
||||
<summary>Match identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.ScanId">
|
||||
<summary>Scan identifier</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Type">
|
||||
<summary>Match type</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.BinaryKey">
|
||||
<summary>Binary key that was matched</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.VulnerablePurl">
|
||||
<summary>Vulnerable package PURL</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.VulnerableVersion">
|
||||
<summary>Vulnerable version</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedFingerprintId">
|
||||
<summary>Matched fingerprint ID</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedFunction">
|
||||
<summary>Matched function name</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.Similarity">
|
||||
<summary>Similarity score (0.0-1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.AdvisoryIds">
|
||||
<summary>Associated advisory IDs (CVEs, etc.)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.ReachabilityStatus">
|
||||
<summary>Reachability status</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Models.FingerprintMatch.MatchedAt">
|
||||
<summary>Timestamp when match occurred</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.MatchType">
|
||||
<summary>
|
||||
Match type enumeration.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.Fingerprint">
|
||||
<summary>Match via fingerprint comparison</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.BuildId">
|
||||
<summary>Match via Build-ID</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.MatchType.HashExact">
|
||||
<summary>Exact hash match</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus">
|
||||
<summary>
|
||||
Reachability status for matched vulnerabilities.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Reachable">
|
||||
<summary>Vulnerable function is reachable</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Unreachable">
|
||||
<summary>Vulnerable function is unreachable</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Unknown">
|
||||
<summary>Reachability unknown</summary>
|
||||
</member>
|
||||
<member name="F:StellaOps.BinaryIndex.Fingerprints.Models.ReachabilityStatus.Partial">
|
||||
<summary>Partial reachability</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest">
|
||||
<summary>
|
||||
Request for building reference binaries.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.CveId">
|
||||
<summary>CVE identifier.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.Component">
|
||||
<summary>Component name (e.g., "openssl").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.RepoUrl">
|
||||
<summary>Git repository URL.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.VulnerableRef">
|
||||
<summary>Vulnerable commit or tag.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.FixedRef">
|
||||
<summary>Fixed commit or tag.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.Architectures">
|
||||
<summary>Target architectures.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.BuildCommand">
|
||||
<summary>Build command template.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest.TargetFunctions">
|
||||
<summary>Function names to fingerprint (optional).</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult">
|
||||
<summary>
|
||||
Result of a reference build pipeline run.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Success">
|
||||
<summary>Whether the pipeline succeeded.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Error">
|
||||
<summary>Error message if failed.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.Fingerprints">
|
||||
<summary>Generated fingerprints.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.VulnBuildPath">
|
||||
<summary>Storage path for vulnerable build.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.FixedBuildPath">
|
||||
<summary>Storage path for fixed build.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildResult.BuildLog">
|
||||
<summary>Build log.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact">
|
||||
<summary>
|
||||
Represents a built binary artifact.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Path">
|
||||
<summary>Path within build output.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Content">
|
||||
<summary>Binary content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.Architecture">
|
||||
<summary>Target architecture.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact.IsVulnerable">
|
||||
<summary>Whether this is the vulnerable or fixed version.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction">
|
||||
<summary>
|
||||
Represents a function extracted from a binary for fingerprinting.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Name">
|
||||
<summary>Function name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Data">
|
||||
<summary>Function binary data.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Offset">
|
||||
<summary>Start offset in original binary.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.Size">
|
||||
<summary>Size in bytes.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.SourceFile">
|
||||
<summary>Source file if known.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction.SourceLine">
|
||||
<summary>Source line if known.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline">
|
||||
<summary>
|
||||
Pipeline for generating reference builds and extracting vulnerability fingerprints.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.ExecuteAsync(StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Executes the full reference build pipeline.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.GenerateDifferentialFingerprintsAsync(StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildRequest,System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Generates differential fingerprints by comparing vulnerable and fixed versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.FindChangedFunctions(System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction},System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.ExtractedFunction})">
|
||||
<summary>
|
||||
Finds functions that changed between vulnerable and fixed versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Pipeline.ReferenceBuildPipeline.StoreReferenceBuildAsync(System.String,System.Collections.Generic.IReadOnlyList{StellaOps.BinaryIndex.Fingerprints.Pipeline.BuildArtifact},System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores reference build artifacts to blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage">
|
||||
<summary>
|
||||
Blob storage implementation for fingerprints.
|
||||
NOTE: This is a placeholder implementation showing deterministic storage paths.
|
||||
Production implementation would use RustFS or S3-compatible storage with atomic writes.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage.StoreFingerprintAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fingerprint data to blob storage.
|
||||
Layout: {BasePath}/{algorithm}/{prefix}/{fingerprint_id}.bin
|
||||
where prefix is first 2 chars of fingerprint_id for sharding.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.FingerprintBlobStorage.StoreReferenceBuildAsync(System.String,System.String,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores reference build artifacts.
|
||||
Layout: {BasePath}/refbuilds/{cve_id}/{build_type}.tar.zst
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage">
|
||||
<summary>
|
||||
Interface for fingerprint blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.StoreFingerprintAsync(StellaOps.BinaryIndex.Fingerprints.Models.VulnFingerprint,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fingerprint data to blob storage.
|
||||
</summary>
|
||||
<param name="fingerprint">Fingerprint metadata</param>
|
||||
<param name="fullData">Full fingerprint data blob</param>
|
||||
<param name="ct">Cancellation token</param>
|
||||
<returns>Storage path</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.RetrieveFingerprintAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Retrieves fingerprint data from blob storage.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.StoreReferenceBuildAsync(System.String,System.String,System.Byte[],System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores a reference build artifact (vulnerable or fixed version).
|
||||
</summary>
|
||||
<param name="cveId">CVE identifier</param>
|
||||
<param name="buildType">"vulnerable" or "fixed"</param>
|
||||
<param name="buildArtifact">Build artifact data (tar.zst compressed)</param>
|
||||
<param name="ct">Cancellation token</param>
|
||||
<returns>Storage path</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.Fingerprints.Storage.IFingerprintBlobStorage.RetrieveReferenceBuildAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Retrieves a reference build artifact.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -45,6 +45,7 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
_jsonOptions = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
PropertyNameCaseInsensitive = true,
|
||||
WriteIndented = false
|
||||
};
|
||||
}
|
||||
@@ -59,15 +60,15 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
var sw = Stopwatch.StartNew();
|
||||
|
||||
// Try cache first
|
||||
var cached = await GetFromCacheAsync<ImmutableArray<BinaryVulnMatch>>(cacheKey, ct).ConfigureAwait(false);
|
||||
if (!cached.IsDefault)
|
||||
var cached = await GetFromCacheAsync<BinaryVulnMatch[]>(cacheKey, ct).ConfigureAwait(false);
|
||||
if (cached is not null)
|
||||
{
|
||||
sw.Stop();
|
||||
_logger.LogDebug(
|
||||
"Cache hit for identity {BinaryKey} in {ElapsedMs}ms",
|
||||
identity.BinaryKey,
|
||||
sw.Elapsed.TotalMilliseconds);
|
||||
return cached;
|
||||
return cached.ToImmutableArray();
|
||||
}
|
||||
|
||||
// Cache miss - call inner service
|
||||
@@ -75,7 +76,7 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
sw.Stop();
|
||||
|
||||
// Store in cache
|
||||
await SetCacheAsync(cacheKey, result, _options.IdentityTtl, ct).ConfigureAwait(false);
|
||||
await SetCacheAsync(cacheKey, result.ToArray(), _options.IdentityTtl, ct).ConfigureAwait(false);
|
||||
|
||||
_logger.LogDebug(
|
||||
"Cache miss for identity {BinaryKey}, fetched in {ElapsedMs}ms",
|
||||
@@ -121,10 +122,13 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
{
|
||||
try
|
||||
{
|
||||
var matches = JsonSerializer.Deserialize<ImmutableArray<BinaryVulnMatch>>(
|
||||
var matches = JsonSerializer.Deserialize<BinaryVulnMatch[]>(
|
||||
(string)value!, _jsonOptions);
|
||||
results[identity.BinaryKey] = matches;
|
||||
continue;
|
||||
if (matches is not null)
|
||||
{
|
||||
results[identity.BinaryKey] = matches.ToImmutableArray();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -163,7 +167,7 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
if (missLookup.TryGetValue(binaryKey, out var identity))
|
||||
{
|
||||
var cacheKey = BuildIdentityKey(identity, options);
|
||||
var value = JsonSerializer.Serialize(matches, _jsonOptions);
|
||||
var value = JsonSerializer.Serialize(matches.ToArray(), _jsonOptions);
|
||||
|
||||
tasks.Add(batch.StringSetAsync(cacheKey, value, _options.IdentityTtl));
|
||||
}
|
||||
@@ -311,12 +315,12 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
var sw = Stopwatch.StartNew();
|
||||
|
||||
// Try cache first
|
||||
var cached = await GetFromCacheAsync<ImmutableArray<BinaryVulnMatch>>(cacheKey, ct).ConfigureAwait(false);
|
||||
if (!cached.IsDefault)
|
||||
var cached = await GetFromCacheAsync<BinaryVulnMatch[]>(cacheKey, ct).ConfigureAwait(false);
|
||||
if (cached is not null)
|
||||
{
|
||||
sw.Stop();
|
||||
_logger.LogDebug("Cache hit for fingerprint in {ElapsedMs}ms", sw.Elapsed.TotalMilliseconds);
|
||||
return cached;
|
||||
return cached.ToImmutableArray();
|
||||
}
|
||||
|
||||
// Cache miss
|
||||
@@ -324,7 +328,7 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
sw.Stop();
|
||||
|
||||
// Store in cache (shorter TTL for fingerprints as they may change)
|
||||
await SetCacheAsync(cacheKey, result, _options.FingerprintTtl, ct).ConfigureAwait(false);
|
||||
await SetCacheAsync(cacheKey, result.ToArray(), _options.FingerprintTtl, ct).ConfigureAwait(false);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -455,7 +459,7 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
try
|
||||
{
|
||||
var db = await GetDatabaseAsync(ct).ConfigureAwait(false);
|
||||
var value = await db.StringGetAsync(key).WaitAsync(ct).ConfigureAwait(false);
|
||||
var value = await db.StringGetAsync(key, CommandFlags.None).WaitAsync(ct).ConfigureAwait(false);
|
||||
|
||||
if (value.IsNullOrEmpty)
|
||||
{
|
||||
@@ -482,7 +486,14 @@ public sealed class CachedBinaryVulnerabilityService : IBinaryVulnerabilityServi
|
||||
var db = await GetDatabaseAsync(ct).ConfigureAwait(false);
|
||||
var serialized = JsonSerializer.Serialize(value, _jsonOptions);
|
||||
|
||||
await db.StringSetAsync(key, serialized, ttl).WaitAsync(ct).ConfigureAwait(false);
|
||||
await db.StringSetAsync(
|
||||
key,
|
||||
serialized,
|
||||
ttl,
|
||||
When.Always,
|
||||
CommandFlags.None)
|
||||
.WaitAsync(ct)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
|
||||
@@ -5,6 +5,7 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
|
||||
| Task ID | Status | Notes |
|
||||
| --- | --- | --- |
|
||||
| QA-BINARYINDEX-VERIFY-026 | DONE | SPRINT_20260211_033 run-001: verify `known-build-binary-catalog` across Tier 0/1/2 evidence and terminalize dossier state. |
|
||||
| AUDIT-0114-M | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0114-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0114-A | DONE | Applied cache fixes + tests; revalidated 2026-01-06. |
|
||||
|
||||
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Cache/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"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",
|
||||
"Scrutor": "7.0.0",
|
||||
"StackExchange.Redis": "2.10.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0",
|
||||
"StellaOps.BinaryIndex.FixIndex": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Cache.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.DependencyModel/10.0.0": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyModel.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.25.52411"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Pipelines.Sockets.Unofficial/2.2.8": {
|
||||
"runtime": {
|
||||
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "2.2.8.1080"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Scrutor/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyModel": "10.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Scrutor.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StackExchange.Redis/2.10.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Pipelines.Sockets.Unofficial": "2.2.8",
|
||||
"System.IO.Hashing": "9.0.10"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/StackExchange.Redis.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.10.1.65101"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.IO.Hashing/9.0.10": {
|
||||
"runtime": {
|
||||
"lib/net9.0/System.IO.Hashing.dll": {
|
||||
"assemblyVersion": "9.0.0.10",
|
||||
"fileVersion": "9.0.1025.47515"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.FixIndex/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.FixIndex.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Cache/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.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.DependencyModel/10.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-RFYJR7APio/BiqdQunRq6DB+nDB6nc2qhHr77mlvZ0q0BT8PubMXN7XicmfzCbrDE/dzhBnUKBRXLTcqUiZDGg==",
|
||||
"path": "microsoft.extensions.dependencymodel/10.0.0",
|
||||
"hashPath": "microsoft.extensions.dependencymodel.10.0.0.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.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"
|
||||
},
|
||||
"Pipelines.Sockets.Unofficial/2.2.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
|
||||
"path": "pipelines.sockets.unofficial/2.2.8",
|
||||
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
|
||||
},
|
||||
"Scrutor/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-wHWaroody48jnlLoq/REwUltIFLxplXyHTP+sttrc8P7+jkiVqf38afDidJNv4qgD/6zz2NKOYg06xLZ1bG7wQ==",
|
||||
"path": "scrutor/7.0.0",
|
||||
"hashPath": "scrutor.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"StackExchange.Redis/2.10.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-se08WZvD42H3bV4XBW07pupTiE2/72qStKyi/lRqqcijksFWfRtwLTuhFtZ4OX19f4+we/2qruFZBXYJBFc8PQ==",
|
||||
"path": "stackexchange.redis/2.10.1",
|
||||
"hashPath": "stackexchange.redis.2.10.1.nupkg.sha512"
|
||||
},
|
||||
"System.IO.Hashing/9.0.10": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9gv5z71xaWWmcGEs4bXdreIhKp2kYLK2fvPK5gQkgnWMYvZ8ieaxKofDjxL3scZiEYfi/yW2nJTiKV2awcWEdA==",
|
||||
"path": "system.io.hashing/9.0.10",
|
||||
"hashPath": "system.io.hashing.9.0.10.nupkg.sha512"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.FixIndex/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,904 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>StellaOps.BinaryIndex.FixIndex</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence">
|
||||
<summary>
|
||||
Evidence of a CVE fix in a distro package.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Distro">
|
||||
<summary>Distro identifier (e.g., "debian", "ubuntu", "alpine")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Release">
|
||||
<summary>Release/codename (e.g., "bookworm", "jammy", "v3.19")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.SourcePkg">
|
||||
<summary>Source package name</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.CveId">
|
||||
<summary>CVE identifier (e.g., "CVE-2024-1234")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.State">
|
||||
<summary>Fix state</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.FixedVersion">
|
||||
<summary>Version where the fix was applied (if applicable)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Method">
|
||||
<summary>Method used to detect the fix</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Confidence">
|
||||
<summary>Confidence score (0.0 - 1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Evidence">
|
||||
<summary>Evidence payload for audit trail</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.SnapshotId">
|
||||
<summary>Corpus snapshot ID (if from snapshot ingestion)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.CreatedAt">
|
||||
<summary>Timestamp when this evidence was created</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.FixEvidencePayload">
|
||||
<summary>
|
||||
Base class for evidence payloads.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence">
|
||||
<summary>
|
||||
Evidence from changelog parsing.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.File">
|
||||
<summary>Path to changelog file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.Version">
|
||||
<summary>Version from changelog entry</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.Excerpt">
|
||||
<summary>Excerpt from changelog mentioning CVE</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.LineNumber">
|
||||
<summary>Line number where CVE was mentioned</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence">
|
||||
<summary>
|
||||
Evidence from patch header parsing.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.PatchPath">
|
||||
<summary>Path to patch file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.PatchSha256">
|
||||
<summary>SHA-256 digest of patch file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.HeaderExcerpt">
|
||||
<summary>Excerpt from patch header</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence">
|
||||
<summary>
|
||||
Evidence from official security feed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.FeedId">
|
||||
<summary>Feed identifier (e.g., "alpine-secfixes", "debian-oval")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.EntryId">
|
||||
<summary>Entry identifier within the feed</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.PublishedAt">
|
||||
<summary>Published timestamp from feed</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser">
|
||||
<summary>
|
||||
Parses Alpine APKBUILD secfixes section for CVE fix evidence.
|
||||
</summary>
|
||||
<remarks>
|
||||
APKBUILD secfixes format:
|
||||
# secfixes:
|
||||
# 1.2.3-r0:
|
||||
# - CVE-2024-1234
|
||||
# - CVE-2024-1235
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.SecfixesPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s*secfixes:\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Multiline | RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of a line.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically any number of times.<br/>
|
||||
○ Match the string "secfixes:".<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of a line.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.VersionPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s+([vV]?\\d[^\\s:]*):\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match a character in the set [Vv] atomically, optionally.<br/>
|
||||
○ Match a Unicode digit.<br/>
|
||||
○ Match a character in the set [^:\s] atomically any number of times.<br/>
|
||||
○ Match ':'.<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s+-\\s+(CVE-\\d{4}-\\d{4,7})(?:\\s|$)</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match with 2 alternative expressions, atomically.<br/>
|
||||
○ Match a whitespace character.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.Parse(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses APKBUILD secfixes section for version-to-CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser">
|
||||
<summary>
|
||||
Parses Debian/Ubuntu changelog files for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.EntryHeaderPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^(\\S+)\\s+\\(([^)]+)\\)\\s+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match any character other than a whitespace character atomically at least once.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '('.<br/>
|
||||
○ 2nd capture group.<br/>
|
||||
○ Match a character other than ')' atomically at least once.<br/>
|
||||
○ Match ')'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.TrailerPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^\\s+--\\s+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match the string "--".<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of a Debian changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.IChangelogParser">
|
||||
<summary>
|
||||
Interface for parsing changelogs for CVE fix evidence.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.IChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of a changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.IPatchParser">
|
||||
<summary>
|
||||
Interface for parsing patch files for CVE fix evidence.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.IPatchParser.ParsePatches(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String,System.String}},System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses patches for CVE mentions in headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.ISecfixesParser">
|
||||
<summary>
|
||||
Interface for parsing Alpine APKBUILD secfixes for CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.ISecfixesParser.Parse(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses APKBUILD secfixes section for version-to-CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser">
|
||||
<summary>
|
||||
Parses patch headers (DEP-3 format) for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser.ParsePatches(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String,System.String}},System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses patches for CVE mentions in headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser">
|
||||
<summary>
|
||||
Parses RPM spec file changelog sections for CVE mentions.
|
||||
</summary>
|
||||
<remarks>
|
||||
RPM changelog format:
|
||||
%changelog
|
||||
* Mon Jan 01 2024 Packager <email> - 1.2.3-4
|
||||
- Fix CVE-2024-1234
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.EntryHeaderPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^\\*\\s+\\w{3}\\s+\\w{3}\\s+\\d{1,2}\\s+\\d{4}\\s+(.+?)\\s+-\\s+(\\S+)</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '*'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a word character exactly 3 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a word character exactly 3 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a Unicode digit atomically at least 1 and at most 2 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match a whitespace character greedily at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match a character other than '\n' lazily at least once.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 2nd capture group.<br/>
|
||||
○ Match any character other than a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ChangelogStartPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^%changelog\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.IgnoreCase | RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '%'.<br/>
|
||||
○ Match a character in the set [Cc].<br/>
|
||||
○ Match a character in the set [Hh].<br/>
|
||||
○ Match a character in the set [Aa].<br/>
|
||||
○ Match a character in the set [Nn].<br/>
|
||||
○ Match a character in the set [Gg].<br/>
|
||||
○ Match a character in the set [Ee].<br/>
|
||||
○ Match a character in the set [Ll].<br/>
|
||||
○ Match a character in the set [Oo].<br/>
|
||||
○ Match a character in the set [Gg].<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.SectionStartPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^%\\w+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '%'.<br/>
|
||||
○ Match a word character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of an RPM spec changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ParseAllEntries(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the full RPM spec changelog for all CVE mentions with their versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository">
|
||||
<summary>
|
||||
Repository interface for CVE fix index operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixStatusAsync(System.String,System.String,System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the fix status for a specific CVE/package/distro combination.
|
||||
</summary>
|
||||
<param name="distro">Distribution (debian, ubuntu, alpine, rhel)</param>
|
||||
<param name="release">Release codename (bookworm, jammy, v3.19)</param>
|
||||
<param name="sourcePkg">Source package name</param>
|
||||
<param name="cveId">CVE identifier</param>
|
||||
<param name="cancellationToken">Cancellation token</param>
|
||||
<returns>Fix status if found, null otherwise</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixStatusesForPackageAsync(System.String,System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all fix statuses for a package.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixLocationsForCveAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all known fix locations for a CVE across distros.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.UpsertAsync(StellaOps.BinaryIndex.FixIndex.Models.FixEvidence,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Upserts a fix index entry.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.UpsertBatchAsync(System.Collections.Generic.IEnumerable{StellaOps.BinaryIndex.FixIndex.Models.FixEvidence},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Batch upserts fix index entries.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.StoreEvidenceAsync(StellaOps.BinaryIndex.FixIndex.Models.FixEvidence,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fix evidence for audit trail.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetEvidenceAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets evidence by ID.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.DeleteBySnapshotAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Deletes all entries from a specific snapshot (for re-ingestion).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.FixIndexEntry">
|
||||
<summary>
|
||||
Fix index entry from the database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.FixEvidenceRecord">
|
||||
<summary>
|
||||
Fix evidence record from the database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder">
|
||||
<summary>
|
||||
Default implementation of <see cref="T:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildDebianIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildAlpineIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildRpmIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder">
|
||||
<summary>
|
||||
Interface for building the CVE fix index from various sources.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildDebianIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for a Debian/Ubuntu package.
|
||||
</summary>
|
||||
<param name="request">The Debian build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildAlpineIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for an Alpine package.
|
||||
</summary>
|
||||
<param name="request">The Alpine build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildRpmIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for an RPM package.
|
||||
</summary>
|
||||
<param name="request">The RPM build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest">
|
||||
<summary>
|
||||
Request for building Debian fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Distro">
|
||||
<summary>Distribution (debian or ubuntu).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Release">
|
||||
<summary>Release codename (bookworm, jammy).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Changelog">
|
||||
<summary>Changelog content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Patches">
|
||||
<summary>Patches with path, content, and SHA-256.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Version">
|
||||
<summary>Package version for patch association.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest">
|
||||
<summary>
|
||||
Request for building Alpine fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.Distro">
|
||||
<summary>Distribution (always "alpine").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.Release">
|
||||
<summary>Release (v3.19, edge).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.ApkBuild">
|
||||
<summary>APKBUILD file content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest">
|
||||
<summary>
|
||||
Request for building RPM fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.Distro">
|
||||
<summary>Distribution (rhel, fedora, centos, rocky, alma).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.Release">
|
||||
<summary>Release version (9, 39, etc.).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SpecContent">
|
||||
<summary>Spec file content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.PatchFile">
|
||||
<summary>
|
||||
Represents a patch file with content.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Path">
|
||||
<summary>Relative path to the patch file.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Content">
|
||||
<summary>Content of the patch file.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Sha256">
|
||||
<summary>SHA-256 hash of the patch content.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the SecfixesPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the VersionPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the CvePatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.CvePatternRegex_2.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the CvePatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.CvePatternRegex_3.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the EntryHeaderPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the TrailerPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the EntryHeaderPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the ChangelogStartPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the SectionStartPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.Utilities">
|
||||
<summary>Helper methods used by generated <see cref="T:System.Text.RegularExpressions.Regex"/>-derived implementations.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout">
|
||||
<summary>Default timeout value set in <see cref="T:System.AppContext"/>, or <see cref="F:System.Text.RegularExpressions.Regex.InfiniteMatchTimeout"/> if none was set.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_hasTimeout">
|
||||
<summary>Whether <see cref="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout"/> is non-infinite.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsBoundaryWordChar(System.Char)">
|
||||
<summary>Determines whether the specified index is a boundary word character.</summary>
|
||||
<remarks>This is the same as \w plus U+200C ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsPostWordCharBoundary(System.ReadOnlySpan{System.Char},System.Int32)">
|
||||
<summary>Determines whether the specified index is a boundary.</summary>
|
||||
<remarks>This variant is only employed when the previous character has already been validated as a word character.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsPreWordCharBoundary(System.ReadOnlySpan{System.Char},System.Int32)">
|
||||
<summary>Determines whether the specified index is a boundary.</summary>
|
||||
<remarks>This variant is only employed when the subsequent character will separately be validated as a word character.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsWordChar(System.Char)">
|
||||
<summary>Determines whether the character is part of the [\w] set.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.WordCategoriesMask">
|
||||
<summary>Provides a mask of Unicode categories that combine to form [\w].</summary>
|
||||
</member>
|
||||
<member name="P:System.Text.RegularExpressions.Generated.Utilities.WordCharBitmap">
|
||||
<summary>Gets a bitmap for whether each character 0 through 127 is in [\w]</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_indexOfString_2F93FE89B97147CEC70A0EB0ACFDB2E4BA07C5F0174666AF09DD4CE814752C02">
|
||||
<summary>Supports searching for the string "CVE-".</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@@ -0,0 +1,331 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Cache/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Configuration.Binder": "10.0.1",
|
||||
"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",
|
||||
"Scrutor": "7.0.0",
|
||||
"StackExchange.Redis": "2.10.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0",
|
||||
"StellaOps.BinaryIndex.FixIndex": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Cache.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.DependencyModel/10.0.0": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyModel.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.25.52411"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Pipelines.Sockets.Unofficial/2.2.8": {
|
||||
"runtime": {
|
||||
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "2.2.8.1080"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Scrutor/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyModel": "10.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Scrutor.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StackExchange.Redis/2.10.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Pipelines.Sockets.Unofficial": "2.2.8",
|
||||
"System.IO.Hashing": "9.0.10"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/StackExchange.Redis.dll": {
|
||||
"assemblyVersion": "2.0.0.0",
|
||||
"fileVersion": "2.10.1.65101"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.IO.Hashing/9.0.10": {
|
||||
"runtime": {
|
||||
"lib/net9.0/System.IO.Hashing.dll": {
|
||||
"assemblyVersion": "9.0.0.10",
|
||||
"fileVersion": "9.0.1025.47515"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.FixIndex/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.FixIndex.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Cache/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.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.DependencyModel/10.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-RFYJR7APio/BiqdQunRq6DB+nDB6nc2qhHr77mlvZ0q0BT8PubMXN7XicmfzCbrDE/dzhBnUKBRXLTcqUiZDGg==",
|
||||
"path": "microsoft.extensions.dependencymodel/10.0.0",
|
||||
"hashPath": "microsoft.extensions.dependencymodel.10.0.0.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.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"
|
||||
},
|
||||
"Pipelines.Sockets.Unofficial/2.2.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
|
||||
"path": "pipelines.sockets.unofficial/2.2.8",
|
||||
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
|
||||
},
|
||||
"Scrutor/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-wHWaroody48jnlLoq/REwUltIFLxplXyHTP+sttrc8P7+jkiVqf38afDidJNv4qgD/6zz2NKOYg06xLZ1bG7wQ==",
|
||||
"path": "scrutor/7.0.0",
|
||||
"hashPath": "scrutor.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"StackExchange.Redis/2.10.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-se08WZvD42H3bV4XBW07pupTiE2/72qStKyi/lRqqcijksFWfRtwLTuhFtZ4OX19f4+we/2qruFZBXYJBFc8PQ==",
|
||||
"path": "stackexchange.redis/2.10.1",
|
||||
"hashPath": "stackexchange.redis.2.10.1.nupkg.sha512"
|
||||
},
|
||||
"System.IO.Hashing/9.0.10": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9gv5z71xaWWmcGEs4bXdreIhKp2kYLK2fvPK5gQkgnWMYvZ8ieaxKofDjxL3scZiEYfi/yW2nJTiKV2awcWEdA==",
|
||||
"path": "system.io.hashing/9.0.10",
|
||||
"hashPath": "system.io.hashing.9.0.10.nupkg.sha512"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.FixIndex/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,904 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>StellaOps.BinaryIndex.FixIndex</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence">
|
||||
<summary>
|
||||
Evidence of a CVE fix in a distro package.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Distro">
|
||||
<summary>Distro identifier (e.g., "debian", "ubuntu", "alpine")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Release">
|
||||
<summary>Release/codename (e.g., "bookworm", "jammy", "v3.19")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.SourcePkg">
|
||||
<summary>Source package name</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.CveId">
|
||||
<summary>CVE identifier (e.g., "CVE-2024-1234")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.State">
|
||||
<summary>Fix state</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.FixedVersion">
|
||||
<summary>Version where the fix was applied (if applicable)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Method">
|
||||
<summary>Method used to detect the fix</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Confidence">
|
||||
<summary>Confidence score (0.0 - 1.0)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.Evidence">
|
||||
<summary>Evidence payload for audit trail</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.SnapshotId">
|
||||
<summary>Corpus snapshot ID (if from snapshot ingestion)</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.FixEvidence.CreatedAt">
|
||||
<summary>Timestamp when this evidence was created</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.FixEvidencePayload">
|
||||
<summary>
|
||||
Base class for evidence payloads.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence">
|
||||
<summary>
|
||||
Evidence from changelog parsing.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.File">
|
||||
<summary>Path to changelog file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.Version">
|
||||
<summary>Version from changelog entry</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.Excerpt">
|
||||
<summary>Excerpt from changelog mentioning CVE</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.ChangelogEvidence.LineNumber">
|
||||
<summary>Line number where CVE was mentioned</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence">
|
||||
<summary>
|
||||
Evidence from patch header parsing.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.PatchPath">
|
||||
<summary>Path to patch file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.PatchSha256">
|
||||
<summary>SHA-256 digest of patch file</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.PatchHeaderEvidence.HeaderExcerpt">
|
||||
<summary>Excerpt from patch header</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence">
|
||||
<summary>
|
||||
Evidence from official security feed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.FeedId">
|
||||
<summary>Feed identifier (e.g., "alpine-secfixes", "debian-oval")</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.EntryId">
|
||||
<summary>Entry identifier within the feed</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Models.SecurityFeedEvidence.PublishedAt">
|
||||
<summary>Published timestamp from feed</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser">
|
||||
<summary>
|
||||
Parses Alpine APKBUILD secfixes section for CVE fix evidence.
|
||||
</summary>
|
||||
<remarks>
|
||||
APKBUILD secfixes format:
|
||||
# secfixes:
|
||||
# 1.2.3-r0:
|
||||
# - CVE-2024-1234
|
||||
# - CVE-2024-1235
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.SecfixesPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s*secfixes:\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Multiline | RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of a line.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically any number of times.<br/>
|
||||
○ Match the string "secfixes:".<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of a line.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.VersionPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s+([vV]?\\d[^\\s:]*):\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match a character in the set [Vv] atomically, optionally.<br/>
|
||||
○ Match a Unicode digit.<br/>
|
||||
○ Match a character in the set [^:\s] atomically any number of times.<br/>
|
||||
○ Match ':'.<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^#\\s+-\\s+(CVE-\\d{4}-\\d{4,7})(?:\\s|$)</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '#'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match with 2 alternative expressions, atomically.<br/>
|
||||
○ Match a whitespace character.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.AlpineSecfixesParser.Parse(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses APKBUILD secfixes section for version-to-CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser">
|
||||
<summary>
|
||||
Parses Debian/Ubuntu changelog files for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.EntryHeaderPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^(\\S+)\\s+\\(([^)]+)\\)\\s+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match any character other than a whitespace character atomically at least once.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '('.<br/>
|
||||
○ 2nd capture group.<br/>
|
||||
○ Match a character other than ')' atomically at least once.<br/>
|
||||
○ Match ')'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.TrailerPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^\\s+--\\s+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match the string "--".<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.DebianChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of a Debian changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.IChangelogParser">
|
||||
<summary>
|
||||
Interface for parsing changelogs for CVE fix evidence.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.IChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of a changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.IPatchParser">
|
||||
<summary>
|
||||
Interface for parsing patch files for CVE fix evidence.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.IPatchParser.ParsePatches(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String,System.String}},System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses patches for CVE mentions in headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.ISecfixesParser">
|
||||
<summary>
|
||||
Interface for parsing Alpine APKBUILD secfixes for CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.ISecfixesParser.Parse(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses APKBUILD secfixes section for version-to-CVE mappings.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser">
|
||||
<summary>
|
||||
Parses patch headers (DEP-3 format) for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.PatchHeaderParser.ParsePatches(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String,System.String}},System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses patches for CVE mentions in headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser">
|
||||
<summary>
|
||||
Parses RPM spec file changelog sections for CVE mentions.
|
||||
</summary>
|
||||
<remarks>
|
||||
RPM changelog format:
|
||||
%changelog
|
||||
* Mon Jan 01 2024 Packager <email> - 1.2.3-4
|
||||
- Fix CVE-2024-1234
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.CvePatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>\\bCVE-\\d{4}-\\d{4,7}\\b</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at a word boundary.<br/>
|
||||
○ Match the string "CVE-".<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a Unicode digit atomically at least 4 and at most 7 times.<br/>
|
||||
○ Match if at a word boundary.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.EntryHeaderPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^\\*\\s+\\w{3}\\s+\\w{3}\\s+\\d{1,2}\\s+\\d{4}\\s+(.+?)\\s+-\\s+(\\S+)</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '*'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a word character exactly 3 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a word character exactly 3 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a Unicode digit atomically at least 1 and at most 2 times.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match a Unicode digit exactly 4 times.<br/>
|
||||
○ Match a whitespace character greedily at least once.<br/>
|
||||
○ 1st capture group.<br/>
|
||||
○ Match a character other than '\n' lazily at least once.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ Match '-'.<br/>
|
||||
○ Match a whitespace character atomically at least once.<br/>
|
||||
○ 2nd capture group.<br/>
|
||||
○ Match any character other than a whitespace character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ChangelogStartPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^%changelog\\s*$</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.IgnoreCase | RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '%'.<br/>
|
||||
○ Match a character in the set [Cc].<br/>
|
||||
○ Match a character in the set [Hh].<br/>
|
||||
○ Match a character in the set [Aa].<br/>
|
||||
○ Match a character in the set [Nn].<br/>
|
||||
○ Match a character in the set [Gg].<br/>
|
||||
○ Match a character in the set [Ee].<br/>
|
||||
○ Match a character in the set [Ll].<br/>
|
||||
○ Match a character in the set [Oo].<br/>
|
||||
○ Match a character in the set [Gg].<br/>
|
||||
○ Match a whitespace character greedily any number of times.<br/>
|
||||
○ Match if at the end of the string or if before an ending newline.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.SectionStartPatternRegex">
|
||||
<remarks>
|
||||
Pattern:<br/>
|
||||
<code>^%\\w+</code><br/>
|
||||
Options:<br/>
|
||||
<code>RegexOptions.Compiled</code><br/>
|
||||
Explanation:<br/>
|
||||
<code>
|
||||
○ Match if at the beginning of the string.<br/>
|
||||
○ Match '%'.<br/>
|
||||
○ Match a word character atomically at least once.<br/>
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ParseTopEntry(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the top entry of an RPM spec changelog for CVE mentions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Parsers.RpmChangelogParser.ParseAllEntries(System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
Parses the full RPM spec changelog for all CVE mentions with their versions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository">
|
||||
<summary>
|
||||
Repository interface for CVE fix index operations.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixStatusAsync(System.String,System.String,System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the fix status for a specific CVE/package/distro combination.
|
||||
</summary>
|
||||
<param name="distro">Distribution (debian, ubuntu, alpine, rhel)</param>
|
||||
<param name="release">Release codename (bookworm, jammy, v3.19)</param>
|
||||
<param name="sourcePkg">Source package name</param>
|
||||
<param name="cveId">CVE identifier</param>
|
||||
<param name="cancellationToken">Cancellation token</param>
|
||||
<returns>Fix status if found, null otherwise</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixStatusesForPackageAsync(System.String,System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all fix statuses for a package.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetFixLocationsForCveAsync(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all known fix locations for a CVE across distros.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.UpsertAsync(StellaOps.BinaryIndex.FixIndex.Models.FixEvidence,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Upserts a fix index entry.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.UpsertBatchAsync(System.Collections.Generic.IEnumerable{StellaOps.BinaryIndex.FixIndex.Models.FixEvidence},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Batch upserts fix index entries.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.StoreEvidenceAsync(StellaOps.BinaryIndex.FixIndex.Models.FixEvidence,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Stores fix evidence for audit trail.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.GetEvidenceAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets evidence by ID.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Repositories.IFixIndexRepository.DeleteBySnapshotAsync(System.Guid,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Deletes all entries from a specific snapshot (for re-ingestion).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.FixIndexEntry">
|
||||
<summary>
|
||||
Fix index entry from the database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Repositories.FixEvidenceRecord">
|
||||
<summary>
|
||||
Fix evidence record from the database.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder">
|
||||
<summary>
|
||||
Default implementation of <see cref="T:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildDebianIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildAlpineIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.FixIndexBuilder.BuildRpmIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder">
|
||||
<summary>
|
||||
Interface for building the CVE fix index from various sources.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildDebianIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for a Debian/Ubuntu package.
|
||||
</summary>
|
||||
<param name="request">The Debian build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildAlpineIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for an Alpine package.
|
||||
</summary>
|
||||
<param name="request">The Alpine build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="M:StellaOps.BinaryIndex.FixIndex.Services.IFixIndexBuilder.BuildRpmIndexAsync(StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Builds fix index entries for an RPM package.
|
||||
</summary>
|
||||
<param name="request">The RPM build request.</param>
|
||||
<param name="cancellationToken">Cancellation token.</param>
|
||||
<returns>Fix evidence entries.</returns>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest">
|
||||
<summary>
|
||||
Request for building Debian fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Distro">
|
||||
<summary>Distribution (debian or ubuntu).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Release">
|
||||
<summary>Release codename (bookworm, jammy).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Changelog">
|
||||
<summary>Changelog content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Patches">
|
||||
<summary>Patches with path, content, and SHA-256.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.Version">
|
||||
<summary>Package version for patch association.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.DebianFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest">
|
||||
<summary>
|
||||
Request for building Alpine fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.Distro">
|
||||
<summary>Distribution (always "alpine").</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.Release">
|
||||
<summary>Release (v3.19, edge).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.ApkBuild">
|
||||
<summary>APKBUILD file content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.AlpineFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest">
|
||||
<summary>
|
||||
Request for building RPM fix index.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.Distro">
|
||||
<summary>Distribution (rhel, fedora, centos, rocky, alma).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.Release">
|
||||
<summary>Release version (9, 39, etc.).</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SourcePkg">
|
||||
<summary>Source package name.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SpecContent">
|
||||
<summary>Spec file content.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.RpmFixIndexRequest.SnapshotId">
|
||||
<summary>Corpus snapshot ID.</summary>
|
||||
</member>
|
||||
<member name="T:StellaOps.BinaryIndex.FixIndex.Services.PatchFile">
|
||||
<summary>
|
||||
Represents a patch file with content.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Path">
|
||||
<summary>Relative path to the patch file.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Content">
|
||||
<summary>Content of the patch file.</summary>
|
||||
</member>
|
||||
<member name="P:StellaOps.BinaryIndex.FixIndex.Services.PatchFile.Sha256">
|
||||
<summary>SHA-256 hash of the patch content.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the SecfixesPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SecfixesPatternRegex_0.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the VersionPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.VersionPatternRegex_1.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the CvePatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.CvePatternRegex_2.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_2.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the CvePatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.CvePatternRegex_3.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.CvePatternRegex_3.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the EntryHeaderPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_4.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the TrailerPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.TrailerPatternRegex_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the EntryHeaderPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.EntryHeaderPatternRegex_6.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the ChangelogStartPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.ChangelogStartPatternRegex_7.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8">
|
||||
<summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the SectionStartPatternRegex method.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.Instance">
|
||||
<summary>Cached, thread-safe singleton instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.#ctor">
|
||||
<summary>Initializes the instance.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory">
|
||||
<summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.CreateInstance">
|
||||
<summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner">
|
||||
<summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if a possible match was found; false if no more matches are possible.</returns>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.SectionStartPatternRegex_8.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
|
||||
<summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
|
||||
<param name="inputSpan">The text being scanned by the regular expression.</param>
|
||||
<returns>true if the regular expression matches at the current position; otherwise, false.</returns>
|
||||
</member>
|
||||
<member name="T:System.Text.RegularExpressions.Generated.Utilities">
|
||||
<summary>Helper methods used by generated <see cref="T:System.Text.RegularExpressions.Regex"/>-derived implementations.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout">
|
||||
<summary>Default timeout value set in <see cref="T:System.AppContext"/>, or <see cref="F:System.Text.RegularExpressions.Regex.InfiniteMatchTimeout"/> if none was set.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_hasTimeout">
|
||||
<summary>Whether <see cref="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout"/> is non-infinite.</summary>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsBoundaryWordChar(System.Char)">
|
||||
<summary>Determines whether the specified index is a boundary word character.</summary>
|
||||
<remarks>This is the same as \w plus U+200C ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsPostWordCharBoundary(System.ReadOnlySpan{System.Char},System.Int32)">
|
||||
<summary>Determines whether the specified index is a boundary.</summary>
|
||||
<remarks>This variant is only employed when the previous character has already been validated as a word character.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsPreWordCharBoundary(System.ReadOnlySpan{System.Char},System.Int32)">
|
||||
<summary>Determines whether the specified index is a boundary.</summary>
|
||||
<remarks>This variant is only employed when the subsequent character will separately be validated as a word character.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Text.RegularExpressions.Generated.Utilities.IsWordChar(System.Char)">
|
||||
<summary>Determines whether the character is part of the [\w] set.</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.WordCategoriesMask">
|
||||
<summary>Provides a mask of Unicode categories that combine to form [\w].</summary>
|
||||
</member>
|
||||
<member name="P:System.Text.RegularExpressions.Generated.Utilities.WordCharBitmap">
|
||||
<summary>Gets a bitmap for whether each character 0 through 127 is in [\w]</summary>
|
||||
</member>
|
||||
<member name="F:System.Text.RegularExpressions.Generated.Utilities.s_indexOfString_2F93FE89B97147CEC70A0EB0ACFDB2E4BA07C5F0174666AF09DD4CE814752C02">
|
||||
<summary>Supports searching for the string "CVE-".</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -5,6 +5,7 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
|
||||
| Task ID | Status | Notes |
|
||||
| --- | --- | --- |
|
||||
| QA-BINARYINDEX-VERIFY-026 | DONE | SPRINT_20260211_033 run-001: verify `known-build-binary-catalog` across Tier 0/1/2 evidence and terminalize dossier state. |
|
||||
| AUDIT-0116-M | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0116-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0116-A | DONE | Applied core fixes + tests; revalidated 2026-01-06. |
|
||||
|
||||
@@ -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>
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,507 @@
|
||||
using System.Collections.Immutable;
|
||||
using System.Globalization;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace StellaOps.BinaryIndex.Corpus.Alpine;
|
||||
|
||||
/// <summary>
|
||||
/// Fetches Alpine package metadata and package payloads from HTTP mirrors with local cache fallback.
|
||||
/// </summary>
|
||||
public sealed class AlpineMirrorPackageSource : IAlpinePackageSource
|
||||
{
|
||||
private static readonly string[] Repositories = ["main", "community"];
|
||||
|
||||
private readonly HttpClient _httpClient;
|
||||
private readonly ILogger<AlpineMirrorPackageSource> _logger;
|
||||
private readonly string _mirrorUrl;
|
||||
private readonly object _sync = new();
|
||||
private readonly Dictionary<(string Release, string Architecture), ImmutableArray<AlpinePackageMetadata>> _indexCache = new();
|
||||
private readonly Dictionary<string, string> _packageUrlByFilename = new(StringComparer.Ordinal);
|
||||
private readonly Dictionary<string, byte[]> _packageBytesByFilename = new(StringComparer.Ordinal);
|
||||
private readonly Dictionary<(string Release, string Repository, string PackageName), string?> _apkBuildCache = new();
|
||||
|
||||
public AlpineMirrorPackageSource(
|
||||
HttpClient httpClient,
|
||||
ILogger<AlpineMirrorPackageSource> logger,
|
||||
string mirrorUrl = "https://dl-cdn.alpinelinux.org/alpine")
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_logger = logger;
|
||||
_mirrorUrl = mirrorUrl.TrimEnd('/');
|
||||
}
|
||||
|
||||
public async Task<IReadOnlyList<AlpinePackageMetadata>> FetchPackageIndexAsync(
|
||||
string release,
|
||||
string architecture,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ValidateReleaseAndArch(release, architecture);
|
||||
var key = (release, architecture);
|
||||
|
||||
if (TryGetCachedIndex(key, out var cached))
|
||||
{
|
||||
return cached;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var all = new List<AlpinePackageMetadata>();
|
||||
var filenameUrls = new List<(string Filename, string Url)>();
|
||||
|
||||
foreach (var repository in Repositories)
|
||||
{
|
||||
var repoPackages = await TryFetchRepositoryIndexAsync(
|
||||
release,
|
||||
architecture,
|
||||
repository,
|
||||
filenameUrls,
|
||||
ct);
|
||||
all.AddRange(repoPackages);
|
||||
}
|
||||
|
||||
if (all.Count == 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
$"No Alpine package metadata could be fetched for {release}/{architecture}.");
|
||||
}
|
||||
|
||||
var normalized = Normalize(all);
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
_indexCache[key] = normalized;
|
||||
foreach (var (filename, url) in filenameUrls)
|
||||
{
|
||||
_packageUrlByFilename[filename] = url;
|
||||
}
|
||||
}
|
||||
|
||||
return normalized;
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedIndex(key, out var fallback))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to fetch Alpine package index for {Release}/{Architecture}; returning cached result.",
|
||||
release,
|
||||
architecture);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<string?> FetchApkBuildAsync(
|
||||
string release,
|
||||
string repository,
|
||||
string packageName,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(release))
|
||||
{
|
||||
throw new ArgumentException("Release is required.", nameof(release));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(repository))
|
||||
{
|
||||
throw new ArgumentException("Repository is required.", nameof(repository));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(packageName))
|
||||
{
|
||||
throw new ArgumentException("Package name is required.", nameof(packageName));
|
||||
}
|
||||
|
||||
var key = (release, repository, packageName);
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
if (_apkBuildCache.TryGetValue(key, out var cached))
|
||||
{
|
||||
return cached;
|
||||
}
|
||||
}
|
||||
|
||||
var apkBuildUrl = $"{_mirrorUrl}/{release}/{repository}/{packageName}/APKBUILD";
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(apkBuildUrl, ct);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var content = await response.Content.ReadAsStringAsync(ct);
|
||||
lock (_sync)
|
||||
{
|
||||
_apkBuildCache[key] = content;
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedApkBuild(key, out var cachedFallback))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to fetch APKBUILD for {Release}/{Repository}/{Package}; returning cached result.",
|
||||
release,
|
||||
repository,
|
||||
packageName);
|
||||
return cachedFallback;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Stream> DownloadPackageAsync(string filename, CancellationToken ct = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
throw new ArgumentException("Filename is required.", nameof(filename));
|
||||
}
|
||||
|
||||
if (TryGetCachedPackage(filename, out var cachedBytes))
|
||||
{
|
||||
return ToReadOnlyStream(cachedBytes);
|
||||
}
|
||||
|
||||
var packageUrl = GetPackageUrl(filename);
|
||||
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(packageUrl, HttpCompletionOption.ResponseHeadersRead, ct);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var bytes = await response.Content.ReadAsByteArrayAsync(ct);
|
||||
lock (_sync)
|
||||
{
|
||||
_packageBytesByFilename[filename] = bytes;
|
||||
}
|
||||
|
||||
return ToReadOnlyStream(bytes);
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedPackage(filename, out var fallbackBytes))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to download Alpine package {Filename}; returning cached payload.",
|
||||
filename);
|
||||
return ToReadOnlyStream(fallbackBytes);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<IReadOnlyList<AlpinePackageMetadata>> TryFetchRepositoryIndexAsync(
|
||||
string release,
|
||||
string architecture,
|
||||
string repository,
|
||||
ICollection<(string Filename, string Url)> filenameUrls,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var candidates = new[]
|
||||
{
|
||||
$"{_mirrorUrl}/{release}/{repository}/{architecture}/APKINDEX.tar.gz",
|
||||
$"{_mirrorUrl}/{release}/{repository}/{architecture}/APKINDEX.gz",
|
||||
};
|
||||
|
||||
Exception? lastError = null;
|
||||
foreach (var indexUrl in candidates)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(indexUrl, ct);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
await using var compressedStream = await response.Content.ReadAsStreamAsync(ct);
|
||||
var decompressedBytes = await ReadAllGzipBytesAsync(compressedStream, ct);
|
||||
var indexText = ExtractApkIndexText(decompressedBytes);
|
||||
var packages = ParseApkIndex(indexText, release, architecture, repository, filenameUrls);
|
||||
_logger.LogDebug(
|
||||
"Fetched {Count} Alpine packages from {Repository} ({Release}/{Architecture}).",
|
||||
packages.Count,
|
||||
repository,
|
||||
release,
|
||||
architecture);
|
||||
return packages;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
lastError = ex;
|
||||
}
|
||||
}
|
||||
|
||||
if (lastError is not null)
|
||||
{
|
||||
_logger.LogDebug(
|
||||
lastError,
|
||||
"Failed to fetch Alpine index for repository {Repository} ({Release}/{Architecture}).",
|
||||
repository,
|
||||
release,
|
||||
architecture);
|
||||
}
|
||||
|
||||
return Array.Empty<AlpinePackageMetadata>();
|
||||
}
|
||||
|
||||
private static async Task<byte[]> ReadAllGzipBytesAsync(Stream compressedStream, CancellationToken ct)
|
||||
{
|
||||
await using var gzip = new GZipStream(compressedStream, CompressionMode.Decompress, leaveOpen: false);
|
||||
using var ms = new MemoryStream();
|
||||
await gzip.CopyToAsync(ms, ct);
|
||||
return ms.ToArray();
|
||||
}
|
||||
|
||||
private static string ExtractApkIndexText(byte[] decompressedBytes)
|
||||
{
|
||||
if (decompressedBytes.Length == 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
if (IsLikelyText(decompressedBytes))
|
||||
{
|
||||
return Encoding.UTF8.GetString(decompressedBytes);
|
||||
}
|
||||
|
||||
// APKINDEX.tar.gz payload: locate APKINDEX entry in tar archive.
|
||||
var offset = 0;
|
||||
while (offset + 512 <= decompressedBytes.Length)
|
||||
{
|
||||
var header = decompressedBytes.AsSpan(offset, 512);
|
||||
if (header.SequenceEqual(new byte[512]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
var name = ReadTarString(header.Slice(0, 100));
|
||||
var size = ReadTarSize(header.Slice(124, 12));
|
||||
var dataOffset = offset + 512;
|
||||
|
||||
if (dataOffset + size > decompressedBytes.Length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (name.Equals("APKINDEX", StringComparison.Ordinal) ||
|
||||
name.EndsWith("/APKINDEX", StringComparison.Ordinal))
|
||||
{
|
||||
return Encoding.UTF8.GetString(decompressedBytes, dataOffset, size);
|
||||
}
|
||||
|
||||
var paddedSize = ((size + 511) / 512) * 512;
|
||||
offset = dataOffset + paddedSize;
|
||||
}
|
||||
|
||||
return Encoding.UTF8.GetString(decompressedBytes);
|
||||
}
|
||||
|
||||
private static bool IsLikelyText(byte[] payload)
|
||||
{
|
||||
var sample = payload.AsSpan(0, Math.Min(payload.Length, 128));
|
||||
foreach (var b in sample)
|
||||
{
|
||||
if (b == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static string ReadTarString(ReadOnlySpan<byte> bytes)
|
||||
{
|
||||
var end = bytes.IndexOf((byte)0);
|
||||
if (end < 0)
|
||||
{
|
||||
end = bytes.Length;
|
||||
}
|
||||
|
||||
return Encoding.ASCII.GetString(bytes.Slice(0, end)).Trim();
|
||||
}
|
||||
|
||||
private static int ReadTarSize(ReadOnlySpan<byte> bytes)
|
||||
{
|
||||
var octal = Encoding.ASCII.GetString(bytes).Trim('\0', ' ');
|
||||
if (string.IsNullOrWhiteSpace(octal))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Convert.ToInt32(octal, 8);
|
||||
}
|
||||
|
||||
private static IReadOnlyList<AlpinePackageMetadata> ParseApkIndex(
|
||||
string text,
|
||||
string release,
|
||||
string architecture,
|
||||
string repository,
|
||||
ICollection<(string Filename, string Url)> filenameUrls)
|
||||
{
|
||||
var result = new List<AlpinePackageMetadata>();
|
||||
var fields = new Dictionary<string, string>(StringComparer.Ordinal);
|
||||
using var reader = new StringReader(text);
|
||||
|
||||
while (reader.ReadLine() is { } line)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
{
|
||||
AddPackageIfComplete(fields, result, release, architecture, repository, filenameUrls);
|
||||
fields.Clear();
|
||||
continue;
|
||||
}
|
||||
|
||||
var colonIndex = line.IndexOf(':');
|
||||
if (colonIndex <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var key = line[..colonIndex];
|
||||
var value = line[(colonIndex + 1)..].Trim();
|
||||
fields[key] = value;
|
||||
}
|
||||
|
||||
AddPackageIfComplete(fields, result, release, architecture, repository, filenameUrls);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void AddPackageIfComplete(
|
||||
IDictionary<string, string> fields,
|
||||
ICollection<AlpinePackageMetadata> result,
|
||||
string release,
|
||||
string architecture,
|
||||
string repository,
|
||||
ICollection<(string Filename, string Url)> filenameUrls)
|
||||
{
|
||||
if (!fields.TryGetValue("P", out var packageName) ||
|
||||
!fields.TryGetValue("V", out var version))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var arch = fields.TryGetValue("A", out var declaredArch) && !string.IsNullOrWhiteSpace(declaredArch)
|
||||
? declaredArch
|
||||
: architecture;
|
||||
|
||||
var checksum = fields.TryGetValue("C", out var parsedChecksum) ? parsedChecksum : string.Empty;
|
||||
var size = 0L;
|
||||
if (fields.TryGetValue("S", out var sizeValue) &&
|
||||
long.TryParse(sizeValue, NumberStyles.None, CultureInfo.InvariantCulture, out var parsedSize))
|
||||
{
|
||||
size = parsedSize;
|
||||
}
|
||||
|
||||
DateTimeOffset? buildTime = null;
|
||||
if (fields.TryGetValue("t", out var timeValue) &&
|
||||
long.TryParse(timeValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out var unix))
|
||||
{
|
||||
buildTime = DateTimeOffset.FromUnixTimeSeconds(unix);
|
||||
}
|
||||
|
||||
var filename = $"{packageName}-{version}.apk";
|
||||
var packageUrl = $"{release}/{repository}/{arch}/{filename}";
|
||||
filenameUrls.Add((filename, packageUrl));
|
||||
|
||||
var dependencies = ParseWhitespaceList(fields.TryGetValue("D", out var deps) ? deps : null);
|
||||
var provides = ParseWhitespaceList(fields.TryGetValue("p", out var providesValue) ? providesValue : null);
|
||||
|
||||
result.Add(new AlpinePackageMetadata
|
||||
{
|
||||
PackageName = packageName,
|
||||
Version = version,
|
||||
Architecture = arch,
|
||||
Filename = filename,
|
||||
Size = size,
|
||||
Checksum = checksum,
|
||||
Origin = fields.TryGetValue("o", out var origin) ? origin : null,
|
||||
Maintainer = fields.TryGetValue("m", out var maintainer) ? maintainer : null,
|
||||
Dependencies = dependencies,
|
||||
Provides = provides,
|
||||
BuildTime = buildTime,
|
||||
});
|
||||
}
|
||||
|
||||
private static ImmutableArray<string> ParseWhitespaceList(string? input)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(input))
|
||||
{
|
||||
return ImmutableArray<string>.Empty;
|
||||
}
|
||||
|
||||
return input
|
||||
.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
|
||||
.ToImmutableArray();
|
||||
}
|
||||
|
||||
private static ImmutableArray<AlpinePackageMetadata> Normalize(IEnumerable<AlpinePackageMetadata> packages)
|
||||
{
|
||||
return packages
|
||||
.OrderBy(p => p.PackageName, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Version, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Architecture, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Filename, StringComparer.Ordinal)
|
||||
.ToImmutableArray();
|
||||
}
|
||||
|
||||
private string GetPackageUrl(string filename)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
if (_packageUrlByFilename.TryGetValue(filename, out var relativeOrAbsolute))
|
||||
{
|
||||
if (Uri.TryCreate(relativeOrAbsolute, UriKind.Absolute, out var absolute))
|
||||
{
|
||||
return absolute.AbsoluteUri;
|
||||
}
|
||||
|
||||
return $"{_mirrorUrl}/{relativeOrAbsolute.TrimStart('/')}";
|
||||
}
|
||||
}
|
||||
|
||||
return $"{_mirrorUrl}/{filename.TrimStart('/')}";
|
||||
}
|
||||
|
||||
private bool TryGetCachedIndex(
|
||||
(string Release, string Architecture) key,
|
||||
out ImmutableArray<AlpinePackageMetadata> cached)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _indexCache.TryGetValue(key, out cached);
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryGetCachedPackage(string filename, out byte[] bytes)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _packageBytesByFilename.TryGetValue(filename, out bytes!);
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryGetCachedApkBuild(
|
||||
(string Release, string Repository, string PackageName) key,
|
||||
out string? content)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _apkBuildCache.TryGetValue(key, out content);
|
||||
}
|
||||
}
|
||||
|
||||
private static MemoryStream ToReadOnlyStream(byte[] bytes) =>
|
||||
new(bytes, writable: false);
|
||||
|
||||
private static void ValidateReleaseAndArch(string release, string architecture)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(release))
|
||||
{
|
||||
throw new ArgumentException("Release is required.", nameof(release));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(architecture))
|
||||
{
|
||||
throw new ArgumentException("Architecture is required.", nameof(architecture));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,3 +9,7 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
| AUDIT-0119-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0119-A | DONE | Applied + tests; revalidated 2026-01-06. |
|
||||
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
|
||||
|
||||
| QA-BINARYINDEX-VERIFY-027 | DONE | SPRINT_20260211_033 run-001: verify `local-mirror-layer-for-corpus-sources` corpus mirror/snapshot behavior for Alpine paths. |
|
||||
| QA-BINIDX-B1-001 | DONE | SPRINT_20260212_001 run-002: added `AlpineMirrorPackageSource` + offline fallback behavioral tests and reverified Tier 0/1/2 evidence. |
|
||||
|
||||
|
||||
@@ -9,3 +9,6 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
| AUDIT-0120-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0120-A | DONE | Applied + tests; revalidated 2026-01-06. |
|
||||
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
|
||||
|
||||
| QA-BINARYINDEX-VERIFY-027 | DONE | SPRINT_20260211_033 run-001: verify `local-mirror-layer-for-corpus-sources` corpus mirror/snapshot behavior for Debian paths. |
|
||||
|
||||
|
||||
@@ -0,0 +1,375 @@
|
||||
using System.Collections.Immutable;
|
||||
using System.Globalization;
|
||||
using System.IO.Compression;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace StellaOps.BinaryIndex.Corpus.Rpm;
|
||||
|
||||
/// <summary>
|
||||
/// Fetches RPM metadata and package payloads from mirrors with local cache fallback.
|
||||
/// </summary>
|
||||
public sealed class RpmMirrorPackageSource : IRpmPackageSource
|
||||
{
|
||||
private static readonly XNamespace CommonNs = "http://linux.duke.edu/metadata/common";
|
||||
private static readonly XNamespace RpmNs = "http://linux.duke.edu/metadata/rpm";
|
||||
|
||||
private readonly HttpClient _httpClient;
|
||||
private readonly ILogger<RpmMirrorPackageSource> _logger;
|
||||
private readonly string _mirrorUrl;
|
||||
private readonly object _sync = new();
|
||||
private readonly Dictionary<(string Distro, string Release, string Architecture), ImmutableArray<RpmPackageMetadata>> _indexCache = new();
|
||||
private readonly Dictionary<string, string> _packageUrlByFilename = new(StringComparer.Ordinal);
|
||||
private readonly Dictionary<string, byte[]> _packageBytesByFilename = new(StringComparer.Ordinal);
|
||||
private readonly Dictionary<(string Distro, string Release, string SrpmFilename), string?> _specFileCache = new();
|
||||
|
||||
public RpmMirrorPackageSource(
|
||||
HttpClient httpClient,
|
||||
ILogger<RpmMirrorPackageSource> logger,
|
||||
string mirrorUrl = "https://mirror.example.local/rpm")
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
_logger = logger;
|
||||
_mirrorUrl = mirrorUrl.TrimEnd('/');
|
||||
}
|
||||
|
||||
public async Task<ImmutableArray<RpmPackageMetadata>> FetchPackageIndexAsync(
|
||||
string distro,
|
||||
string release,
|
||||
string architecture,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
ValidateInputs(distro, release, architecture);
|
||||
var key = (distro, release, architecture);
|
||||
|
||||
if (TryGetCachedIndex(key, out var cached))
|
||||
{
|
||||
return cached;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var xml = await FetchPrimaryXmlAsync(distro, release, architecture, ct);
|
||||
var parsed = ParsePrimaryXml(xml, distro, release, architecture);
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
_indexCache[key] = parsed;
|
||||
}
|
||||
|
||||
return parsed;
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedIndex(key, out var fallback))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to fetch RPM primary metadata for {Distro}/{Release}/{Architecture}; returning cached result.",
|
||||
distro,
|
||||
release,
|
||||
architecture);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<string?> FetchSpecFileAsync(
|
||||
string distro,
|
||||
string release,
|
||||
string srpmFilename,
|
||||
CancellationToken ct = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(distro))
|
||||
{
|
||||
throw new ArgumentException("Distro is required.", nameof(distro));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(release))
|
||||
{
|
||||
throw new ArgumentException("Release is required.", nameof(release));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(srpmFilename))
|
||||
{
|
||||
throw new ArgumentException("SRPM filename is required.", nameof(srpmFilename));
|
||||
}
|
||||
|
||||
var key = (distro, release, srpmFilename);
|
||||
lock (_sync)
|
||||
{
|
||||
if (_specFileCache.TryGetValue(key, out var cached))
|
||||
{
|
||||
return cached;
|
||||
}
|
||||
}
|
||||
|
||||
var url = $"{_mirrorUrl}/{distro}/{release}/SRPMS/{srpmFilename.TrimStart('/')}";
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(url, ct);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var content = await response.Content.ReadAsStringAsync(ct);
|
||||
lock (_sync)
|
||||
{
|
||||
_specFileCache[key] = content;
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedSpec(key, out var fallback))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to fetch SRPM/spec payload for {Distro}/{Release}/{Srpm}; returning cached result.",
|
||||
distro,
|
||||
release,
|
||||
srpmFilename);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Stream> DownloadPackageAsync(string filename, CancellationToken ct = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
throw new ArgumentException("Filename is required.", nameof(filename));
|
||||
}
|
||||
|
||||
if (TryGetCachedPackage(filename, out var cachedBytes))
|
||||
{
|
||||
return ToReadOnlyStream(cachedBytes);
|
||||
}
|
||||
|
||||
var packageUrl = GetPackageUrl(filename);
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(packageUrl, HttpCompletionOption.ResponseHeadersRead, ct);
|
||||
response.EnsureSuccessStatusCode();
|
||||
var bytes = await response.Content.ReadAsByteArrayAsync(ct);
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
_packageBytesByFilename[filename] = bytes;
|
||||
}
|
||||
|
||||
return ToReadOnlyStream(bytes);
|
||||
}
|
||||
catch (Exception ex) when (TryGetCachedPackage(filename, out var fallbackBytes))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
ex,
|
||||
"Failed to download RPM package {Filename}; returning cached payload.",
|
||||
filename);
|
||||
return ToReadOnlyStream(fallbackBytes);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<string> FetchPrimaryXmlAsync(
|
||||
string distro,
|
||||
string release,
|
||||
string architecture,
|
||||
CancellationToken ct)
|
||||
{
|
||||
var basePath = $"{_mirrorUrl}/{distro}/{release}/{architecture}";
|
||||
var candidates = new[]
|
||||
{
|
||||
$"{basePath}/repodata/primary.xml.gz",
|
||||
$"{basePath}/repodata/primary.xml",
|
||||
};
|
||||
|
||||
Exception? lastError = null;
|
||||
foreach (var url in candidates)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var response = await _httpClient.GetAsync(url, ct);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (url.EndsWith(".gz", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
await using var compressed = await response.Content.ReadAsStreamAsync(ct);
|
||||
await using var gzip = new GZipStream(compressed, CompressionMode.Decompress, leaveOpen: false);
|
||||
using var reader = new StreamReader(gzip);
|
||||
return await reader.ReadToEndAsync(ct);
|
||||
}
|
||||
|
||||
return await response.Content.ReadAsStringAsync(ct);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
lastError = ex;
|
||||
}
|
||||
}
|
||||
|
||||
throw new InvalidOperationException(
|
||||
$"Unable to fetch RPM primary metadata for {distro}/{release}/{architecture}.",
|
||||
lastError);
|
||||
}
|
||||
|
||||
private ImmutableArray<RpmPackageMetadata> ParsePrimaryXml(
|
||||
string xml,
|
||||
string distro,
|
||||
string release,
|
||||
string architecture)
|
||||
{
|
||||
var doc = XDocument.Parse(xml, LoadOptions.None);
|
||||
var packages = new List<RpmPackageMetadata>();
|
||||
var packageUrls = new List<(string Filename, string Url)>();
|
||||
|
||||
foreach (var package in doc.Descendants(CommonNs + "package"))
|
||||
{
|
||||
var name = package.Element(CommonNs + "name")?.Value;
|
||||
var arch = package.Element(CommonNs + "arch")?.Value;
|
||||
var versionElement = package.Element(CommonNs + "version");
|
||||
var checksum = package.Element(CommonNs + "checksum")?.Value;
|
||||
var locationHref = package.Element(CommonNs + "location")?.Attribute("href")?.Value;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name) ||
|
||||
string.IsNullOrWhiteSpace(arch) ||
|
||||
versionElement is null ||
|
||||
string.IsNullOrWhiteSpace(checksum) ||
|
||||
string.IsNullOrWhiteSpace(locationHref))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var epoch = ParseInt(versionElement.Attribute("epoch")?.Value, 0);
|
||||
var version = versionElement.Attribute("ver")?.Value ?? "0";
|
||||
var releaseValue = versionElement.Attribute("rel")?.Value ?? "0";
|
||||
var size = ParseLong(package.Element(CommonNs + "size")?.Attribute("package")?.Value, 0L);
|
||||
var buildUnix = ParseLong(package.Element(CommonNs + "time")?.Attribute("build")?.Value, 0L);
|
||||
DateTimeOffset? buildTime = buildUnix > 0 ? DateTimeOffset.FromUnixTimeSeconds(buildUnix) : null;
|
||||
|
||||
var metadata = new RpmPackageMetadata
|
||||
{
|
||||
Name = name,
|
||||
Arch = arch,
|
||||
Epoch = epoch,
|
||||
Version = version,
|
||||
Release = releaseValue,
|
||||
Filename = locationHref,
|
||||
Size = size,
|
||||
Checksum = checksum,
|
||||
SourceRpm = package.Element(RpmNs + "sourcerpm")?.Value,
|
||||
Summary = package.Element(CommonNs + "summary")?.Value,
|
||||
Description = package.Element(CommonNs + "description")?.Value,
|
||||
BuildTime = buildTime,
|
||||
};
|
||||
|
||||
packages.Add(metadata);
|
||||
packageUrls.Add((metadata.Filename, $"{_mirrorUrl}/{distro}/{release}/{architecture}/{locationHref.TrimStart('/')}"));
|
||||
}
|
||||
|
||||
var normalized = packages
|
||||
.OrderBy(p => p.Name, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Version, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Release, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Arch, StringComparer.Ordinal)
|
||||
.ThenBy(p => p.Filename, StringComparer.Ordinal)
|
||||
.ToImmutableArray();
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
foreach (var (filename, url) in packageUrls)
|
||||
{
|
||||
_packageUrlByFilename[filename] = url;
|
||||
var basename = Path.GetFileName(filename);
|
||||
if (!string.IsNullOrWhiteSpace(basename))
|
||||
{
|
||||
_packageUrlByFilename[basename] = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return normalized;
|
||||
}
|
||||
|
||||
private string GetPackageUrl(string filename)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
if (_packageUrlByFilename.TryGetValue(filename, out var url))
|
||||
{
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
return $"{_mirrorUrl}/{filename.TrimStart('/')}";
|
||||
}
|
||||
|
||||
private bool TryGetCachedIndex(
|
||||
(string Distro, string Release, string Architecture) key,
|
||||
out ImmutableArray<RpmPackageMetadata> cached)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _indexCache.TryGetValue(key, out cached);
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryGetCachedPackage(string filename, out byte[] bytes)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _packageBytesByFilename.TryGetValue(filename, out bytes!);
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryGetCachedSpec((string Distro, string Release, string SrpmFilename) key, out string? spec)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
return _specFileCache.TryGetValue(key, out spec);
|
||||
}
|
||||
}
|
||||
|
||||
private static int ParseInt(string? value, int fallback)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
|
||||
return int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsed)
|
||||
? parsed
|
||||
: fallback;
|
||||
}
|
||||
|
||||
private static long ParseLong(string? value, long fallback)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
|
||||
return long.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsed)
|
||||
? parsed
|
||||
: fallback;
|
||||
}
|
||||
|
||||
private static MemoryStream ToReadOnlyStream(byte[] bytes) =>
|
||||
new(bytes, writable: false);
|
||||
|
||||
private static void ValidateInputs(string distro, string release, string architecture)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(distro))
|
||||
{
|
||||
throw new ArgumentException("Distro is required.", nameof(distro));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(release))
|
||||
{
|
||||
throw new ArgumentException("Release is required.", nameof(release));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(architecture))
|
||||
{
|
||||
throw new ArgumentException("Architecture is required.", nameof(architecture));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,3 +9,7 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
| AUDIT-0121-T | DONE | Test coverage audit for StellaOps.BinaryIndex.Corpus.Rpm; revalidated 2026-01-06. |
|
||||
| AUDIT-0121-A | DONE | Applied + tests; revalidated 2026-01-06. |
|
||||
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
|
||||
|
||||
| QA-BINARYINDEX-VERIFY-027 | DONE | SPRINT_20260211_033 run-001: verify `local-mirror-layer-for-corpus-sources` corpus mirror/snapshot behavior for RPM paths. |
|
||||
| QA-BINIDX-B1-001 | DONE | SPRINT_20260212_001 run-002: added `RpmMirrorPackageSource` + offline fallback behavioral tests and reverified Tier 0/1/2 evidence. |
|
||||
|
||||
|
||||
@@ -5,7 +5,12 @@ Source of truth: `docs-archived/implplan/2025-12-29-csproj-audit/SPRINT_20251229
|
||||
|
||||
| Task ID | Status | Notes |
|
||||
| --- | --- | --- |
|
||||
| QA-BINARYINDEX-VERIFY-014 | BLOCKED | SPRINT_20260211_030 run-001: ownership collision while another lane terminalized `corpus-ingestion-and-query-services`; this lane stopped at artifact collection only. |
|
||||
| AUDIT-0118-M | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0118-T | DONE | Revalidated 2026-01-06. |
|
||||
| AUDIT-0118-A | DONE | Applied corpus contract fixes + tests; revalidated 2026-01-06. |
|
||||
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
|
||||
|
||||
| QA-BINARYINDEX-VERIFY-027 | DONE | SPRINT_20260211_033 run-001: verify `local-mirror-layer-for-corpus-sources` across Tier 0/1/2 evidence and terminalize dossier state. |
|
||||
| QA-BINIDX-B1-001 | DONE | SPRINT_20260212_001 run-002: implemented and reverified local mirror layer with Alpine/RPM package source coverage and refreshed checked dossier/state. |
|
||||
|
||||
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,304 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Corpus/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Corpus.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/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.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.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Corpus/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/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.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.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,304 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.Corpus/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Http": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Core": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Corpus.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/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.DependencyInjection.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.Diagnostics/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Diagnostics": "10.0.1",
|
||||
"Microsoft.Extensions.Logging": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Logging.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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Contracts": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.Corpus/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/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zerXV0GAR9LCSXoSIApbWn+Dq1/T+6vbXMHGduq1LoVQRHT0BXsGQEau0jeLUBUcsoF/NaUT8ADPu8b+eNcIyg==",
|
||||
"path": "microsoft.extensions.dependencyinjection/10.0.1",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.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.Diagnostics/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YaocqxscJLxLit0F5yq2XyB+9C7rSRfeTL7MJIl7XwaOoUO3i0EqfO2kmtjiRduYWw7yjcSINEApYZbzjau2gQ==",
|
||||
"path": "microsoft.extensions.diagnostics/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QMoMrkNpnQym5mpfdxfxpRDuqLpsOuztguFvzH9p+Ex+do+uLFoi7UkAsBO4e9/tNR3eMFraFf2fOAi2cp3jjA==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZXJup9ReE1Ot3M8jqcw1b/lnc8USxyYS3cyLsssU39u04TES9JNGviWUGIvP3K7mMU3TF7kQl2aS0SmVwegflw==",
|
||||
"path": "microsoft.extensions.http/10.0.1",
|
||||
"hashPath": "microsoft.extensions.http.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9ItMpMLFZFJFqCuHLLbR3LiA4ahA8dMtYuXpXl2YamSDWZhYS9BruPprkftY0tYi2bQ0slNrixdFm+4kpz1g5w==",
|
||||
"path": "microsoft.extensions.logging/10.0.1",
|
||||
"hashPath": "microsoft.extensions.logging.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.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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
@@ -0,0 +1,303 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.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": {}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/1.0.0": {
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Contracts.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.Decompiler/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"
|
||||
},
|
||||
"StellaOps.BinaryIndex.Contracts/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": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,5 +4,8 @@ Source of truth: `docs/implplan/SPRINT_20260130_002_Tools_csproj_remediation_sol
|
||||
|
||||
| Task ID | Status | Notes |
|
||||
| --- | --- | --- |
|
||||
| QA-BINARYINDEX-VERIFY-032 | DOING | SPRINT_20260211_033 run-001: verifying `symbol-source-connectors` with Tier 0/1/2 evidence and claim-parity review. |
|
||||
| QA-BINARYINDEX-VERIFY-031 | DONE | SPRINT_20260211_033 run-001: Tier 0/1/2 command checks passed, but claim-parity review terminalized `symbol-change-tracking-in-binary-diffs` as `not_implemented` because `IrDiffGenerator` is still placeholder-backed. |
|
||||
| QA-BINARYINDEX-VERIFY-015 | DONE | SPRINT_20260211_033 run-002: remediated PatchCoverage runtime wiring and rechecked Tier 0/1/2; terminalized `delta-signature-matching-and-patch-coverage-analysis` as `not_implemented` because `IrDiffGenerator` remains placeholder-backed. |
|
||||
| REMED-05 | TODO | Remediation checklist: docs/implplan/audits/csproj-standards/remediation/checklists/src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.DeltaSig/StellaOps.BinaryIndex.DeltaSig.md. |
|
||||
| REMED-06 | DONE | SOLID review notes captured for SPRINT_20260130_002. |
|
||||
|
||||
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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.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"
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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.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"
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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.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"
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Caching.Memory": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Normalization": "1.0.0",
|
||||
"StellaOps.BinaryIndex.Semantic": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.DeltaSig.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Caching.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1",
|
||||
"Microsoft.Extensions.Primitives": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Caching.Memory.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.Primitives/10.0.1": {
|
||||
"runtime": {
|
||||
"lib/net10.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "10.0.0.0",
|
||||
"fileVersion": "10.0.125.57005"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Options": "10.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.GroundTruth.Abstractions.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.1",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "10.0.1",
|
||||
"StellaOps.BinaryIndex.Disassembly.Abstractions": "1.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"StellaOps.BinaryIndex.Normalization.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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StellaOps.BinaryIndex.DeltaSig/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Abstractions/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Vb1vVAQDxHpXVdL9fpOX2BzeV7bbhzG4pAcIKRauRl0/VfkE8mq0f+fYC+gWICh3dlzTZInJ/cTeBS2MgU/XvQ==",
|
||||
"path": "microsoft.extensions.caching.abstractions/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.abstractions.10.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Caching.Memory/10.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NxqSP0Ky4dZ5ybszdZCqs1X2C70s+dXflqhYBUh/vhcQVTIooNCXIYnLVbafoAFGZMs51d9+rHxveXs0ZC3SQQ==",
|
||||
"path": "microsoft.extensions.caching.memory/10.0.1",
|
||||
"hashPath": "microsoft.extensions.caching.memory.10.0.1.nupkg.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.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"
|
||||
},
|
||||
"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.GroundTruth.Abstractions/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Normalization/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"StellaOps.BinaryIndex.Semantic/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user