pub enum DataPattern {
Random(Box<Rng>),
StripeZero {
zeroes: Vec<AggressorPtr>,
},
Zero,
StripeOne {
ones: Vec<AggressorPtr>,
},
One,
}Expand description
Memory initialization patterns for Rowhammer attacks.
Different patterns can be used to maximize the probability of inducing bit flips. Stripe patterns alternate between aggressor rows (ones/zeros) and victim rows (opposite values) to create charge transfer between adjacent DRAM rows.
Variants§
Random(Box<Rng>)
Random data pattern using a seeded RNG
StripeZero
Stripe pattern with zeros at aggressor rows, ones elsewhere
Fields
§
zeroes: Vec<AggressorPtr>The rows to contain 0x00
Zero
All zeros (0x00)
StripeOne
Stripe pattern with ones at aggressor rows, zeros elsewhere
Fields
§
ones: Vec<AggressorPtr>The rows to contain 0xFF
One
All ones (0xFF)
Trait Implementations§
Source§impl Clone for DataPattern
impl Clone for DataPattern
Source§fn clone(&self) -> DataPattern
fn clone(&self) -> DataPattern
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DataPattern
impl Debug for DataPattern
Source§impl PartialEq for DataPattern
impl PartialEq for DataPattern
Source§impl Serialize for DataPattern
impl Serialize for DataPattern
impl Eq for DataPattern
impl StructuralPartialEq for DataPattern
Auto Trait Implementations§
impl Freeze for DataPattern
impl RefUnwindSafe for DataPattern
impl !Send for DataPattern
impl !Sync for DataPattern
impl Unpin for DataPattern
impl UnwindSafe for DataPattern
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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