<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>PyFlag on 知识带给我们自由</title>
    <link>https://yuexuan521.github.io/zh/tags/pyflag/</link>
    <description>Recent content in PyFlag on 知识带给我们自由</description>
    <image>
      <title>知识带给我们自由</title>
      <url>https://yuexuan521.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://yuexuan521.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.160.1</generator>
    <language>en-us</language>
    <copyright>See this site&amp;rsquo;s source code here, licensed under GPLv3 ·</copyright>
    <lastBuildDate>Mon, 30 Jun 2025 08:30:00 +0000</lastBuildDate>
    <atom:link href="https://yuexuan521.github.io/zh/tags/pyflag/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>BUUCTF [MRCTF2020]pyFlag 1</title>
      <link>https://yuexuan521.github.io/zh/posts/buuctf-mrctf2020pyflag-1/</link>
      <pubDate>Mon, 30 Jun 2025 08:30:00 +0000</pubDate>
      <guid>https://yuexuan521.github.io/zh/posts/buuctf-mrctf2020pyflag-1/</guid>
      <description>&lt;p&gt;
&lt;div class=&#34;post-img-view&#34;&gt;
    &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191535093.png&#34;&gt;
        &lt;img src=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191535093.png&#34; 
             alt=&#34;&#34; 
              
             loading=&#34;lazy&#34;
        /&gt;
    &lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BUUCTF: &lt;a href=&#34;https://buuoj.cn/challenges&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://buuoj.cn/challenges&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;相关阅读
&lt;a href=&#34;https://ctf-wiki.org/&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CTF Wiki&lt;/a&gt;
&lt;a href=&#34;https://www.cnblogs.com/ruoli-s/p/14206145.html#%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E7%BC%96%E7%A0%81&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;CTF常见编码及加解密（超全）&lt;/a&gt;
&lt;a href=&#34;https://www.cnblogs.com/WXjzc/p/16096233.html&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;MRCTF2020 pyFlag&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;post-img-view&#34;&gt;
    &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191537295.png&#34;&gt;
        &lt;img src=&#34;https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191537295.png&#34; 
             alt=&#34;在这里插入图片描述&#34; 
              
             loading=&#34;lazy&#34;
        /&gt;
    &lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;h3 id=&#34;题目描述&#34;&gt;题目描述：&lt;/h3&gt;
&lt;p&gt;得到的 flag 请包上 flag{} 提交。
感谢天璇战队供题。&lt;/p&gt;
&lt;h3 id=&#34;密文&#34;&gt;密文：&lt;/h3&gt;
&lt;p&gt;下载附件，解压得到三张图片：Furan.jpg、Miku.jpg、Setsuna.jpg。（出题人真是个二次元(╯°□°）╯︵ ┻━┻）&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191535093.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191535093.png" 
             alt="" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p><strong>BUUCTF: <a href="https://buuoj.cn/challenges"target="_blank" rel="noopener noreferrer">https://buuoj.cn/challenges</a></strong></p>
<hr>
<p>相关阅读
<a href="https://ctf-wiki.org/"target="_blank" rel="noopener noreferrer">CTF Wiki</a>
<a href="https://www.cnblogs.com/ruoli-s/p/14206145.html#%E7%A4%BE%E4%BC%9A%E4%B8%BB%E4%B9%89%E7%BC%96%E7%A0%81"target="_blank" rel="noopener noreferrer">CTF常见编码及加解密（超全）</a>
<a href="https://www.cnblogs.com/WXjzc/p/16096233.html"target="_blank" rel="noopener noreferrer">MRCTF2020 pyFlag</a></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191537295.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191537295.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<h3 id="题目描述">题目描述：</h3>
<p>得到的 flag 请包上 flag{} 提交。
感谢天璇战队供题。</p>
<h3 id="密文">密文：</h3>
<p>下载附件，解压得到三张图片：Furan.jpg、Miku.jpg、Setsuna.jpg。（出题人真是个二次元(╯°□°）╯︵ ┻━┻）</p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191538874.jpeg">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191538874.jpeg" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191540913.jpeg">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191540913.jpeg" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191542929.jpeg">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191542929.jpeg" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<hr>
<h3 id="解题思路">解题思路：</h3>
<p>1、先看第一张图片Furan.jpg，用010Editor找到文件末尾的ZIP压缩包数据，根据hint这只是第二部分的数据。</p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191544741.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191544741.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>以此类推，在另外两张图片找到剩下的两部分数据。</p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191547025.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191547025.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191549099.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191549099.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>拼接在一起保存为ZIP文件，解压需要密码。</p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191550968.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191550968.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>2、回去找密码，找了一圈什么都没有。用Ziperello尝试暴力破解，得到密码 <code>1234</code> 。</p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191552293.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191552293.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>解压压缩包，得到flag.txt和.hint.txt，内容分别如下：</p>
<p>一个是密文：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">G</span><span class="o">&amp;</span><span class="n">eOhGcq</span><span class="p">(</span><span class="n">ZG</span><span class="p">(</span><span class="n">t2</span><span class="o">*</span><span class="n">H8M3dG</span><span class="o">&amp;</span><span class="n">wXiGcq</span><span class="p">(</span><span class="n">ZG</span><span class="o">&amp;</span><span class="n">wXyG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">tG</span><span class="o">&amp;</span><span class="n">eOdGcq</span><span class="o">+</span><span class="n">aG</span><span class="p">(</span><span class="n">t5oG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">qG</span><span class="o">&amp;</span><span class="n">eIeGcq</span><span class="o">+</span><span class="n">aG</span><span class="p">)</span><span class="mi">6</span><span class="n">Q</span><span class="o">&lt;</span><span class="n">G</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">rG</span><span class="o">&amp;</span><span class="n">eOdH9</span><span class="o">&lt;</span><span class="mi">5</span><span class="n">qG</span><span class="o">&amp;</span><span class="n">eLvG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">sG</span><span class="o">&amp;</span><span class="n">nRdH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">rG</span><span class="o">%++</span><span class="n">qG</span><span class="o">%</span><span class="n">__eG</span><span class="o">&amp;</span><span class="n">eIeGc</span><span class="o">+|</span><span class="n">cG</span><span class="p">(</span><span class="n">t5oG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">sG</span><span class="o">&amp;</span><span class="n">eOlH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">rH8C_qH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">oG</span><span class="o">&amp;</span><span class="n">eOhGc</span><span class="o">+</span><span class="n">_bG</span><span class="o">&amp;</span><span class="n">eLvH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">sG</span><span class="o">&amp;</span><span class="n">eLgGcz</span><span class="err">?</span><span class="n">cG</span><span class="o">&amp;</span><span class="mi">3</span><span class="o">|</span><span class="n">sH8M3cG</span><span class="o">&amp;</span><span class="n">eOtG</span><span class="o">%</span><span class="n">_</span><span class="err">?</span><span class="n">aG</span><span class="p">(</span><span class="n">t5oG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">tG</span><span class="o">&amp;</span><span class="n">wXxGcq</span><span class="o">+</span><span class="n">aH8V6sH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">rG</span><span class="o">&amp;</span><span class="n">eOhH9</span><span class="o">&lt;</span><span class="mi">5</span><span class="n">qG</span><span class="p">(</span><span class="o">&lt;</span><span class="n">E</span><span class="o">-</span><span class="n">H8M3eG</span><span class="o">&amp;</span><span class="n">wXiGcq</span><span class="p">(</span><span class="n">ZG</span><span class="p">)</span><span class="mi">6</span><span class="n">Q</span><span class="o">&lt;</span><span class="n">G</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">tG</span><span class="o">&amp;</span><span class="n">eOtG</span><span class="o">%+&lt;</span><span class="n">aG</span><span class="o">&amp;</span><span class="n">wagG</span><span class="o">%</span><span class="n">__cG</span><span class="o">&amp;</span><span class="n">eIeGcq</span><span class="o">+</span><span class="n">aG</span><span class="o">&amp;</span><span class="n">M9uH8V6cG</span><span class="o">&amp;</span><span class="n">eOlH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">rG</span><span class="p">(</span><span class="o">&lt;</span><span class="n">HrG</span><span class="p">(</span><span class="n">j</span><span class="o">~</span><span class="n">qG</span><span class="o">&amp;</span><span class="n">eLcH9</span><span class="o">&lt;</span><span class="mi">8</span><span class="n">sG</span><span class="o">&amp;</span><span class="n">wUwGek2</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>一个是提示：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">我用各种baseXX编码把flag套娃加密了</span><span class="err">，</span><span class="n">你应该也有看出来</span><span class="err">。</span>
</span></span><span class="line"><span class="cl"><span class="n">但我只用了一些常用的base编码哦</span><span class="err">，</span><span class="n">毕竟我的智力水平你也知道</span><span class="o">...</span><span class="n">像什么base36base58听都没听过</span>
</span></span><span class="line"><span class="cl"><span class="n">提示</span><span class="err">：</span><span class="mh">0x10</span><span class="p">,</span><span class="mh">0x20</span><span class="p">,</span><span class="mh">0x30</span><span class="p">,</span><span class="mh">0x55</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>3、根据hint只使用了Base编码，（提示： <code>0x10,0x20,0x30,0x55</code> 转为十进制 <code>16 32 48 85</code> ，似乎是加密顺序，Base16-&gt;Base32-&gt;Base48-&gt;Base85，逆序解密即可。不过好像没有Base48编码啊！！！这是怎么回事？(╯°□°）╯︵ ┻━┻）</p>
<blockquote>
<p>Base16特征：大写字母(A-Z)和数字(0-9)，不用‘=’补齐。
Base32特征：大写字母(A-Z)和数字(2-7)，不满5的倍数，用‘=’补齐。
Base64特征：大小写字母（A-Z，a-z）和数字（0-9）以及特殊字符‘+’，‘/’，不满3的倍数，用‘=’补齐。
Base85特征：特点是奇怪的字符比较多，但是很难出现等号</p>
</blockquote>
<p>先解起来再说吧。首先，进行Base85解密，得到：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="mi">475532444</span><span class="n">B4E525549453244494E4A57475132544B514A54473432544F4E4A5547515A44474D4A5648415A54414E4257473434544B514A5647595A54514D5A5147553444474D5A5547453355434E5254475A42444B514A57494D3254534D5A5447555A444D4E5256494532444F4E4A57475A41544952425547343254454E534447595A544D524A5447415A55493D3D3D</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191554548.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191554548.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>接下来进行Base16解密，得到</p>
<p><a href="https://www.qqxiuzi.cn/bianma/base.php?type=16"target="_blank" rel="noopener noreferrer">Base16编码解码</a></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">GU2DKNRUIE2DINJWGQ2TKQJTG42TONJUGQZDGMJVHAZTANBWG44TKQJVGYZTQMZQGU4DGMZUGE3UCNRTGZBDKQJWIM2TSMZTGUZDMNRVIE2DONJWGZATIRBUG42TENSDGYZTMRJTGAZUI</span><span class="o">===</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191556564.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191556564.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>典型的Base32密文特征，进行Base32解密，得到</p>
<p><a href="https://www.qqxiuzi.cn/bianma/base.php"target="_blank" rel="noopener noreferrer">Base32编码解码</a></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="mi">54564</span><span class="n">A4456455A3757544231583046795A5638305833417A636B5A6C593352665A47566A4D47526C636E303D</span>  
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191558565.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191558565.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>又是Base16，解密得到</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">TVJDVEZ7WTB1X0FyZV80X3AzckZlY3RfZGVjMGRlcn0</span><span class="o">=</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191600106.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191600106.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>最后是Base64解密，得到flag： <code>MRCTF{Y0u_Are_4_p3rFect_dec0der}</code> 。</p>
<p><a href="https://base64.supfree.net/"target="_blank" rel="noopener noreferrer">BASE64加密解密</a></p>
<p>
<div class="post-img-view">
    <a data-fancybox="gallery" href="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191601669.png">
        <img src="https://cdn.jsdelivr.net/gh/yuexuan521/image/20251228191601669.png" 
             alt="在这里插入图片描述" 
              
             loading="lazy"
        />
    </a>
</div></p>
<p>官方WriteUP脚本:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="ch">#!/usr/bin/env python</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">base64</span>
</span></span><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">re</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">baseDec</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="nb">type</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="nb">type</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b16decode</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="nb">type</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b32decode</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="nb">type</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="nb">type</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="n">base64</span><span class="o">.</span><span class="n">b85decode</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">pass</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">detect</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">try</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="k">match</span><span class="p">(</span><span class="s2">&#34;^[0-9A-F=]+$&#34;</span><span class="p">,</span><span class="n">text</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">return</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl">    <span class="k">except</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">pass</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="k">try</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="k">match</span><span class="p">(</span><span class="s2">&#34;^[A-Z2-7=]+$&#34;</span><span class="p">,</span><span class="n">text</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">return</span> <span class="mi">2</span>
</span></span><span class="line"><span class="cl">    <span class="k">except</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">pass</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="k">try</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="k">match</span><span class="p">(</span><span class="s2">&#34;^[A-Za-z0-9+/=]+$&#34;</span><span class="p">,</span><span class="n">text</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">return</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl">    <span class="k">except</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">pass</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="mi">4</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">autoDec</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="sa">b</span><span class="s2">&#34;MRCTF{&#34;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="nb">print</span><span class="p">(</span><span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">+</span><span class="n">text</span><span class="o">.</span><span class="n">decode</span><span class="p">())</span>
</span></span><span class="line"><span class="cl">            <span class="k">break</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">        <span class="n">code</span> <span class="o">=</span> <span class="n">detect</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">        <span class="n">text</span> <span class="o">=</span> <span class="n">baseDec</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="n">code</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&#34;flag.txt&#34;</span><span class="p">,</span><span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">flag</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">autoDec</span><span class="p">(</span><span class="n">flag</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="flag">flag：</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">flag<span class="o">{</span>Y0u_Are_4_p3rFect_dec0der<span class="o">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
