\hypertarget { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t} { } \doxysection { theo\+ ::obf\+ ::engine\+ \_ \+ t Class Reference}
\label { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t} \index { theo::obf::engine\_ t@{ theo::obf::engine\_ t} }
singleton obfuscation engine class. this class is responsible for keeping track of the registered passes and the order in which to execute them.
{ \ttfamily \# include \char `\" { } engine.\+ hpp\char `\" { } }
\doxysubsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
void \mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a8ffc963a133653fa3a0875798d0d3426} { add\+ \_ \+ pass} } (\mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1pass_ _ t} { pass\+ \_ \+ t} } $ \ast $ pass)
\begin { DoxyCompactList} \small \item \em add a pass to the engine. the order in which you call this function matters as the underlying data structure that contains the passes is a vector. \end { DoxyCompactList} \item
void \mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a7acfdbe9c229cf1f351cec610ab193d3} { run} } (\mbox { \hyperlink { classtheo_ 1_ 1decomp_ 1_ 1symbol_ _ t} { decomp\+ ::symbol\+ \_ \+ t} } $ \ast $ sym)
\begin { DoxyCompactList} \small \item \em run all the passes on the symbol. this function will only run a pass if the symbol is the same type as the pass requires. \end { DoxyCompactList} \end { DoxyCompactItemize}
\doxysubsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
static \mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t} { engine\+ \_ \+ t} } $ \ast $ \mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a58715f5c3ade824a65e602aba570040e} { get} } ()
\begin { DoxyCompactList} \small \item \em get the singleton object of this class. \end { DoxyCompactList} \end { DoxyCompactItemize}
\doxysubsection { Detailed Description}
singleton obfuscation engine class. this class is responsible for keeping track of the registered passes and the order in which to execute them.
Definition at line \mbox { \hyperlink { engine_ 8hpp_ source_ l00042} { 42} } of file \mbox { \hyperlink { engine_ 8hpp_ source} { engine.\+ hpp} } .
\doxysubsection { Member Function Documentation}
\mbox { \Hypertarget { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a8ffc963a133653fa3a0875798d0d3426} \label { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a8ffc963a133653fa3a0875798d0d3426} }
\index { theo::obf::engine\_ t@{ theo::obf::engine\_ t} !add\_ pass@{ add\_ pass} }
\index { add\_ pass@{ add\_ pass} !theo::obf::engine\_ t@{ theo::obf::engine\_ t} }
\doxysubsubsection { \texorpdfstring { add\_ pass()} { add\_ pass()} }
{ \footnotesize \ttfamily void theo\+ ::obf\+ ::engine\+ \_ \+ t\+ ::add\+ \_ \+ pass (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classtheo_1_1obf_1_1pass__t}{pass\+\_\+t}} $\ast$}] { pass } \end { DoxyParamCaption} )}
add a pass to the engine. the order in which you call this function matters as the underlying data structure that contains the passes is a vector.
\begin { DoxyParams} { Parameters}
{ \em pass} & a pointer to the pass in which to add to the engine.\\
\hline
\end { DoxyParams}
Definition at line \mbox { \hyperlink { engine_ 8cpp_ source_ l00039} { 39} } of file \mbox { \hyperlink { engine_ 8cpp_ source} { engine.\+ cpp} } .
\begin { DoxyCode} { 0}
\DoxyCodeLine { 00039 \{ }
\DoxyCodeLine { 00040 passes.push\_ back(pass);}
\DoxyCodeLine { 00041 \} }
\end { DoxyCode}
\mbox { \Hypertarget { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a58715f5c3ade824a65e602aba570040e} \label { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a58715f5c3ade824a65e602aba570040e} }
\index { theo::obf::engine\_ t@{ theo::obf::engine\_ t} !get@{ get} }
\index { get@{ get} !theo::obf::engine\_ t@{ theo::obf::engine\_ t} }
\doxysubsubsection { \texorpdfstring { get()} { get()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t} { engine\+ \_ \+ t} } $ \ast $ theo\+ ::obf\+ ::engine\+ \_ \+ t\+ ::get (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
get the singleton object of this class.
\begin { DoxyReturn} { Returns}
the singleton object of this class.
\end { DoxyReturn}
Definition at line \mbox { \hyperlink { engine_ 8cpp_ source_ l00034} { 34} } of file \mbox { \hyperlink { engine_ 8cpp_ source} { engine.\+ cpp} } .
\begin { DoxyCode} { 0}
\DoxyCodeLine { 00034 \{ }
\DoxyCodeLine { 00035 \textcolor { keyword} { static} engine\_ t obj;}
\DoxyCodeLine { 00036 \textcolor { keywordflow} { return} \& obj;}
\DoxyCodeLine { 00037 \} }
\end { DoxyCode}
Referenced by \mbox { \hyperlink { theo_ 8cpp_ source_ l00056} { theo\+ ::theo\+ \_ \+ t\+ ::compose()} } , and \mbox { \hyperlink { main_ 8cpp_ source_ l00057} { main()} } .
\mbox { \Hypertarget { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a7acfdbe9c229cf1f351cec610ab193d3} \label { classtheo_ 1_ 1obf_ 1_ 1engine_ _ t_ a7acfdbe9c229cf1f351cec610ab193d3} }
\index { theo::obf::engine\_ t@{ theo::obf::engine\_ t} !run@{ run} }
\index { run@{ run} !theo::obf::engine\_ t@{ theo::obf::engine\_ t} }
\doxysubsubsection { \texorpdfstring { run()} { run()} }
{ \footnotesize \ttfamily void theo\+ ::obf\+ ::engine\+ \_ \+ t\+ ::run (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classtheo_1_1decomp_1_1symbol__t}{decomp\+::symbol\+\_\+t}} $\ast$}] { sym } \end { DoxyParamCaption} )}
run all the passes on the symbol. this function will only run a pass if the symbol is the same type as the pass requires.
\begin { DoxyParams} { Parameters}
{ \em sym} & symbol to run all passes on.\\
\hline
\end { DoxyParams}
Definition at line \mbox { \hyperlink { engine_ 8cpp_ source_ l00043} { 43} } of file \mbox { \hyperlink { engine_ 8cpp_ source} { engine.\+ cpp} } .
\begin { DoxyCode} { 0}
\DoxyCodeLine { 00043 \{ }
\DoxyCodeLine { 00044 std::for\_ each(passes.begin(), passes.end(), [\& ](pass\_ t* pass) \{ }
\DoxyCodeLine { 00045 if (sym-\/ >type() \& pass-\/ >sym\_ type())}
\DoxyCodeLine { 00046 pass-\/ >run(sym);}
\DoxyCodeLine { 00047 \} );}
\DoxyCodeLine { 00048 \} }
\end { DoxyCode}
The documentation for this class was generated from the following files\+ :\begin { DoxyCompactItemize}
\item
include/obf/\mbox { \hyperlink { engine_ 8hpp} { engine.\+ hpp} } \item
src/obf/\mbox { \hyperlink { engine_ 8cpp} { engine.\+ cpp} } \end { DoxyCompactItemize}