#[non_exhaustive]pub enum ArtifactContainer {
SystemHive,
SetupApiLog,
EventLog,
LnkFile,
KernelLog,
SoftwareHive,
UserHive,
DeviceMedia,
MacosPlist,
}Expand description
The physical storage container an artifact lives in — the tamper surface.
Corroboration counts independent sources, and independence is a property of the
container, not the recording mechanism: two sources in the same container share one
tamper surface, so their agreement is not tamper-independent. Distinct from
SourceKind, which is the recording mechanism (guards against parse error and
coincidence, a weaker form of independence).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SystemHive
The SYSTEM registry hive (USBSTOR, MountedDevices, …).
SetupApiLog
The setupapi.dev.log text log.
EventLog
A Windows event log (.evtx).
LnkFile
A Shell Link file (.lnk) or jump list on the filesystem.
KernelLog
A Linux kernel log file (syslog / dmesg).
SoftwareHive
The SOFTWARE registry hive (VolumeInfoCache, WPD, …) — a file distinct from the
SYSTEM hive, so a separate tamper surface.
UserHive
A per-user NTUSER.DAT hive (MountPoints2, …) — a distinct per-user tamper surface.
DeviceMedia
The physical device’s own media (MBR/VBR boot sectors) — the strongest surface.
MacosPlist
A macOS preferences/property-list artifact (com.apple.iPod.plist, …).
Trait Implementations§
Source§impl Clone for ArtifactContainer
impl Clone for ArtifactContainer
Source§fn clone(&self) -> ArtifactContainer
fn clone(&self) -> ArtifactContainer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ArtifactContainer
Source§impl Debug for ArtifactContainer
impl Debug for ArtifactContainer
impl Eq for ArtifactContainer
Source§impl Hash for ArtifactContainer
impl Hash for ArtifactContainer
Source§impl Ord for ArtifactContainer
impl Ord for ArtifactContainer
Source§fn cmp(&self, other: &ArtifactContainer) -> Ordering
fn cmp(&self, other: &ArtifactContainer) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ArtifactContainer
impl PartialEq for ArtifactContainer
Source§impl PartialOrd for ArtifactContainer
impl PartialOrd for ArtifactContainer
Source§impl Serialize for ArtifactContainer
impl Serialize for ArtifactContainer
impl StructuralPartialEq for ArtifactContainer
Auto Trait Implementations§
impl Freeze for ArtifactContainer
impl RefUnwindSafe for ArtifactContainer
impl Send for ArtifactContainer
impl Sync for ArtifactContainer
impl Unpin for ArtifactContainer
impl UnsafeUnpin for ArtifactContainer
impl UnwindSafe for ArtifactContainer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more