LLVM Objects

These classes mirror LLVM’s internal IR objects and are passed as parameters to every ObfuscationConfig callback. They are read-only; O-MVLL does not allow mutating IR through these bindings.

Module

class omvll.Module

Mirrors llvm::Module. Represents a single compilation unit (one source file). Passed as the first argument to every callback.

property data_layout

The data layout string describing the target platform’s pointer sizes, endianness, and alignment rules (e.g. e-m:o-i64:64-i128:128-n32:64-S128).

Type:

str

dump(self: omvll.Module, file: str) None

Write the full LLVM IR of this module to file.

Parameters:

file (str) – Output file path.

property identifier

The module identifier — typically the full file path as recorded by the compiler.

Type:

str

property instruction_count

Total number of non-debug IR instructions across all functions in the module.

Type:

int

property name

The short name of the module (last component of the identifier).

Type:

str

property source_filename

The source filename recorded in the module’s debug info.

Type:

str

Function

class omvll.Function

Mirrors llvm::Function. Represents a single function within a module. Passed as the second argument to every callback.

property demangled_name

The human-readable demangled name, e.g. _JNIEnv::NewStringUTF(char const*) or main.

Type:

str

property name

The mangled name of the function as it appears in the object file, e.g. _ZN7_JNIEnv12NewStringUTFEPKc or main.

Type:

str

property nb_instructions

The number of IR instructions in the function.

Type:

int

Struct

class omvll.Struct

Mirrors llvm::StructType. Passed to obfuscate_struct_access() when the pass encounters an access to a struct field.

property name

The name of the structure or class as recorded in the IR, e.g.:

  • struct.std::__ndk1::basic_string<char>

  • struct._JNIEnv

  • class.SecretString

Type:

str

GlobalVariable

class omvll.GlobalVariable

Mirrors llvm::GlobalVariable. Passed to obfuscate_variable_access() when the pass encounters a reference to a global variable.

property demangled_name

The demangled name of the global variable.

Type:

str

property name

The mangled name of the global variable.

Type:

str