You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Theodosius/doxygen/latex/d9/d18/classtheo_1_1obf_1_1engine_...

106 lines
5.0 KiB

\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 $<$engine.\+hpp$>$}
\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.
\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}
\begin{DoxyCode}{0}
\DoxyCodeLine{39 \{}
\DoxyCodeLine{40 passes.push\_back(pass);}
\DoxyCodeLine{41 \}}
\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}
\begin{DoxyCode}{0}
\DoxyCodeLine{34 \{}
\DoxyCodeLine{35 \textcolor{keyword}{static} engine\_t obj;}
\DoxyCodeLine{36 \textcolor{keywordflow}{return} \&obj;}
\DoxyCodeLine{37 \}}
\end{DoxyCode}
\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}
\begin{DoxyCode}{0}
\DoxyCodeLine{43 \{}
\DoxyCodeLine{44 std::for\_each(passes.begin(), passes.end(), [\&](pass\_t* pass) \{}
\DoxyCodeLine{45 if (sym-\/>type() \& pass-\/>sym\_type())}
\DoxyCodeLine{46 pass-\/>run(sym);}
\DoxyCodeLine{47 \});}
\DoxyCodeLine{48 \}}
\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}