pub enum DeobfuscationCapability {
ResolvedStaticFields,
DecryptedStrings,
RestoredControlFlow,
SimplifiedPredicates,
DevirtualizedCalls,
InlinedMethods,
}Expand description
Capability milestone produced or consumed by a deobfuscation pass.
The scheduler uses these to compute pass-execution order: if pass A provides a capability and pass B requires it, B is scheduled in a later layer than A.
Variants§
ResolvedStaticFields
Static field values have been resolved to concrete constants.
Provided by passes that analyze static initializers or field decryptors. Required by passes that need constant values for further simplification.
DecryptedStrings
Encrypted strings have been decrypted to their plaintext values.
Provided by string decryption passes. Required by passes that analyze string content (e.g., proxy call resolution).
RestoredControlFlow
Control flow flattening has been reversed to normal structured control flow.
Provided by CFG unflattening passes. Required by passes that assume natural loop structure.
SimplifiedPredicates
Opaque predicates have been simplified or removed.
Provided by OpaquePredicatePass.
Required by passes that need unobscured branch targets.
DevirtualizedCalls
Proxy or virtual calls have been devirtualized to direct calls.
Provided by devirtualization passes. Required by passes that need accurate call graphs (e.g., inlining, dead method detection).
InlinedMethods
Small or pure methods have been inlined at their call sites.
Provided by inlining passes. Required by passes that benefit from a flattened call graph.
Trait Implementations§
Source§impl Clone for DeobfuscationCapability
impl Clone for DeobfuscationCapability
Source§fn clone(&self) -> DeobfuscationCapability
fn clone(&self) -> DeobfuscationCapability
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeobfuscationCapability
impl Debug for DeobfuscationCapability
Source§impl Hash for DeobfuscationCapability
impl Hash for DeobfuscationCapability
Source§impl PartialEq for DeobfuscationCapability
impl PartialEq for DeobfuscationCapability
Source§fn eq(&self, other: &DeobfuscationCapability) -> bool
fn eq(&self, other: &DeobfuscationCapability) -> bool
self and other values to be equal, and is used by ==.impl Copy for DeobfuscationCapability
impl Eq for DeobfuscationCapability
impl StructuralPartialEq for DeobfuscationCapability
Auto Trait Implementations§
impl Freeze for DeobfuscationCapability
impl RefUnwindSafe for DeobfuscationCapability
impl Send for DeobfuscationCapability
impl Sync for DeobfuscationCapability
impl Unpin for DeobfuscationCapability
impl UnsafeUnpin for DeobfuscationCapability
impl UnwindSafe for DeobfuscationCapability
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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