Theodosius v3.0
Jit linker, symbol mapper, and obfuscator
|
▼Ntheo | The outer most encompassing namespace of this project. |
▼Ndecomp | the namespace that contains all of the decomposition related code. |
Cdecomp_t | the main decomposition class which is responsible for breaking down lib file into coff files, and extracted used symbols from the coff files. |
Croutine_t | the routine class which is responsible for creating symbols for routines. if the routine is located inside a section with the name ".split" it will break functions into instruction symbols. |
Csymbol_t | symbol_t is an abstraction upon the coff symbol. this allows for easier manipulation of the symbol. symbols can be different things, sections, functions, and even instructions (when functions are broken down) |
▼Nobf | this is the main namespace for obfuscation related things. |
▼Ntransform | this namespace encompasses the code for transforming relocations. |
Cadd_op_t | |
Coperation_t | operation_t is the base class for all types of transformations. classes that inherit this class are singleton and simply call the super constructor (operation_t::operation_t). |
Crol_op_t | |
Cror_op_t | |
Csub_op_t | |
Cxor_op_t | |
Cengine_t | singleton obfuscation engine class. this class is responsible for keeping track of the registered passes and the order in which to execute them. |
Chello_world_pass_t | hello world pass example of how to inherit pass_t. |
Cjcc_rewrite_pass_t | jcc rewrite pass which rewrites rip relative jcc's so that they are position independent |
Cnext_inst_pass_t | This pass is used to generate transformations and jmp code to change RIP to the next instruction |
Cpass_t | the pass_t class is a base clase for all passes made. you must override the pass_t::run virtual function and declare the logic of your pass there |
Creloc_transform_pass_t | this pass is like the next_inst_pass, however, relocations are encrypted with transformations instead of the address of the next instruction. this pass only runs at the instruction level and appends transformations into the reloc_t object of the instruction symbol |
▼Nrecomp | this namespace encompasses all recomposition related code. |
Crecomp_t | the main class responsible for recomposition |
Creloc_t | meta data about a relocation for a symbol |
Csymbol_table_t | this class is a high level wrapper for a hashmap that contains decomp::symbol_t values. the symbol values are references by a hashcode. |
Ctheo_t | the main class which encapsulates a symbol table, decomp, and recomp objects. This class is a bridge that connects all three: decomp, obf, recomp |