<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ecb on 4mN3s14 | CTF Player &amp; Student</title><link>https://john-jkar.github.io/myblog/tags/ecb/</link><description>Recent content in Ecb on 4mN3s14 | CTF Player &amp; Student</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 15 Feb 2026 06:00:00 +0000</lastBuildDate><atom:link href="https://john-jkar.github.io/myblog/tags/ecb/index.xml" rel="self" type="application/rss+xml"/><item><title>AAAAAAAAEEEEEEEESSSSSSSS - CTF Writeup</title><link>https://john-jkar.github.io/myblog/posts/aes/</link><pubDate>Sun, 15 Feb 2026 06:00:00 +0000</pubDate><guid>https://john-jkar.github.io/myblog/posts/aes/</guid><description>&lt;h1 id="aaaaaaaaeeeeeeeessssssss---alpacahack-challenge-writeup"&gt;AAAAAAAAEEEEEEEESSSSSSSS - Alpacahack challenge writeup&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; Crypto&lt;br&gt;
&lt;strong&gt;Difficulty:&lt;/strong&gt; Medium&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; hiikunz&lt;/p&gt;
&lt;h2 id="challenge-description"&gt;Challenge Description&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;re given a Python script that encrypts a flag using AES-ECB mode with a twist - each character of the flag is repeated 8 times before encryption. We can also query an encryption oracle with arbitrary plaintexts.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; c &lt;span style="color:#f92672"&gt;in&lt;/span&gt; flag:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ffffffffllllllllaaaaaaaagggggggg &lt;span style="color:#f92672"&gt;+=&lt;/span&gt; bytes([c] &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ciphertext &lt;span style="color:#f92672"&gt;=&lt;/span&gt; cipher&lt;span style="color:#f92672"&gt;.&lt;/span&gt;encrypt(ffffffffllllllllaaaaaaaagggggggg)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="initial-analysis"&gt;Initial Analysis&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s break down what the code does:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Flag format&lt;/strong&gt;: 32 bytes total, format &lt;code&gt;Alpaca{...}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Character repetition&lt;/strong&gt;: Each character is repeated 8 times&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total plaintext&lt;/strong&gt;: 32 characters × 8 repetitions = 256 bytes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Encryption&lt;/strong&gt;: AES-ECB mode (Electronic Codebook)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blocks&lt;/strong&gt;: 256 bytes ÷ 16 bytes per block = 16 blocks&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="understanding-the-encoding"&gt;Understanding the Encoding&lt;/h3&gt;
&lt;p&gt;If the flag is &lt;code&gt;Alpaca{test_flag_here______}&lt;/code&gt;, the plaintext becomes:&lt;/p&gt;</description></item></channel></rss>