Global Configuration#
- omvll.config#
Attribute associated with the
omvll.config_t
object
- class omvll.config_t#
This class is used to configure the global behavior of O-MVLL.
It can be accessed through the global
omvll.config
attribute- property inline_jni_wrappers#
This boolean attribute is used to force inlining JNI C++ wrapper. For instance
GetStringChars
:const jchar* GetStringChars(jstring string, jboolean* isCopy) { return functions->GetStringChars(this, string, isCopy); }
The default value is
True
.
- property passes#
This ordered list contains the sequence of the obfuscation passes that must be used. It should not be modified unless you know what you do.
This attribute is set by default to these values:
- omvll::AntiHook
- omvll::StringEncoding
- omvll::OpaqueFieldAccess
- omvll::ControlFlowFlattening
- omvll::BreakControlFlow
- omvll::OpaqueConstants
- omvll::Arithmetic
- omvll::Cleaning
- property shuffle_functions#
Whether the postition of Module’s functions should be shuffled.
This randomization is used to avoid the same (relative) position of the functions for two different builds of the protected binary.
For instance, if the original source code is composed of the following functions:
void hello(); void hello_world(); void say_hi();
In the final (stripped) binary, the functions appear as the following sequence:
sub_3455() // hello sub_8A74() // hello_world sub_AF34() // say_hi
If this value is set to
True
(which is the default value), the sequence is randomized.