<p>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.
<areahref="../../d4/dad/classtheo_1_1obf_1_1pass__t.html"title="the pass_t class is a base clase for all passes made. you must override the pass_t::run virtual funct..."alt="theo::obf::pass_t"shape="rect"coords="0,0,198,24"/>
<trclass="memdesc:a24e122f6be18a88ea1809252ab3ec0b9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">virtual method which must be implimented by the pass that inherits this class. <ahref="../../dc/d39/classtheo_1_1obf_1_1reloc__transform__pass__t.html#a24e122f6be18a88ea1809252ab3ec0b9">More...</a><br/></td></tr>
<trclass="inherit_header pub_methods_classtheo_1_1obf_1_1pass__t"><tdcolspan="2"onclick="javascript:toggleInherit('pub_methods_classtheo_1_1obf_1_1pass__t')"><imgsrc="../../closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="../../d4/dad/classtheo_1_1obf_1_1pass__t.html">theo::obf::pass_t</a></td></tr>
<trclass="memdesc:abd4ab22cc2822b968267be7f8397d611 inherit pub_methods_classtheo_1_1obf_1_1pass__t"><tdclass="mdescLeft"> </td><tdclass="mdescRight">the explicit constructor of the <aclass="el"href="../../d4/dad/classtheo_1_1obf_1_1pass__t.html"title="the pass_t class is a base clase for all passes made. you must override the pass_t::run virtual funct...">pass_t</a> base class. <ahref="../../d4/dad/classtheo_1_1obf_1_1pass__t.html#abd4ab22cc2822b968267be7f8397d611">More...</a><br/></td></tr>
<trclass="memdesc:acfadc013ff0754d66a18baffdb1a61d1 inherit pub_methods_classtheo_1_1obf_1_1pass__t"><tdclass="mdescLeft"> </td><tdclass="mdescRight">virtual method which must be implimented by the pass that inherits this class. <ahref="../../d4/dad/classtheo_1_1obf_1_1pass__t.html#acfadc013ff0754d66a18baffdb1a61d1">More...</a><br/></td></tr>
<trclass="memdesc:a46608a6c2dfb8ff657e44be9b50e0dfb inherit pub_methods_classtheo_1_1obf_1_1pass__t"><tdclass="mdescLeft"> </td><tdclass="mdescRight">gets the passes symbol type. <ahref="../../d4/dad/classtheo_1_1obf_1_1pass__t.html#a46608a6c2dfb8ff657e44be9b50e0dfb">More...</a><br/></td></tr>
<divclass="textblock"><p>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. </p>
<p>given the following code: </p><preclass="fragment">mov rax, &MessageBoxA
</pre><p> this pass will generate a random number of transformations to encrypt the address of "MessageBoxA". These transformations will then be applied by theodosius internally when resolving relocations. </p><preclass="fragment">mov rax, enc_MessageBoxA
<pclass="definition">Definition at line <aclass="el"href="../../de/d64/reloc__transform__pass_8hpp_source.html#l00056">56</a> of file <aclass="el"href="../../de/d64/reloc__transform__pass_8hpp_source.html">reloc_transform_pass.hpp</a>.</p>
</div><h2class="groupheader">Member Function Documentation</h2>
<pclass="definition">Definition at line <aclass="el"href="../../d6/da4/reloc__transform__pass_8cpp_source.html#l00034">34</a> of file <aclass="el"href="../../d6/da4/reloc__transform__pass_8cpp_source.html">reloc_transform_pass.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="../../d6/da4/reloc__transform__pass_8cpp_source.html#l00039">39</a> of file <aclass="el"href="../../d6/da4/reloc__transform__pass_8cpp_source.html">reloc_transform_pass.cpp</a>.</p>
<divclass="line"><spanclass="lineno"> 44</span> spdlog::info(<spanclass="stringliteral">"adding transformations to relocation in symbol: {}"</span>,</div>
<divclass="line"><spanclass="lineno"> 60</span><spanclass="keyword">auto</span> transforms_bytes = <aclass="code hl_function"href="../../d8/d82/namespacetheo_1_1obf_1_1transform.html#abb618f5ff8d88963dd77e682456ef982"title="generate a sequence of transformations given an instruction that has a relocation in it.">transform::generate</a>(&inst, reloc.value(), 3, 6);</div>
<pclass="reference">References <aclass="el"href="../../d8/d67/symbol_8cpp_source.html#l00076">theo::decomp::symbol_t::data()</a>, <aclass="el"href="../../d5/d18/gen_8hpp_source.html#l00045">theo::obf::transform::generate()</a>, and <aclass="el"href="../../d8/d67/symbol_8cpp_source.html#l00052">theo::decomp::symbol_t::name()</a>.</p>