Theodosius  v3.0
Jit linker, mapper, obfuscator, and mutator
Public Member Functions | List of all members
theo::decomp::decomp_t Class Reference

the main decomposition class which is responsible for breaking down lib file into coff files, and extracted used symbols from the coff files. More...

#include <decomp.hpp>

Public Member Functions

 decomp_t (std::vector< std::uint8_t > &lib, recomp::symbol_table_t *syms)
 the explicit constructor for decomp_t More...
 
std::vector< routine_trtns ()
 gets all of the routine objects. More...
 
std::vector< std::uint8_t > lib ()
 gets a vector of bytes consisting of the lib file. More...
 
std::vector< std::vector< std::uint8_t > > objs ()
 gets all the obj files as a vector of a vector of bytes. More...
 
recomp::symbol_table_tsyms ()
 gets the symbol table. More...
 
std::map< coff::section_header_t *, std::size_t > & scn_hash_tbl ()
 gets the section hash table section header --> hash of the section header ptr. More...
 
std::optional< recomp::symbol_table_t * > decompose (std::string &entry_sym)
 decomposes (extracts) the symbols used. this function determines all used symbols given the entry point. More...
 

Detailed Description

the main decomposition class which is responsible for breaking down lib file into coff files, and extracted used symbols from the coff files.

Constructor & Destructor Documentation

◆ decomp_t()

theo::decomp::decomp_t::decomp_t ( std::vector< std::uint8_t > &  lib,
recomp::symbol_table_t syms 
)
explicit

the explicit constructor for decomp_t

Parameters
libvector of bytes containing the lib file.
symssymbol table that gets populated and managed by this class.

Member Function Documentation

◆ decompose()

std::optional< recomp::symbol_table_t * > theo::decomp::decomp_t::decompose ( std::string &  entry_sym)

decomposes (extracts) the symbols used. this function determines all used symbols given the entry point.

Parameters
entry_symthe entry point symbol name.
Returns
returns an optional pointer to the symbol table. no value in the optional object on failure.

◆ lib()

std::vector< std::uint8_t > theo::decomp::decomp_t::lib ( )

gets a vector of bytes consisting of the lib file.

Returns
a vector of bytes consisting of the lib file.

◆ objs()

std::vector< std::vector< std::uint8_t > > theo::decomp::decomp_t::objs ( )

gets all the obj files as a vector of a vector of bytes.

Returns
all the obj files as a vector of a vector of bytes.

◆ rtns()

std::vector< routine_t > theo::decomp::decomp_t::rtns ( )

gets all of the routine objects.

Returns
vector of routine objects.

◆ scn_hash_tbl()

std::map< coff::section_header_t *, std::size_t > & theo::decomp::decomp_t::scn_hash_tbl ( )

gets the section hash table section header --> hash of the section header ptr.

Returns
the section hash table section header --> hash of the section header ptr.

◆ syms()

recomp::symbol_table_t * theo::decomp::decomp_t::syms ( )

gets the symbol table.

Returns
the symbol table.

The documentation for this class was generated from the following files: