{"componentChunkName":"component---src-templates-post-template-js","path":"/ctf-knightctf-2023-en","result":{"data":{"markdownRemark":{"id":"ec79faf4-acaa-5cab-8e6b-4ac5c9e83557","html":"<blockquote>\n<p>This page has been machine-translated from the <a href=\"/ctf-knightctf-2023\">original page</a>.</p>\n</blockquote>\n<p>I participated in KnightCTF 2023, which was held in January 2023.</p>\n<p>The difficulty didn’t look too high, so I thought I might be able to sweep all the Rev challenges, but I had the start time wrong and ran out of time — finishing with 4 solves.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 960px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/11743d99add369d1bc44d0276db2acc4/ae953/image-20230121235349947.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 24.583333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAABHklEQVQY01WQy1LCUBBE8wtCgDIBEvJOSCCAQQkoyEOqRFkhoKj//xfHSRaWLrpmumem695WwppJCdUkEbjSV+pNqrUmlZpe1uov/68V/Ep4gXImmqJ5BvbZJzjE+KcIa+ej5RbGycc6dDHPAc1HF21tSx+WmiH7+sShtXflNsY+yt4ppGGbKA3fwPlMCN5TvEufzj6iPfMIvlO6lxGhVHMVYD4F+F8p0ccQ95LQzj3aLx7OUQzlMeZbYWigtAyHLF+SzzfczlYMx/eE8ZCH9Y7l9pX56pn+aEKcjpkutiw2O7LpEj9Kqagaar2IQEctY9Dly60OyWDM4GYih3dEvSG21xWDjFS0YuZHfbywR0/mgywvNcsNJbfr0vAvfgAn8JXI/UxczAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/11743d99add369d1bc44d0276db2acc4/8ac56/image-20230121235349947.webp 240w,\n/static/11743d99add369d1bc44d0276db2acc4/d3be9/image-20230121235349947.webp 480w,\n/static/11743d99add369d1bc44d0276db2acc4/e46b2/image-20230121235349947.webp 960w,\n/static/11743d99add369d1bc44d0276db2acc4/cc785/image-20230121235349947.webp 1132w\"\n              sizes=\"(max-width: 960px) 100vw, 960px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/11743d99add369d1bc44d0276db2acc4/8ff5a/image-20230121235349947.png 240w,\n/static/11743d99add369d1bc44d0276db2acc4/e85cb/image-20230121235349947.png 480w,\n/static/11743d99add369d1bc44d0276db2acc4/d9199/image-20230121235349947.png 960w,\n/static/11743d99add369d1bc44d0276db2acc4/ae953/image-20230121235349947.png 1132w\"\n            sizes=\"(max-width: 960px) 100vw, 960px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/11743d99add369d1bc44d0276db2acc4/d9199/image-20230121235349947.png\"\n            alt=\"image-20230121235349947\"\n            title=\"image-20230121235349947\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>I’ll write a short writeup for each problem I solved.</p>\n<p>The Rev binaries in this contest required glibc 2.3.4, so I used a Docker image built from the following Dockerfile.</p>\n<div class=\"gatsby-highlight\" data-language=\"dockerfile\"><pre class=\"language-dockerfile\"><code class=\"language-dockerfile\"><span class=\"token comment\"># glibc2_3_4-ubuntu20_10</span>\n<span class=\"token instruction\"><span class=\"token keyword\">FROM</span> ubuntu:21.10</span>\n<span class=\"token instruction\"><span class=\"token keyword\">ENV</span> TZ=Europe/London</span>\n<span class=\"token instruction\"><span class=\"token keyword\">RUN</span> ln -snf /usr/share/zoneinfo/<span class=\"token variable\">$TZ</span> /etc/localtime &amp;&amp; echo <span class=\"token variable\">$TZ</span> > /etc/timezone</span>\n\n<span class=\"token instruction\"><span class=\"token keyword\">RUN</span> sed -i -e <span class=\"token string\">'s/archive.ubuntu.com\\|security.ubuntu.com/old-releases.ubuntu.com/g'</span> /etc/apt/sources.list</span>\n<span class=\"token instruction\"><span class=\"token keyword\">RUN</span> apt update &amp;&amp; apt upgrade -y</span>\n<span class=\"token instruction\"><span class=\"token keyword\">RUN</span> apt install gdb strace ltrace vim unzip zip git -y</span>\n\n<span class=\"token instruction\"><span class=\"token keyword\">RUN</span> mkdir -p /app</span>\n<span class=\"token instruction\"><span class=\"token keyword\">ENV</span> HOME=/app</span>\n<span class=\"token instruction\"><span class=\"token keyword\">WORKDIR</span> <span class=\"token variable\">$HOME</span></span></code></pre></div>\n<h2 id=\"krackme-10-rev\" style=\"position:relative;\"><a href=\"#krackme-10-rev\" aria-label=\"krackme 10 rev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>KrackMe 1.0 (Rev)</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 503px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/9d2c24d807f14ffd69b59972f890bcca/a4078/image-20230121115824664.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 95%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAIAAAAf7rriAAAACXBIWXMAAAsTAAALEwEAmpwYAAACd0lEQVQ4y33RSYvUUBAA4OBMT8+M3em8papeXt6SrZfZFxC3g/hzPHgQD178E4IXBcG/IogonnUYUBn/iZWMs4vhS6V4UEuSJMMwgZhRJajOsOJ8TBUbUTXBKsP61OSqFOoMYjIc46vXb74fHX/4+Onb0fGTp8/lGtU0jbpWUGZ4YcKgTHUUpgntbqp9sjqGt+/en5z8/vzl64+fv569eEkTu+k2NuwcXJu5RrlWu5YjdKanVNFm4BNJnh8CvaIwQZ+baubmwU1jMdu2ix27qN2M86aYk2t7UyaIdwmJRKdNCXnEPMo8llg9lNMHvcdy9kjO7qp2RzX3VSswnJMUJfpEcTH5c90ixgtOjD/U7SE0XU5BUFCXdCfouLhA8kQee3SWG/IPdHtPN+d91RVBQFdsZxj2oNyGcg+qQ6h2oVxg3IG4BWWJPIdXO3dpRygSQFuRb9FPMTBuNIfYYGgx1BiIHFABXbxOgk0QTYtuA/0Whs2uwG1C2IXIsel+gSXi97LYxQvcUUHOk80C/R4XoOcWOxA82cwYTTlQTl1xB28AzHkyNVTMsZj2Zlg0WES0eVf5f93atIHFAbhNLPbB7aI7AL8PPidj/iE3V4o1IALffy/q0JUR5tTNRokUUkmpe6AUKgVaFxoOlD2U9o4qmOGv2jvr1TXlEUmWpi7LghAsMilPlR1VSVUrVSpOZK61Mf0WxliTg9JJur5ea71oZ9EYD+ARb3KIpdZWSB4ffCysJUAhRLI2HNrRKErlhfBZdh0f9mKW6TSVSmmptdJKqXQ8TpYHg8HS0nDp1uryMlsbDNg6W1lht4dDNuK4urrGVx/Xe6PR6A9ZLH4VIkktigAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/9d2c24d807f14ffd69b59972f890bcca/8ac56/image-20230121115824664.webp 240w,\n/static/9d2c24d807f14ffd69b59972f890bcca/d3be9/image-20230121115824664.webp 480w,\n/static/9d2c24d807f14ffd69b59972f890bcca/4ef2a/image-20230121115824664.webp 503w\"\n              sizes=\"(max-width: 503px) 100vw, 503px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/9d2c24d807f14ffd69b59972f890bcca/8ff5a/image-20230121115824664.png 240w,\n/static/9d2c24d807f14ffd69b59972f890bcca/e85cb/image-20230121115824664.png 480w,\n/static/9d2c24d807f14ffd69b59972f890bcca/a4078/image-20230121115824664.png 503w\"\n            sizes=\"(max-width: 503px) 100vw, 503px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/9d2c24d807f14ffd69b59972f890bcca/a4078/image-20230121115824664.png\"\n            alt=\"image-20230121115824664\"\n            title=\"image-20230121115824664\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This was a fairly straightforward ELF challenge.</p>\n<p>To run the binary you needed to supply exactly 5 command-line arguments (the actual values didn’t matter).</p>\n<p>After that, you also had to provide input of exactly 0x27 characters.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 550px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b78e9a2c0bc30b1792cb5ee055db883f/dd45a/image-20230122175857705.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 127.91666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAAsTAAALEwEAmpwYAAADzklEQVRIx51V2ZLjOAzL/3/ibjanE8enbEu+dGFA2Z2ezNNsp0oVmVFEEgTgQ57nGIaAutFQqod5KiydgVk1xmmAHhtoM+FV9BgefG4VrJsQo0cIC4K38N7Dh8BYxOGeZZBP8Qp45QalUqgahbIZ0Q8Kbdsy2YDWPGHmEtNYoOs1XmWPsqpgzAtmrKG6Ol18yLJHurCugOsl4q463NsGdnUIEXA+wjlmD1KRT1X4sMX5/z32/dvhervxuoihD6wG0AvbXUaGIn7yOeT5E+sCvJ4BqhfMWuLiWIFgM6cVgsNkZ2K3whO/EPjN3x333q88K+f3CrNHloopXh5FYVhll1bZmIRh09bEdEDVPzCYHEZXaNSQYk1bYRwZ4+D6vmMiafl634cCHP+JODUtLnWZMJREPmHIDXGKYYs5YicxwVLw2zDcp3y7SYWB0wvQGhjZ2rhOAuvPMDydTpgmTvfm2YpiWxw/sRK8nBvfOA2rwcJkzho+L4wvsFbz7ILVylm3T5ktSxtNHVAWM3HpeXGPWk0kNPmnWj4bKP0i0Wt2Qm52OsXarmUxJeMsRPeEhBce/z0l2nxheCaGZ2K4zuSh8I0cXG1I+IW0IqvnYky4KLHE0a8pX6+3BKjwsB888TOY7YSfgni4XK7MFqEapAvNbNJdbgbmlpWMXGZbbtqe3bLvGQusUipLSy683u5sC+i6gHmZ3pmIOxYqx1I0jjkcGcAZweotGWeTFgny/uy0uRNYj3le0kTFQUQFIVpmXNNy3K9Uh8RCnPlH+U32cnZTVeBwtpavF7ZK2lwXKkVcRiEvFepWs+oCeTEwVqDVT/L0SasT5Yy0s4aMyNOU+6GErm/bhff7nVMDbhfgWc64DS06veGYlBKwbWJIApCtTD+EPZyUErYRSsvH43+s5AklTjMu0LYnTbYpBx6U+0Lc8NmR+mO9AUwJaA4PVBVNoO5RVB5tY+ncNU2ULZHMRV/g1Skqwr2Bj/HzG/F70kkpwzBxPaAHujBfBRmJPU1rsi5nhySvT1aGj2rjp5bP5KG4jUVdN6yspqRqSk9TTsSza2jvGkWXoTcFRg6mZ+KaEq2b1/4KULQvdkHASezNscuCr4BzREafe/LwOJIq1mOaLf8gZirVjsk4ljUwRtOlPFOcdFvXefPD4/GUWhDplUVAM3WoTPPJ2P8jvfP5nITeqcisrEjeJ5LCi1o4aRpBsPv62vvvfYyfK10oA6xpX4Phe8NvvmZ1hM4iFiYSCc4seum2b5HfokTrW+KdNd/msK50GVZn7fJb8X/vNr+/IH8BzJznvYa0UosAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/b78e9a2c0bc30b1792cb5ee055db883f/8ac56/image-20230122175857705.webp 240w,\n/static/b78e9a2c0bc30b1792cb5ee055db883f/d3be9/image-20230122175857705.webp 480w,\n/static/b78e9a2c0bc30b1792cb5ee055db883f/12b65/image-20230122175857705.webp 550w\"\n              sizes=\"(max-width: 550px) 100vw, 550px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/b78e9a2c0bc30b1792cb5ee055db883f/8ff5a/image-20230122175857705.png 240w,\n/static/b78e9a2c0bc30b1792cb5ee055db883f/e85cb/image-20230122175857705.png 480w,\n/static/b78e9a2c0bc30b1792cb5ee055db883f/dd45a/image-20230122175857705.png 550w\"\n            sizes=\"(max-width: 550px) 100vw, 550px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/b78e9a2c0bc30b1792cb5ee055db883f/dd45a/image-20230122175857705.png\"\n            alt=\"image-20230122175857705\"\n            title=\"image-20230122175857705\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After successful string input, the input string is split into 4 parts of 9 characters each and validated separately.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 655px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/757bc8bf9083414bbcebdd3ec7fa1d6f/ae6b7/image-20230122175041238.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 129.58333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAAsTAAALEwEAmpwYAAADc0lEQVRIx51V2XLjNhDU/39I3vIf+YF92FRlrduieAEgiJNAbwOUvJZlJ5VlFQoHgcFMT09j8/37X2jbP3G5/AGpvmFZgJwT0q3lnNlw6/MXcy5gXdscj+c6UQK4tBMu+ozO9Ji8QkyRFyQ8f/l55WZ0s98f2CVImenpDKEbTFpCThZq0rC2Z5uhrMDM5p1ECBbeT+w1nHeIJay7hy8vuzoJAfjn74Ttq8S+HSCkhXMKxkhe4HhQ0rBCoIFyMKXlDZqHkH/82NaJswnNJaPXiuFq/Nt3N/BFyMeKyawTpinDB/9hI/7ze/DwcDjS/QwhFvY0lj37wFYSwvA49osnTlzjfP3HPXUtcpwePbxjaGZgt3V4vQ5oeoF+1FBqRD9oDLKBNlfM84hRGHT9yHHH1hPj+c3gA4YxZuxfgGOv0EwDPVhvTAlPENx5WKC68/I+3my3uxqy94ELkW2pGVxoqYSdc+DYYeG/yHBXDuYPbMxvWG9Ox1P1wrlI6pAWwUH1Ht1xwTwa6F5iHgS0sMR5gpO8KOCdd/kx5JXYIGEzxgGQrBjRJ9gp1IPMA4g/ar5imfMg4cifGLwlZUv8EsS4wNiA3/ne83KzpUHvE7Nn0faWVSHYK4bX1bLTekI3GAzjCGsGsoGZnUv5EdMYnz0sPCx4SCHQdB1aeaYRRWOBBwwbE7LEOl4K9zgvY2tKafon1aHanGrIWodqSCpNbjn87lc9DDVkgytD1npkyJKEbklcEloXzylrJLMhmTXVSE+i0mz1eObYMiJbpY483FfV6LsB5+YVp3bHmuaBkLkh1NJL5GIopVe56et6wa+UYSnPGD2N+vqfHh44WXhzpCHyruqgXes1FewWSlfiBYXsoeK53PTv05BPp3N1VakZLbM5M5OjUAyZGTVt1cN+nCCIra3zknnNLHs2iqyfufYrQTUpxVUhJLFr8NqfuEG/k65n/SqlWmDKaalni8d31am17FwxGMk1JoWedoOunhUPnHP0zvNJMFX2XZF+4pXfym15pE0xWG4bhh7HpsdVHCj/AqOcmLmhPgOSIQ6TYnmua8bQsC0ZLm+L5J6ZjDDV00qbhbU5sXaVksRP8oD5X+X2S86wPqMxEmQ+m5Od4KO9qfUaCj5UwmcK8/6SzW63g5KGT2iHq2LZUZUrWYN7kPePRr665Cco5e7KVN8wsQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/757bc8bf9083414bbcebdd3ec7fa1d6f/8ac56/image-20230122175041238.webp 240w,\n/static/757bc8bf9083414bbcebdd3ec7fa1d6f/d3be9/image-20230122175041238.webp 480w,\n/static/757bc8bf9083414bbcebdd3ec7fa1d6f/09ab1/image-20230122175041238.webp 655w\"\n              sizes=\"(max-width: 655px) 100vw, 655px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/757bc8bf9083414bbcebdd3ec7fa1d6f/8ff5a/image-20230122175041238.png 240w,\n/static/757bc8bf9083414bbcebdd3ec7fa1d6f/e85cb/image-20230122175041238.png 480w,\n/static/757bc8bf9083414bbcebdd3ec7fa1d6f/ae6b7/image-20230122175041238.png 655w\"\n            sizes=\"(max-width: 655px) 100vw, 655px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/757bc8bf9083414bbcebdd3ec7fa1d6f/ae6b7/image-20230122175041238.png\"\n            alt=\"image-20230122175041238\"\n            title=\"image-20230122175041238\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>I wrote the following script to decrypt the flag from the decompiled validation logic for each part.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># -0x9</span>\nunknown <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0x6d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x65</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x72</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x60</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x74</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x65</span><span class=\"token punctuation\">]</span>\nc100 <span class=\"token operator\">=</span> <span class=\"token number\">100</span>\n<span class=\"token comment\"># 0x6142202c 776f6e6b</span>\nc60 <span class=\"token operator\">=</span> \n<span class=\"token keyword\">for</span> u <span class=\"token keyword\">in</span> unknown<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">chr</span><span class=\"token punctuation\">(</span>\n        u <span class=\"token operator\">^</span> c100 <span class=\"token operator\">^</span> c60\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span> KCTF<span class=\"token punctuation\">{</span>kRaC\n\n<span class=\"token comment\"># 0x1b -</span>\nunknown <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0x76</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x51</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x74</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x73</span><span class=\"token punctuation\">]</span>\nc108 <span class=\"token operator\">=</span> <span class=\"token number\">0x6f</span>\nc130 <span class=\"token operator\">=</span> <span class=\"token number\">0x61</span>\n<span class=\"token keyword\">for</span> u <span class=\"token keyword\">in</span> unknown<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">chr</span><span class=\"token punctuation\">(</span>\n        u <span class=\"token operator\">^</span> c108 <span class=\"token operator\">^</span> c130\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span> xs_bAzar<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\"># 0x9-0x11</span>\nunknown <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0x61</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x39</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x65</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x44</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">]</span>\nu1 <span class=\"token operator\">=</span> <span class=\"token number\">0x65</span>\nc138 <span class=\"token operator\">=</span> <span class=\"token number\">0x6f</span>\n<span class=\"token keyword\">for</span> u <span class=\"token keyword\">in</span> unknown<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">chr</span><span class=\"token punctuation\">(</span>\n        u <span class=\"token operator\">^</span> u1 <span class=\"token operator\">^</span> c138\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span> k_M3_oNe_\n\n\n<span class=\"token comment\"># 0x12-0x19</span>\nunknown <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0x28</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x54</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x79</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x28</span><span class=\"token punctuation\">]</span>\nu1 <span class=\"token operator\">=</span> <span class=\"token number\">0x65</span>\nc152 <span class=\"token operator\">=</span> <span class=\"token number\">0x7d</span>\n<span class=\"token keyword\">for</span> u <span class=\"token keyword\">in</span> unknown<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">chr</span><span class=\"token punctuation\">(</span>\n        u <span class=\"token operator\">^</span> u1 <span class=\"token operator\">^</span> c152\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span> 0_fLaG_c0</code></pre></div>\n<h2 id=\"help-jimmy-rev\" style=\"position:relative;\"><a href=\"#help-jimmy-rev\" aria-label=\"help jimmy rev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Help Jimmy (Rev)</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 480px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7f03e8a22c00d5c48d3ecbe1458de043/e85cb/image-20230121153544694.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 133.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAbCAIAAADzvTiPAAAACXBIWXMAAAsTAAALEwEAmpwYAAADrklEQVQ4y3WU247jRBCGLdAwm5Njd3dVuW132247zoHMIZnjrsQg2FkQI7GCB0Fc8RZcICQQghuQuODlliv2eqjubGZGSLS+/CpX+q+qtp1EE6jeG0IAo4EapGVMboINE/8Xx0yCjqGZQBOV7fr7H3765bfff/z51z/+/OuTz16PxkTUJlBz3TjoxOsjY1Wpcg5lHy1Prt68+fv+/v7tP29Zv/n2u3Kon9ujNp+LvFOPzOQeobusWqliFkHR3by8u/3iq08/f/3q7ut+fS50K0wvypkqeypnMsCX3Ap3mDnviaGKEjAfjOFgpFjfH6ksNS/V4ku5uFULp5ob2d/KxSs5/1j1mZ/ZJlBNwU6hSrCOUrJKN49kdY51j26FrcGmRVdjY9HNsdVYT6lK0ZMEIkFmiibxahO0HE/QDAM30N/BosD6GZkRmjhsiPdwiUiisVgVaI3XqsRqF1RY1Vh1WFusC5+sS6y13+AzPF2KNiI0l+heQPsc2muv3UfQbcBdQXvmMx0nL6B9Ad3FPthCa/3wJtJktugu0J1gc46O452eoTtFdwzN1uOYI2i4KDP3I1hgM1F5ic0FNKfYBENzjD4+DbXOWMGdA8fNJsSXnvYKXE4myqk891vrLdZXXAUbDthzDcGJzQrrBVY9VqwfYn3sn0XNyYxK7pzP+Kl77BLtAi0HHdoe7QqrNZ+NCkmFoCJ91HyX5M7FGu0R2nUws26xWvkM3+EypRypQAxQAVS8uwwx3zDdYemw7PhVRMPBLLyEHBu/L38K0DvdwZ3zU7RnaC9C/w3ZjLSkTJEG0kQaKQ+6I9+rh826p2JORUdFQToP8DjZ/7ArtNOowOwEyzWWKyz4dyyIZEDtgzCF14dLCmYmMraqTXWiCi5xhOUWzbU/gtmg4bNsQoa/Og5wkttk3p+xRkWeG513kM1QO9SsC8znlM8xX+ygvCef4dGWWMwo18HpzZmQW6G3Uq9UtlX5qdIb/tcALREggIhAjyCh3s8dyTTNUqFTqVORC8kUQnLFVIpUek2kAKXoAcQMwIMYTeM45s90yviVJAwvl6h5gn2KyxQpFakQUgi1Q0rFFaWM4vFYjUbATCYMBmgy6eJkGYt1LE9iWcZTmsZqOhXeLNnPs3CtKB0OZ4BtltVSPsUoWSpZBCqlnFLGm7mnAl5KiTSNksPDhdZL5xxi/YQm4AJ1UOuPloACnWkpJB8xenZwoA4PGRgM8IHhcAftyYbDdDAY79ZozDdqMh7/C0wzt3x8/0gYAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/7f03e8a22c00d5c48d3ecbe1458de043/8ac56/image-20230121153544694.webp 240w,\n/static/7f03e8a22c00d5c48d3ecbe1458de043/d3be9/image-20230121153544694.webp 480w\"\n              sizes=\"(max-width: 480px) 100vw, 480px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/7f03e8a22c00d5c48d3ecbe1458de043/8ff5a/image-20230121153544694.png 240w,\n/static/7f03e8a22c00d5c48d3ecbe1458de043/e85cb/image-20230121153544694.png 480w\"\n            sizes=\"(max-width: 480px) 100vw, 480px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/7f03e8a22c00d5c48d3ecbe1458de043/e85cb/image-20230121153544694.png\"\n            alt=\"image-20230121153544694\"\n            title=\"image-20230121153544694\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Jimmy faces an impossible situation — either he gets eaten by a tiger or attacked by pirates — and we need to change his fate.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 397px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/af0c2147d8ab928ed26cdb573926a7dc/4c04a/image-20230122182305522.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 163.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAhCAYAAADZPosTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACsklEQVRIx6WW147rMAxE9ZTee+/JpvcGBMj//xUvji5oKLZTNvsgUJJtcsgZ0TLz+VzO57OcTidrj8ejHA4Hud1uslqtZDweS6vVspZ3JpOJbDYbud/vUq/XJZ1OSy6XszaZTIpZLBayXC5lOBzKbreT0WgkPz8/wn6/37fzXq9nHRKAYDjlWafTsXusM5nMf4eNRsMiANl6vZZisSiJREJSqZR9AevOse5w95ibSqUizWZTZrNZwIn/ZXfuD6Rzo/krqr8OQ7rkH4/HrVOsjmdrd99Fbx3m83mbcqFQsPWjBNVq1Y5SqWTXuse6XC4L39RqNbuvZHgpt9tt2W63AjnMYXk6ndoB87qGTVgdDAYWAGvqTgDXqUFLbGKJHIvFHtIMG6Ss7wVSBgVRQUJkov2WiIeUSRV0WGr4LbseQhTf7XYtSpwioTA9fiwbiEA6ynSYYJ+dmlCHoMMptcSCUFGGjXcZGNUTTEcikQcGXcZVzNFo1Dp75tigscvlYllGZzgGNWWgvloOCIM8ug+lIXhYWQxt6Xq9ej2QjrPf7+0cwSNeCKOFseY57Yo+Sh8AsatHow74kMbJCeBD2hnoQQRiHNBg2advYglCZtTf64dsMmiyfEBanFlqi9WTxEBWpM8+6CgDJYEDL2VeoHakrC39VXeBKNY6/EfQAJVoIOCFbwXtIQQdrBHpm6MW0GE2m/Xg85Km6Kbrzv2/hIBDCEGHIGUOY7ALqzCIRGCZvyDy0W70FCH1U9a0nvRFGGSwJgvKwnh79ECkQuUsa0ouk+76bcqg0f8J81eN4SNSQKg3Ber4536oCLHU6pOe99Kh/tU4erD5acrPAns3B0XnJ8QlJYyswN0GdvXahlMG6at8XDnxzN3XK1xA2NwLES2OVcQMDYSssLyDpeXxnNuE/070D6mLKDmOOZ0uAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/af0c2147d8ab928ed26cdb573926a7dc/8ac56/image-20230122182305522.webp 240w,\n/static/af0c2147d8ab928ed26cdb573926a7dc/014b7/image-20230122182305522.webp 397w\"\n              sizes=\"(max-width: 397px) 100vw, 397px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/af0c2147d8ab928ed26cdb573926a7dc/8ff5a/image-20230122182305522.png 240w,\n/static/af0c2147d8ab928ed26cdb573926a7dc/4c04a/image-20230122182305522.png 397w\"\n            sizes=\"(max-width: 397px) 100vw, 397px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/af0c2147d8ab928ed26cdb573926a7dc/4c04a/image-20230122182305522.png\"\n            alt=\"image-20230122182305522\"\n            title=\"image-20230122182305522\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Analyzing the file, even though the decompiled output doesn’t reflect it, the disassembly clearly shows a code path that jumps to a mysterious function.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 960px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0cef80e99a47a29a16996d95f52b120f/e4611/image-20230122182342802.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 40.416666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAABcklEQVQoz12SW2+dMBCE+f+/rZccevrSh0pVm3AxxzeMvWCb6QBNotRoZQHeb2dn3fyeBM+64Jcq+Nlt6FxG73cMjBdf8OXWwrofENkQ445adxxr33ecz369v65GTRr9sML5imUR7hohRsiWcRy937+jGwx8sMg5vSWewP/iBOqHwaRWwioVCIweYc2EYGaUnAm848+LQVgcgfKefOR/FHd+b9Q4oevkH3DFOCiM44h4ALeCbwRq3UFWYayMADnAqGfU/Yo3hWEOmOeMlCp9yrB2o5py+cMDbdtioC02CAYboPyCKcwwIWJmRykf9qR3oLOOCjZ4nwmOiEzQfYR3bN9GfPr8lTuBMaDTCcqxCy+Y+N/OgrgtVJwgRZBLRmO0hVJUFSqSrPSOlZVQpZwVb7cbHg+NBzt5niJ6I+htwugSzOyxElap7rXtRqnLQ88phyXBM8mPG5ZYaAHw9NRy8h6B16aj4kOdmqnUX0VrzR8G8xcSrmljdnZrmAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/0cef80e99a47a29a16996d95f52b120f/8ac56/image-20230122182342802.webp 240w,\n/static/0cef80e99a47a29a16996d95f52b120f/d3be9/image-20230122182342802.webp 480w,\n/static/0cef80e99a47a29a16996d95f52b120f/e46b2/image-20230122182342802.webp 960w,\n/static/0cef80e99a47a29a16996d95f52b120f/94575/image-20230122182342802.webp 1298w\"\n              sizes=\"(max-width: 960px) 100vw, 960px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/0cef80e99a47a29a16996d95f52b120f/8ff5a/image-20230122182342802.png 240w,\n/static/0cef80e99a47a29a16996d95f52b120f/e85cb/image-20230122182342802.png 480w,\n/static/0cef80e99a47a29a16996d95f52b120f/d9199/image-20230122182342802.png 960w,\n/static/0cef80e99a47a29a16996d95f52b120f/e4611/image-20230122182342802.png 1298w\"\n            sizes=\"(max-width: 960px) 100vw, 960px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/0cef80e99a47a29a16996d95f52b120f/d9199/image-20230122182342802.png\"\n            alt=\"image-20230122182342802\"\n            title=\"image-20230122182342802\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>I set a breakpoint at this location with gdb, patched ZF to redirect execution to that function, and obtained the flag.</p>\n<h2 id=\"the-activator-rev\" style=\"position:relative;\"><a href=\"#the-activator-rev\" aria-label=\"the activator rev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Activator (Rev)</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 495px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/975376f92ba3910116f90a5206c00c5f/a4d88/image-20230121192130229.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 128.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD2klEQVRIx32VyW8cRRTGO/Ey9iy9V/Uy0/ss8TLeN8Sm5MIBkOBELuEAXILEAaFICIl/hwsHhITEX0auH9+rblsd24qln17Vq3rfW2patoZeio9efI5X373GN69+wLff/4ibTz/D0JthokuMVIGJKt/LOCzhJXM4UQ3rycDD3//8C/n77+1bY//48y9EowSX6T7W0RJh3MCLa/g9ZO8a28DWFWbNGkG6gDV0E3zx9Uu8+fV3vP7pF/z85jd8+dVLqKRBlK+QZiv42dIQEDdbkHaveSbIPTeqMAkLWJ7OsTUKYW3ZeDJwYW3bUKMIz8MVjoMG+2GNq2BuOAgbfBwscR0ssKB/rDI4Kocd5nB0YbBcNWNLJVRas6oKYVpBxxWWqsahatDQnqo51mSPe1kfk4p+h8V4FHF7WB4FHZ1xDi2366GeYbdjxeDnIVuUbjrf0NzL+XCtdTsoOEXKRU71jMwesStVYZ/kPb8w7Wxq2s1aQYeCB3z6T9jOFSu5pr2kvaS96O2PyYXxc6b0if/GxLS24s/LoyhnmOIZM1yygjU5JScdR+Ss892uRfCkd0doKDYn/q3gmhVed4ESdGEulmZ/3vnOTMISH5hHqky1cu+Y1GYUGQLOljNMcEjHh6adylgRvyI3pqLW3nSi53dn7f1DJpFES84vFEGfgqW8JDMUtAvapmNO6s7Oe/49Bi/InMy0fKIpHySl4BRWoGKqZ8ySM1vOWeWcacZWCradY59BcqYZ4OmEc0oYnJi1R19A5EwZwRRWSMGSynNSdbYgOak7K0QmMDHB91E9KBixwhlnw6pY2RGRdWkqinkpZua4E3s/ihjBZ6zgiKIHJDcHMSt6iH7AQ1FLaY1llHJWUz5Myl++XIwQG94VjB9JcD+pFUcRiro2gifSOrli2xe0sr9Sss74U2q5JGcyFt2u9xinesktFYbIo5ifToSSiG34UBUPC5LxspBzPaOdmX1sEN9UKo9uO4r4pXgeVp7GuZ9gz49wSmsIEqyDGEEYQJIq1aKVatEtEUcW97Bcx4HjOrCJ67otXovHZMrzof1bKC4EPZhM97Am4wkmk3exJzZs28aEzO0AB7bC2lE4cTS045nkHhP7ApMGxFgmtUbDIeLxGCmFhClFhBkrF3JSOK6hIhnJKRTxjk8BvxMLWZ0ksYbbA9R0HM75fyJJ+CiKD6JbZE3KezQ8yynouh7iOEGS8LNj+w591mBrC+lohCoIUfBC3lUlVQjFI5RSIWNkJB5jZNZix/RZGxsb2Nx4iq2nhOvtjsHm5h07TNpnd3sbA7IzGNyxu7ODHfI/K4iwttYIgu0AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/975376f92ba3910116f90a5206c00c5f/8ac56/image-20230121192130229.webp 240w,\n/static/975376f92ba3910116f90a5206c00c5f/d3be9/image-20230121192130229.webp 480w,\n/static/975376f92ba3910116f90a5206c00c5f/19998/image-20230121192130229.webp 495w\"\n              sizes=\"(max-width: 495px) 100vw, 495px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/975376f92ba3910116f90a5206c00c5f/8ff5a/image-20230121192130229.png 240w,\n/static/975376f92ba3910116f90a5206c00c5f/e85cb/image-20230121192130229.png 480w,\n/static/975376f92ba3910116f90a5206c00c5f/a4d88/image-20230121192130229.png 495w\"\n            sizes=\"(max-width: 495px) 100vw, 495px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/975376f92ba3910116f90a5206c00c5f/a4d88/image-20230121192130229.png\"\n            alt=\"image-20230121192130229\"\n            title=\"image-20230121192130229\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Looking at the decompiled output, the input validation logic was quite complex, but it was clear that the function executed when the correct password is entered outputs the flag.</p>\n<p>So I used gdb to jump directly to that address and obtained the flag.</p>\n<h2 id=\"the-defuser-rev\" style=\"position:relative;\"><a href=\"#the-defuser-rev\" aria-label=\"the defuser rev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Defuser (Rev)</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 490px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0da099fcfe5853d0d8ad0c607cd46ae2/41d3c/image-20230121192032089.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 130.83333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAAsTAAALEwEAmpwYAAADqklEQVRIx4WSy3IbRRSGZ+E41m0u3dM9oxmNNLrLlmxZsh1SkA1FXooNVVSq2LBgwSKrLFjwFBRVPAEkKd7B4Sl+/tMzEmNsisVX5/Tp7v9cur2eGUFnc/TLdc0FVH+GjinRsiXaxLfjR/T+janwTnsJ3v30M+7vP+H9xz9x/+kvfPvd9whbFks7RxlPEMQj9Ihf2wcwcUcPkU02rjDvzE/xw49v8f7DR/zy62/4/Y8P+PqbN1BRgVVxjmm+RJTPEJCQKCJrnc8RN9DZjJWX8EIzRFfl6JCeHqATZaxoiHW2wixboGDW82zJ9RJLUjI2JykFRCQWJFnCUXB8FCwQ2REZ1owQ0N7oGV7rJV7SvtILfEVe6Tm+pH1NrGu3QMCCfCI24F0vcoLDR3RtcWTCYe8MK2K8U8ckafgEFBxA8UCTqOGHZGMm+JyCGSsIXXx4JGqIRZVgjiVf6ppVXNBuaS9rthTakxX9BfckJutz2lszdYkuyTUp3KgKCtrcCe1dW2N8xk2xL2jFv635ggK7+vIdueIZ8W/IC+6tqBHaATwlglTfu+xyqHSCNzVS+Z3zRbhaX9VnKn/sEmxotQhqmznBl666SrCqtnT+AYltnFB5TCzCd3Uha/qxCMYUXHKY1/xDwoxzkCQHYkcOS0xN008oclhr4hnbx5jBkkzI1FFgQUZ1bOAOH8Qf8jDuBFPMeWlDgTXZ8oOKyCXtnsi65MGYiQ0v/R9sOcWKAjt+8CsnWvk5N0PuKSJi9gnME3jWJmwxY4s555ezzcyRcTOlWEqb/AdPJaGg5etluJY2SU6RKLGIk4SVPUY3rIwrqbE1Xpb2MRrK6/bZulSacZ45W89x3kD2Dv7C/Yycs+0fBQ94KSspigJzk/IR5JPLxczZdS1+4Irs2MVW5kzkXMpKm3hKKVyoBLeaWXWCHe0+5gjIOuajmBixMWyzQjes4biOYkmFF4UhTBQhiRQsEZsqQSMhklDpiohYzXgc1xgk5iFe4PvwSS+gdQRHQiabhDHmZCo2Mi5pyAI0rRbLhPEBJvO6nQ4iotpt6G4XsdDrOSyZ9kIsfYWNr7EluR/AMLFmQkVBxaSCCMva65ydoWRgkecYs42SWZoUbFMYkJyMGJtoEfYRUSRJ+FdJzLshk3itZ8/YVoh1OcacQ51wY8pZTPgYU/E5pyayP+N+zur9gPM31iGz9hnzTk5O0KWoT4LTU4TPn/8DqxeiA62WQ5Eu122OqU1f6Ha6zv4NRkew+VopowsAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/0da099fcfe5853d0d8ad0c607cd46ae2/8ac56/image-20230121192032089.webp 240w,\n/static/0da099fcfe5853d0d8ad0c607cd46ae2/d3be9/image-20230121192032089.webp 480w,\n/static/0da099fcfe5853d0d8ad0c607cd46ae2/47e4b/image-20230121192032089.webp 490w\"\n              sizes=\"(max-width: 490px) 100vw, 490px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/0da099fcfe5853d0d8ad0c607cd46ae2/8ff5a/image-20230121192032089.png 240w,\n/static/0da099fcfe5853d0d8ad0c607cd46ae2/e85cb/image-20230121192032089.png 480w,\n/static/0da099fcfe5853d0d8ad0c607cd46ae2/41d3c/image-20230121192032089.png 490w\"\n            sizes=\"(max-width: 490px) 100vw, 490px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/0da099fcfe5853d0d8ad0c607cd46ae2/41d3c/image-20230121192032089.png\"\n            alt=\"image-20230121192032089\"\n            title=\"image-20230121192032089\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Following the decompiled output carefully, I found that the binary checks whether a specific string is set as an environment variable.</p>\n<p>So I set the correct environment variable and ran the binary to obtain the flag.</p>\n<h2 id=\"hello-network\" style=\"position:relative;\"><a href=\"#hello-network\" aria-label=\"hello network permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Hello (Network)</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 491px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/122d5c903ae08cf87e503facaaf50ab9/13566/image-20230122182944951.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 99.58333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC+klEQVQ4y32SS24TQRCGByEBIfY8+jXjedljOzGOY/IkBARn4EBskJBYsWeDBCy4AkLiAoAQSxB3gAVc4OevnsE4iWDx6a+p6v6runuCyNbY1JWnZ7pYMXYjbJLrROLQNRfod0jcM1xnRwgubyg8fvIUHz99xpu37/D+wyc8fPQEYS9D5SaoTAPDhX07REj65whZkyEGowVMuY3g0tUYL169xs9fv/Dl6zd8//4Dz56/RB4VuFnMsRzMUA6miPMxVD6BHpyDOUW1NIuzMYLIFHDlBGUzRzWee82qLehyioT5rNxCSYbcUBHH+ALVNhTNQl5fkNgSsSkR6nyFNElsxQUllmaM+3oLp3pCprC855C1aB0jWiN2QzEsoNPqLK6Ccq3GZMJLP7ATpK5G4mv1GZI1AmVzJkt+FNzMyXz8lz5zh3aMB2aGghvCLh+TyGvbXJBmnHDACWos+GK7fLEZdafT+Vo85XFuMBYkt+iYEdU1EPWGN2h41zY4ZlG4zfiwi098vsE9Hvmkywt3OPURv28RMZaGiqehYYYdGh5zikOytG28R25x4QH1yGvbQPISi9G+zzW+XnA6LYbKptin4W0mT/1ErfFdH7ffp37qETcO+bMXyElBKpoUXaxdDkMCQ8OawZiINiwOqULhVTbmKDuMG6zQa7FlzbaGDjNuOub/dMhXWrDrTTLkoihNkRDtMi5uSZkX3D8IrDfMsUeTHRovqXOqfO9231PWnUuRecP/ExhjuIEP4187p0mObXZaUJc0lNyIdcdJU5IJ7i/pis5QKwWlFWKijEZCNFHWeHKeoOY9l65l4ByN3BnTFWwWxFGEhCii43iFSRJoMkscDpIMJ8kAp4qPpC2M1nA8mZBa28ImokG42UNNszEXjWggNGsMVYJatSqMeKIJqVizMqm/hsyrE8PetWtouGB3axvTnPfFZMOFo47mD7ZlVecplNLIc/5WVe2nFoKrV64g3dhA2e+j6CjPE4ao1qiJ6/UQ8WRRKIRI2EDi35ssF/uRfZSfAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/122d5c903ae08cf87e503facaaf50ab9/8ac56/image-20230122182944951.webp 240w,\n/static/122d5c903ae08cf87e503facaaf50ab9/d3be9/image-20230122182944951.webp 480w,\n/static/122d5c903ae08cf87e503facaaf50ab9/881c7/image-20230122182944951.webp 491w\"\n              sizes=\"(max-width: 491px) 100vw, 491px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/122d5c903ae08cf87e503facaaf50ab9/8ff5a/image-20230122182944951.png 240w,\n/static/122d5c903ae08cf87e503facaaf50ab9/e85cb/image-20230122182944951.png 480w,\n/static/122d5c903ae08cf87e503facaaf50ab9/13566/image-20230122182944951.png 491w\"\n            sizes=\"(max-width: 491px) 100vw, 491px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/122d5c903ae08cf87e503facaaf50ab9/13566/image-20230122182944951.png\"\n            alt=\"image-20230122182944951\"\n            title=\"image-20230122182944951\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This looked easy, so I solved it as a bonus.</p>\n<p>Expanding the challenge’s packet capture, I found several DNS queries being issued to a mysterious subdomain.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 606px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/5bb10b9f1f7392fa728f98324840638e/4d4a2/image-20230122183101094.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 61.24999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAABwklEQVQoz5XTW1OCQBgGYP///+iuyS5Ky2oUKcWKk4oHEDqAHBQti0y78O3bFS0bnerCYVhmv3n2fdeM/DBBqeHCeQH0/hSq+wrrCeiOFjDHgBHOUVBsnMg2io1HlFs+sqKOU3qXrAFy110ItFZq9vnejOa9oWoNYU+ARjDjQ78PbEUfuOpGEDshpF6Ma2eMM9Xhg+X7Z5QMj6/X7BHtf0dGeXiB0PS4sO5PobnJeiB7GtGcDygoDilciO0Ah5cNFGit1hsif2Oi3PZRNpgwQUYlYcUcwnpmA2fQSNglWSde8GeThGInok0hqiSR7DEfLrQC3BKmSJiKFdO3EXSfhII1wbHqQYuBq/spRCeBEgG3wQJyCEjuHNmagwP6HSku8nqAvWKdr120Y+xXTOR0H8daH2U72ZIhHdv8NcM7EgeU4QQCHXUjQ95ymuGy5WSz5WjOj3jKMqTbwPLKinX+LllphlSQYKQt6ySUKIOVkBWzreVLyrGWCs+1OyonhPpIhbKWSbcUzv4gDH8IW6mQ7mHVHHCh8C/hYLdQ4cJ+KhzvEr5uF8o/hMpSuPqnbAi/t7w7w3AtZBedta55yTLD3leGn03IW9LhOhhmAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/5bb10b9f1f7392fa728f98324840638e/8ac56/image-20230122183101094.webp 240w,\n/static/5bb10b9f1f7392fa728f98324840638e/d3be9/image-20230122183101094.webp 480w,\n/static/5bb10b9f1f7392fa728f98324840638e/18e7e/image-20230122183101094.webp 606w\"\n              sizes=\"(max-width: 606px) 100vw, 606px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/5bb10b9f1f7392fa728f98324840638e/8ff5a/image-20230122183101094.png 240w,\n/static/5bb10b9f1f7392fa728f98324840638e/e85cb/image-20230122183101094.png 480w,\n/static/5bb10b9f1f7392fa728f98324840638e/4d4a2/image-20230122183101094.png 606w\"\n            sizes=\"(max-width: 606px) 100vw, 606px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/5bb10b9f1f7392fa728f98324840638e/4d4a2/image-20230122183101094.png\"\n            alt=\"image-20230122183101094\"\n            title=\"image-20230122183101094\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>The last characters in chronological order were <code class=\"language-text\">==</code>, which identified it as Base64. I extracted the string <code class=\"language-text\">VVBCTHtvMV9tcjNhX2VuMF9oazNfaTBofQ==</code>.</p>\n<p>Decoding it from Base64 yields <code class=\"language-text\">UPBL{o1_mr3a_en0_hk3_i0h}</code>.</p>\n<p>However, the flag format is different, so some encryption must have been applied.</p>\n<p>I thought it might be ROT13, but no matching key existed.</p>\n<p>Since the real flag format is <code class=\"language-text\">KCTF</code>, and <code class=\"language-text\">KCTF</code> encrypted to <code class=\"language-text\">UPBL</code>, I guessed it was a substitution cipher.</p>\n<p>I systematically identified the characters: K→U, C→P, and so on, using the Vigenère cipher table.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 553px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0da428eb30356bc2030321c54cdc2e12/74cfa/image-20230122183758082.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 94.58333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsTAAALEwEAmpwYAAACQElEQVQ4y12U2YqqQQyE/6f2UQQRl3HXa1FwF/ER1BnXcV9RxAfI4YuU/Gcuml5SqU4l6Q4SiYSlUikfrNPptM9fX19WKpV8n0wmLR6P+xm2WCxm2WzWMpmMj2g0apVKxSKRiAW9Xs9+f39tt9vZarWy7Xbr8+VysdPpZMfj0RaLhWOwMS+XSzscDm5jj/35fFq5XLag2+36wXQ6dSAz5DhwPplM7Ofnx9brtc1mM99DwuAcPLbb7eZKgmazafP53J1x2O/3PtjLAWcwcv5LRiDn89nTELTbbT+AgKggw+H7+9sHDmGyzWbj51ICljUpIp9Bq9VyMogghHw8Hnu0EADGrvxBxgWQ6RLs5DuXy1nQ7/f/I8NBRYBUZGFy1hROa+br9fqOcDgcOiEAyCCBmChYI5FBztirC1REESOZ1gk6nY4bqJ4KgDOEEEkmjshU8diDUdu8Xq9329TrdRuNRp/bJDlcTc7lqI5gFiEKH4/HWzJtAyAsg8jYQ4ZNTc8au1LCpRQDPJK9DykKYGSEc6QGBiwizSLjpYBXrj3CWq32iUyRIBsyNS1nGkoHEWEDx+Xs8/m8BY1G45NwtQ0zNytH2CWVPTLVLgoGQj6SYDAYfF6DZOrdciYikfHEkAcRD0ApoTAumd8GR1VTZMqVosMRMhVPeKmisYvFogXVavXzZnFSW4QLQTokU0pkk4r7/f7OIW0D0d/IRAyZqklUyFRxCETND4bP9/PB6v2qJyEmLwAVGYRSoVYBAxZcoVCwf8vhOREzPeWEAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/0da428eb30356bc2030321c54cdc2e12/8ac56/image-20230122183758082.webp 240w,\n/static/0da428eb30356bc2030321c54cdc2e12/d3be9/image-20230122183758082.webp 480w,\n/static/0da428eb30356bc2030321c54cdc2e12/e58ce/image-20230122183758082.webp 553w\"\n              sizes=\"(max-width: 553px) 100vw, 553px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/0da428eb30356bc2030321c54cdc2e12/8ff5a/image-20230122183758082.png 240w,\n/static/0da428eb30356bc2030321c54cdc2e12/e85cb/image-20230122183758082.png 480w,\n/static/0da428eb30356bc2030321c54cdc2e12/74cfa/image-20230122183758082.png 553w\"\n            sizes=\"(max-width: 553px) 100vw, 553px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/0da428eb30356bc2030321c54cdc2e12/74cfa/image-20230122183758082.png\"\n            alt=\"image-20230122183758082\"\n            title=\"image-20230122183758082\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Reference: <a href=\"https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Vigenère cipher - Wikipedia</a></p>\n<p>Using the key <code class=\"language-text\">KNIG</code> converted <code class=\"language-text\">UPBL</code> to <code class=\"language-text\">KCTF</code>, but since this is <strong>KniGT</strong> CTF, the key should be <code class=\"language-text\">KNIGT</code>. The decrypted result with that key, <code class=\"language-text\">KCTF{v1_ce3s_yu0_xx3_a0b}</code>, is the flag.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 690px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b93342b2c4c00ede4b7b238dad633a8c/1e043/image-20230122184001932.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 31.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA2UlEQVQY05XQbW+CMBSGYf7/byNZlhgnwshEmIg4Wqq89IV7wKaJzC87yfWhzTltn3pZmpKlGc46jDb0ff9Aa81mE+D7PlEUUVUVSbL/03fjhcWa1eGFdf5KUKxIRMjuiffTG/E54PR1RAqJlBIhxC+JtRbnHF5cbonLkKSKScUHZZM/d835rHeotmZwA8aa+ZAlLxfpeGuBduOTbUtrGrqFaa+3HUpXHM8Hwm2EUmr8jp6u6x54jb7QmAtXrWbz+ik198n6J26t6nv0yT3yMPCvmoaGcWjpVt8iTs1ADA/HLAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/b93342b2c4c00ede4b7b238dad633a8c/8ac56/image-20230122184001932.webp 240w,\n/static/b93342b2c4c00ede4b7b238dad633a8c/d3be9/image-20230122184001932.webp 480w,\n/static/b93342b2c4c00ede4b7b238dad633a8c/8efd0/image-20230122184001932.webp 690w\"\n              sizes=\"(max-width: 690px) 100vw, 690px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/b93342b2c4c00ede4b7b238dad633a8c/8ff5a/image-20230122184001932.png 240w,\n/static/b93342b2c4c00ede4b7b238dad633a8c/e85cb/image-20230122184001932.png 480w,\n/static/b93342b2c4c00ede4b7b238dad633a8c/1e043/image-20230122184001932.png 690w\"\n            sizes=\"(max-width: 690px) 100vw, 690px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/b93342b2c4c00ede4b7b238dad633a8c/1e043/image-20230122184001932.png\"\n            alt=\"image-20230122184001932\"\n            title=\"image-20230122184001932\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>","fields":{"slug":"/ctf-knightctf-2023-en","tagSlugs":["/tag/ctf-en/","/tag/rev-en/","/tag/english/"]},"frontmatter":{"date":"2023-01-22","description":"KnightCTF CTF 2023 Writeup","tags":["CTF (en)","Rev (en)","English"],"title":"KnightCTF CTF 2022 Writeup","socialImage":{"publicURL":"/static/3b2700d5780c775e74f561dcd8167d36/ctf-knightctf-2023.png"}}}},"pageContext":{"slug":"/ctf-knightctf-2023-en"}},"staticQueryHashes":["251939775","401334301","825871152"]}