{"componentChunkName":"component---src-templates-post-template-js","path":"/ctf-wmctf-2023-en","result":{"data":{"markdownRemark":{"id":"81123908-ad7b-5a42-a149-7245cca92d32","html":"<blockquote>\n<p>This page has been machine-translated from the <a href=\"/ctf-wmctf-2023\">original page</a>.</p>\n</blockquote>\n<!-- omit in toc -->\n<h2 id=\"table-of-contents\" style=\"position:relative;\"><a href=\"#table-of-contents\" aria-label=\"table of contents 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>Table of Contents</h2>\n<ul>\n<li>\n<p><a href=\"#ezandroidrev\">ezAndroid(Rev)</a></p>\n<ul>\n<li><a href=\"#identifying-the-offsets-of-native-library-functions\">Identifying the offsets of native library functions</a></li>\n<li><a href=\"#analyzing-checkusername\">Analyzing CheckUserName</a></li>\n<li><a href=\"#analyzing-check2\">Analyzing check2</a></li>\n</ul>\n</li>\n<li><a href=\"#summary\">Summary</a></li>\n</ul>\n<h2 id=\"ezandroidrev\" style=\"position:relative;\"><a href=\"#ezandroidrev\" aria-label=\"ezandroidrev 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>ezAndroid(Rev)</h2>\n<blockquote>\n<p>search patiently</p>\n</blockquote>\n<p>When I launched the APK file provided as the challenge binary in an emulator, it turned out to be an application that validates a username and password as shown below.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 511px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/5d7daa17efda18c96768863c291f5e95/92e00/image-20230819104025590.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: 202.08333333333331%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAYAAAD+MdrbAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGbUlEQVRIx61WaWxUVRR+pQsUS9haulgIZTojyGbttNMi8YdKTAwGMUYTEpaC4vJPA4LGmLhCxbYIiCDKohESWxKEqMS4gZYIUou20nb2mU47S/vmvXlvptN2pv08977OwFjBYHzJ13vud+797jnnLlNhadkSlBSWQTdpA/TZm1GavRGlkzToszdh3sQNY1jPW+7PriF/Dc1h2IiijJUoLizBXeXlEBYtLMPsjDWYlWOEadJxrC5pxmOGc1hbdgH3ZH0Do3AWlYQK4WsO4xgqCeWEJ+78CTXlrTDO3Qz9/HkQFhoqYEx7H/OF57BcOIMVaRewIv0nrMxpxgMTzuM+4dxN8UDGj1iVcwWmnFro5heToP5urMm6glfmAFuKFbw4N4Sts0PYlCZhoyDhSWo3CTfGRqEfm4U4VmQeQ8mCIkrZYMQTE3/FS3oVW3UithskvKiTUCOIWEuD1/0L1gp+Eh7G/elHNUFjeSXOfPQn2r4CLp8aQMupKFq+iOL3rwfx+9lBrb0JWr+MwHYeaHj1BIqKCyGYqkxw91qhfaO49S/O/57+8iTy85mgqQpdnWZOxobjGImN3hKGBmN8bmNjE/ILSLCqqhoWi4WTIyMjGB0dvSXEYprgyZNNKCy6HUJ19f8nWKq/Y7zgrX7XC+oNC1IF4/E4QqEQJEmCKIq8ZX1ZllOQ4CKRCJ/DvqamJsyeMzdVkK3W2dmJ5uZmtLa2wmw2w263w2azjQOb4/V6UwRn5RekbgoTZPbFi5fgcDjgdrnhdDrHweVy8YX8fn+KIN/l1AjjPI3o4ADCYRWqqhDUfwQfF42mCBYUFv1NMD4Ml60HV1u60XXFA6etGx5PN7q7x6O9vY2nnNjIG0QYg7nTipZLbej60w5LF9XLaoP1elg0fPftD7DbHPzoJAVZDVME6aYEusPwuRQOr1OBx6Kgh8GqwedkUBFwRyAFUlNOCprNmmCoL4Y3KhRsnRPCdl0IL+sV1N6rYudyFW9Xq3jTpGLbPOINCp4vkHG4Jpy8y/8oqIox1D8k47UKCW9WS3h7uYS9q0PY/bCMhpUy971hkvDWPRJeXSrhxAvqNcHGxmvHJiEYlmL4aL2K3SsVElKwZ5WC98g+uEbF/sfH+EcU7HtUQd2DCk6/Hrm5oOwbxpY5QTyVKeLZHBFPT6Z2ShAvz5eIl/B0tohnbtO4DfQA71kVSgo2kmD+3w/2yEgcg5E4omoqwkE6n3IqN6DEMTw4QpsSSwrOGi/43x+HxsbPbyJ4/cM9eoN27BtJHptkhFXo6Ojk5ODQEF27IQwND/OWYXBoOIVL9DlHdjgywOd+dvz4tWNz7vzP8PYFYXHQY9DdC5uLrpfXD6fHix5/HxzEuXt9HMzu8QXIp3FWpxtiKIy9+w+gkN3lZcuW4fsffoS/Pwizw8UF7O4e+GgBb0CkVkRvoB/uHh+37W4P8f0UgMgFXT1eBIIhHDz0sfY4mEwmtPz2GwYofFFWEAypkAjM7pdCHJIS5nzCz1pRDnGbBcKqeOToJ/Q4UMqVlZUk2ApXr5+nYXN5eJQdFjuPikXAS0G+LruT0u2DxxvgJTGzPo2Vw1EcOfaJtilM8HJLK1+1l5wMbFUP1SkgSugLylyU9RnPwErBfKwUrAz0a4rDR49dE7x06Vf6naAUg5pAIlVmMyTSZ5MTfGIxVs9+WcWhjw9rgqyGbJf/aO8gQZmnx6Jhu8dSYxvEUmdo77LwVDvpHbQ6u9FhtfNS/HKlDR8c/FCrodFYgYuXWyCpEVpR4imxKLTCK8mNCIbG+tdtGI9elPk5PEIp583Kh1BuNOLnC79oxeZ1kvhx6LQ60GVzjsExBifMFJWFbHYWZUr7bMdV7GprwXsHDqCApcwE2zu6EKHXmiFKFVaiQ/CRsI9WZ/DTOWNgdh9lIIpBujnaHb7g9WCf24JDn36KfBbh4sVLsG37S9i9Zy9qd72LXXX1HO/WNxDqUdfQgB2173Afs+vIV0++HTt2YufOWtQRv3/vPqxftw63F8+GYDDQ/yOCkITBYMDk7OxxXG5ubgpXUVEBnU7H7aysLN7qaZywaNFiZGRkIC0tjSMzMxPp6encnjBhAh84ZcoUZI8tkuDYAlOnTuU2m8/8C+5cCOGuu8tRUlLCB8ycORMzZszgLevn5uYhLy8vyTGb8aydNm0apk+fzm0GXWkpliwtw1/36ohcEFHunwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/5d7daa17efda18c96768863c291f5e95/8ac56/image-20230819104025590.webp 240w,\n/static/5d7daa17efda18c96768863c291f5e95/d3be9/image-20230819104025590.webp 480w,\n/static/5d7daa17efda18c96768863c291f5e95/4719d/image-20230819104025590.webp 511w\"\n              sizes=\"(max-width: 511px) 100vw, 511px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/5d7daa17efda18c96768863c291f5e95/8ff5a/image-20230819104025590.png 240w,\n/static/5d7daa17efda18c96768863c291f5e95/e85cb/image-20230819104025590.png 480w,\n/static/5d7daa17efda18c96768863c291f5e95/92e00/image-20230819104025590.png 511w\"\n            sizes=\"(max-width: 511px) 100vw, 511px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/5d7daa17efda18c96768863c291f5e95/92e00/image-20230819104025590.png\"\n            alt=\"image-20230819104025590\"\n            title=\"image-20230819104025590\"\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 first unpacked the APK with <code class=\"language-text\">apktool</code> and checked the Manifest, which showed that debugging was enabled.</p>\n<div class=\"gatsby-highlight\" data-language=\"xml\"><pre class=\"language-xml\"><code class=\"language-xml\"><span class=\"token prolog\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>manifest</span> <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:</span>android</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>http://schemas.android.com/apk/res/android<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>compileSdkVersion</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>33<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>compileSdkVersionCodename</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>13<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">package</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>com.wmctf.ezandroid<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">platformBuildVersionCode</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>33<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">platformBuildVersionName</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>13<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>permission</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>com.wmctf.ezandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>protectionLevel</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>signature<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>uses-permission</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>com.wmctf.ezandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>application</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>allowBackup</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>true<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>appComponentFactory</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.core.app.CoreComponentFactory<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>dataExtractionRules</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>@xml/data_extraction_rules<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>debuggable</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>true<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>fullBackupContent</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>@xml/backup_rules<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>icon</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>@mipmap/ic_launcher<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>label</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>@string/app_name<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>supportsRtl</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>true<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>theme</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>@style/Theme.EzAndroid<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>activity</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>exported</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>true<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>com.wmctf.ezandroid.MainActivity<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>intent-filter</span><span class=\"token punctuation\">></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>action</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>android.intent.action.MAIN<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n                <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>category</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>android.intent.category.LAUNCHER<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>intent-filter</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>activity</span><span class=\"token punctuation\">></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>provider</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>authorities</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>com.wmctf.ezandroid.androidx-startup<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>exported</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>false<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.startup.InitializationProvider<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta-data</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.emoji2.text.EmojiCompatInitializer<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>value</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.startup<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n            <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta-data</span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.lifecycle.ProcessLifecycleInitializer<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\"><span class=\"token namespace\">android:</span>value</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>androidx.startup<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">/></span></span>\n        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>provider</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>application</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>manifest</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>Next, I decompiled the smali file for <code class=\"language-text\">com.wmctf.ezandroid.MainActivity</code> into Java source using <a href=\"https://github.com/AlexeySoshin/smali2java\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">smali2java</a>.</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token keyword\">extends</span> <span class=\"token class-name\"><span class=\"token namespace\">androidx<span class=\"token punctuation\">.</span>appcompat<span class=\"token punctuation\">.</span>app<span class=\"token punctuation\">.</span></span>AppCompatActivity</span> <span class=\"token punctuation\">{</span>\n\t <span class=\"token comment\">/* .source \"MainActivity.java\" */</span>\n\t <span class=\"token comment\">/* # static fields */</span>\n\t <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> x<span class=\"token punctuation\">;</span>\n\t <span class=\"token comment\">/* # instance fields */</span>\n\t <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>Button</span> checkoutButton<span class=\"token punctuation\">;</span>\n\t <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>Button</span> exitButton<span class=\"token punctuation\">;</span>\n\t <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>EditText</span> passwordInput<span class=\"token punctuation\">;</span>\n\t <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>EditText</span> usernameInput<span class=\"token punctuation\">;</span>\n\t <span class=\"token comment\">/* # direct methods */</span>\n\t <span class=\"token keyword\">static</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t <span class=\"token comment\">/* .locals 1 */</span>\n\t\t <span class=\"token comment\">/* .line 22 */</span>\n\t\t <span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v0 <span class=\"token operator\">=</span> <span class=\"token string\">\"ezandroid\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v0, \"ezandroid\"</span>\n\t\t <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>System</span> <span class=\"token punctuation\">.</span>loadLibrary <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t\t <span class=\"token comment\">/* .line 23 */</span>\n\t\t <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n\t <span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n\t <span class=\"token keyword\">public</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t <span class=\"token comment\">/* .locals 0 */</span>\n\t\t <span class=\"token comment\">/* .line 15 */</span>\n\t\t <span class=\"token comment\">/* invoke-direct {p0}, Landroidx/appcompat/app/AppCompatActivity;->&lt;init>()V */</span>\n\t\t <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n\t <span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n\t <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> lambda$messageBox$<span class=\"token number\">0</span> <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>content<span class=\"token punctuation\">.</span></span>DialogInterface</span> p0<span class=\"token punctuation\">,</span> <span class=\"token class-name\">Integer</span> p1 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">//synthethic</span>\n\t\t <span class=\"token comment\">/* .locals 0 */</span>\n\t\t <span class=\"token comment\">/* .param p0, \"dialogInterface\" # Landroid/content/DialogInterface; */</span>\n\t\t <span class=\"token comment\">/* .param p1, \"i\" # I */</span>\n\t\t <span class=\"token comment\">/* .line 28 */</span>\n\t\t <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n\t <span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n\t <span class=\"token comment\">/* # virtual methods */</span>\n\t <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token class-name\">CheckOutClick</span> <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>view<span class=\"token punctuation\">.</span></span>View</span> p0 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t <span class=\"token comment\">/* .locals 6 */</span>\n\t\t <span class=\"token comment\">/* .param p1, \"view\" # Landroid/view/View; */</span>\n\t\t <span class=\"token comment\">/* .line 32 */</span>\n\t\t v0 <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>usernameInput<span class=\"token punctuation\">;</span>\n\t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>EditText</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>getText <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0}, Landroid/widget/EditText;->getText()Landroid/text/Editable;</span>\n\t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>Object</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>toString <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;</span>\n\t\t <span class=\"token comment\">/* .line 33 */</span>\n\t\t <span class=\"token comment\">/* .local v0, \"username\":Ljava/lang/String; */</span>\n\t\t v1 <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>passwordInput<span class=\"token punctuation\">;</span>\n\t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>EditText</span> <span class=\"token punctuation\">)</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>getText <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v1}, Landroid/widget/EditText;->getText()Landroid/text/Editable;</span>\n\t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>Object</span> <span class=\"token punctuation\">)</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>toString <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;</span>\n\t\t <span class=\"token comment\">/* .line 34 */</span>\n\t\t <span class=\"token comment\">/* .local v1, \"password\":Ljava/lang/String; */</span>\n\t\t <span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v2 <span class=\"token operator\">=</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v2, \"\"</span>\n\t\t v3 <span class=\"token operator\">=</span> \t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>equals <span class=\"token punctuation\">(</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z</span>\n\t\t <span class=\"token comment\">/* if-nez v3, :cond_3 */</span>\n\t\t v2 <span class=\"token operator\">=</span> \t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> <span class=\"token punctuation\">)</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>equals <span class=\"token punctuation\">(</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z</span>\n\t\t <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v2 <span class=\"token operator\">!=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">// if-eqz v2, :cond_0</span>\n\t\t\t <span class=\"token comment\">/* .line 37 */</span>\n\t\t <span class=\"token punctuation\">}</span> <span class=\"token comment\">// :cond_0</span>\n\t\t v2 <span class=\"token operator\">=</span> \t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>CheckUsername <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->CheckUsername(Ljava/lang/String;)I</span>\n\t\t <span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v3 <span class=\"token operator\">=</span> <span class=\"token string\">\"failed login\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v3, \"failed login\"</span>\n\t\t <span class=\"token keyword\">int</span> v4 <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const/4 v4, 0x1</span>\n\t\t <span class=\"token comment\">/* if-eq v2, v4, :cond_1 */</span>\n\t\t <span class=\"token comment\">/* .line 38 */</span>\n\t\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>messageBox <span class=\"token punctuation\">(</span> v3 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v3}, Lcom/wmctf/ezandroid/MainActivity;->messageBox(Ljava/lang/String;)V</span>\n\t\t <span class=\"token comment\">/* .line 40 */</span>\n\t <span class=\"token punctuation\">}</span> <span class=\"token comment\">// :cond_1</span>\n\t <span class=\"token comment\">/* new-instance v2, Ljava/lang/StringBuilder; */</span>\n\t <span class=\"token comment\">/* invoke-direct {v2}, Ljava/lang/StringBuilder;->&lt;init>()V */</span>\n\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n\t <span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v5 <span class=\"token operator\">=</span> <span class=\"token string\">\"123456\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v5, \"123456\"</span>\n\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v5 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>toString <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;</span>\n\t <span class=\"token comment\">/* .line 41 */</span>\n\t v2 <span class=\"token operator\">=</span> \t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>check2 <span class=\"token punctuation\">(</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v1}, Lcom/wmctf/ezandroid/MainActivity;->check2(Ljava/lang/String;)I</span>\n\t <span class=\"token comment\">/* if-eq v2, v4, :cond_2 */</span>\n\t <span class=\"token comment\">/* .line 42 */</span>\n\t <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>messageBox <span class=\"token punctuation\">(</span> v3 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v3}, Lcom/wmctf/ezandroid/MainActivity;->messageBox(Ljava/lang/String;)V</span>\n\t <span class=\"token comment\">/* .line 44 */</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// :cond_2</span>\n<span class=\"token comment\">/* new-instance v2, Ljava/lang/StringBuilder; */</span>\n<span class=\"token comment\">/* invoke-direct {v2}, Ljava/lang/StringBuilder;->&lt;init>()V */</span>\n<span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v3 <span class=\"token operator\">=</span> <span class=\"token string\">\"WMCTF{\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v3, \"WMCTF{\"</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v3 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n<span class=\"token comment\">/* const-string/jumbo v3, \"}\" */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>append <span class=\"token punctuation\">(</span> v3 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>StringBuilder</span> <span class=\"token punctuation\">)</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>toString <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;</span>\n<span class=\"token comment\">/* .line 45 */</span>\n<span class=\"token comment\">/* .local v2, \"flag\":Ljava/lang/String; */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>messageBox <span class=\"token punctuation\">(</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v2}, Lcom/wmctf/ezandroid/MainActivity;->messageBox(Ljava/lang/String;)V</span>\n<span class=\"token comment\">/* .line 35 */</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end local v2 # \"flag\":Ljava/lang/String;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// :cond_3</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// :goto_0</span>\n<span class=\"token comment\">/* const-string/jumbo v2, \"username or password is empty!\" */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>messageBox <span class=\"token punctuation\">(</span> v2 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v2}, Lcom/wmctf/ezandroid/MainActivity;->messageBox(Ljava/lang/String;)V</span>\n<span class=\"token comment\">/* .line 50 */</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// :goto_1</span>\n<span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n<span class=\"token keyword\">public</span> <span class=\"token keyword\">native</span> <span class=\"token class-name\">Integer</span> <span class=\"token class-name\">CheckUsername</span> <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> p0 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n<span class=\"token keyword\">public</span> <span class=\"token keyword\">native</span> <span class=\"token class-name\">Integer</span> check2 <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> p0 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n<span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> messageBox <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>lang<span class=\"token punctuation\">.</span></span>String</span> p0 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token comment\">/* .locals 3 */</span>\n<span class=\"token comment\">/* .param p1, \"title\" # Ljava/lang/String; */</span>\n<span class=\"token comment\">/* .line 26 */</span>\n<span class=\"token comment\">/* new-instance v0, Landroid/app/AlertDialog$Builder; */</span>\n<span class=\"token comment\">/* invoke-direct {v0, p0}, Landroid/app/AlertDialog$Builder;->&lt;init>(Landroid/content/Context;)V */</span>\n<span class=\"token comment\">/* .line 27 */</span>\n<span class=\"token comment\">/* .local v0, \"dialog\":Landroid/app/AlertDialog$Builder; */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>app<span class=\"token punctuation\">.</span></span>AlertDialog</span>$<span class=\"token class-name\">Builder</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>setMessage <span class=\"token punctuation\">(</span> p1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0, p1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;</span>\n<span class=\"token comment\">/* .line 28 */</span>\n<span class=\"token comment\">/* new-instance v1, Lcom/wmctf/ezandroid/MainActivity$$ExternalSyntheticLambda0; */</span>\n<span class=\"token comment\">/* invoke-direct {v1}, Lcom/wmctf/ezandroid/MainActivity$$ExternalSyntheticLambda0;->&lt;init>()V */</span>\n<span class=\"token keyword\">final</span> <span class=\"token class-name\">String</span> v2 <span class=\"token operator\">=</span> <span class=\"token string\">\"OK\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// const-string v2, \"OK\"</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>app<span class=\"token punctuation\">.</span></span>AlertDialog</span>$<span class=\"token class-name\">Builder</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>setPositiveButton <span class=\"token punctuation\">(</span> v2<span class=\"token punctuation\">,</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0, v2, v1}, Landroid/app/AlertDialog$Builder;->setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;</span>\n<span class=\"token comment\">/* .line 29 */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>app<span class=\"token punctuation\">.</span></span>AlertDialog</span>$<span class=\"token class-name\">Builder</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>show <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->show()Landroid/app/AlertDialog;</span>\n<span class=\"token comment\">/* .line 30 */</span>\n<span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span>\n<span class=\"token keyword\">protected</span> <span class=\"token keyword\">void</span> onCreate <span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>os<span class=\"token punctuation\">.</span></span>Bundle</span> p0 <span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token comment\">/* .locals 2 */</span>\n<span class=\"token comment\">/* .param p1, \"savedInstanceState\" # Landroid/os/Bundle; */</span>\n<span class=\"token comment\">/* .line 54 */</span>\n<span class=\"token comment\">/* invoke-super {p0, p1}, Landroidx/appcompat/app/AppCompatActivity;->onCreate(Landroid/os/Bundle;)V */</span>\n<span class=\"token comment\">/* .line 55 */</span>\n<span class=\"token comment\">/* const v0, 0x7f0b001c */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>setContentView <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->setContentView(I)V</span>\n<span class=\"token comment\">/* .line 56 */</span>\n<span class=\"token comment\">/* const v0, 0x7f0801de */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>findViewById <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->findViewById(I)Landroid/view/View;</span>\n<span class=\"token comment\">/* check-cast v0, Landroid/widget/EditText; */</span>\n<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>usernameInput <span class=\"token operator\">=</span> v0<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* .line 57 */</span>\n<span class=\"token comment\">/* const v0, 0x7f08014a */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>findViewById <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->findViewById(I)Landroid/view/View;</span>\n<span class=\"token comment\">/* check-cast v0, Landroid/widget/EditText; */</span>\n<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>passwordInput <span class=\"token operator\">=</span> v0<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* .line 58 */</span>\n<span class=\"token comment\">/* const v0, 0x7f08006f */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>findViewById <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->findViewById(I)Landroid/view/View;</span>\n<span class=\"token comment\">/* check-cast v0, Landroid/widget/Button; */</span>\n<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>checkoutButton <span class=\"token operator\">=</span> v0<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* .line 59 */</span>\n<span class=\"token comment\">/* const v0, 0x7f0800b3 */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">com<span class=\"token punctuation\">.</span>wmctf<span class=\"token punctuation\">.</span>ezandroid<span class=\"token punctuation\">.</span></span>MainActivity</span> <span class=\"token punctuation\">)</span> p0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>findViewById <span class=\"token punctuation\">(</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {p0, v0}, Lcom/wmctf/ezandroid/MainActivity;->findViewById(I)Landroid/view/View;</span>\n<span class=\"token comment\">/* check-cast v0, Landroid/widget/Button; */</span>\n<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>exitButton <span class=\"token operator\">=</span> v0<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* .line 60 */</span>\nv0 <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>checkoutButton<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* new-instance v1, Lcom/wmctf/ezandroid/MainActivity$1; */</span>\n<span class=\"token comment\">/* invoke-direct {v1, p0}, Lcom/wmctf/ezandroid/MainActivity$1;->&lt;init>(Lcom/wmctf/ezandroid/MainActivity;)V */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>Button</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>setOnClickListener <span class=\"token punctuation\">(</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0, v1}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V</span>\n<span class=\"token comment\">/* .line 66 */</span>\nv0 <span class=\"token operator\">=</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>exitButton<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">/* new-instance v1, Lcom/wmctf/ezandroid/MainActivity$2; */</span>\n<span class=\"token comment\">/* invoke-direct {v1, p0}, Lcom/wmctf/ezandroid/MainActivity$2;->&lt;init>(Lcom/wmctf/ezandroid/MainActivity;)V */</span>\n<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span> <span class=\"token class-name\"><span class=\"token namespace\">android<span class=\"token punctuation\">.</span>widget<span class=\"token punctuation\">.</span></span>Button</span> <span class=\"token punctuation\">)</span> v0 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>setOnClickListener <span class=\"token punctuation\">(</span> v1 <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// invoke-virtual {v0, v1}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V</span>\n<span class=\"token comment\">/* .line 72 */</span>\n<span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span> <span class=\"token comment\">// .end method</span></code></pre></div>\n<p>First, notice that the native library functions <code class=\"language-text\">CheckUsername</code> and <code class=\"language-text\">check2</code> are declared.</p>\n<p>When you click the app’s check button, the entered username is passed to <code class=\"language-text\">CheckUsername</code> and the password to <code class=\"language-text\">check2</code>, so we can see that the validation happens there.</p>\n<p>Using Ghidra and Android Studio, I managed to identify where the checks happen, but unfortunately I could not fully trace the processing inside the native library functions, so I gave up at that point.</p>\n<p>From here on, I continue solving the challenge while referring to the official writeup.</p>\n<p>Reference: <a href=\"https://github.com/wm-team/WMCTF-2023/tree/main\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">wm-team/WMCTF-2023</a></p>\n<h3 id=\"identifying-the-offsets-of-native-library-functions\" style=\"position:relative;\"><a href=\"#identifying-the-offsets-of-native-library-functions\" aria-label=\"identifying the offsets of native library functions 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>Identifying the offsets of native library functions</h3>\n<p>To analyze the binary, I first needed to identify the offsets of the <code class=\"language-text\">CheckUsername</code> and <code class=\"language-text\">check2</code> functions inside the native library.</p>\n<p>In this binary, the functions were not registered in the export table of the native library.</p>\n<p>So when I investigated it on my own, I set breakpoints on several likely-looking functions I found in Ghidra and used the Android Studio debugger to identify the correct ones.</p>\n<p>According to the writeup, native libraries like this, whose functions are not registered in the export table, are implemented using a dynamic registration(?) mechanism via the <code class=\"language-text\">JNI_onload</code> function, and hooking the <code class=\"language-text\">RegisterNatives</code> method with Frida seems to be an effective way to identify function addresses cleanly.</p>\n<p>Reference: <a href=\"https://stackoverflow.com/questions/1010645/what-does-the-registernatives-method-do\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">java - What does the registerNatives() method do? - Stack Overflow</a></p>\n<p>So, while recalling the content of <a href=\"/ctf-android-apk-debug-tutorial#frida-hook-%E3%81%A7%E5%8B%95%E7%9A%84%E8%A7%A3%E6%9E%90%E3%82%92%E8%A1%8C%E3%81%86\">Five techniques I learned so I won’t lose to Android app analysis challenges</a>, I loaded the challenge APK into Android Studio, launched the emulator, and prepared a Frida hook.</p>\n<p>First, run the following commands in order to start the Frida server on the emulator.</p>\n<div class=\"gatsby-highlight\" data-language=\"powe\"><pre class=\"language-powe\"><code class=\"language-powe\">adb root\nadb.exe install ezAndroid.apk\nren frida-server-16.1.3-android-x86 frida-server\nadb push frida-server /data/local/tmp\nadb shell chmod +x /data/local/tmp/frida-server\nadb shell /data/local/tmp/frida-server</code></pre></div>\n<p>Next, save the following JavaScript code as <code class=\"language-text\">payload.js</code> to hook <code class=\"language-text\">RegisterNatives</code>.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function</span> <span class=\"token function\">hook_RegisterNatives</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">var</span> symbols <span class=\"token operator\">=</span> Process<span class=\"token punctuation\">.</span><span class=\"token function\">getModuleByName</span><span class=\"token punctuation\">(</span><span class=\"token string\">'libart.so'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">enumerateSymbols</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">var</span> RegisterNatives_addr <span class=\"token operator\">=</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> symbols<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">var</span> symbol <span class=\"token operator\">=</span> symbols<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>symbol<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"RegisterNatives\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span> <span class=\"token operator\">&amp;&amp;</span> symbol<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"CheckJNI\"</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            RegisterNatives_addr <span class=\"token operator\">=</span> symbol<span class=\"token punctuation\">.</span>address<span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"RegisterNatives_addr: \"</span><span class=\"token punctuation\">,</span> RegisterNatives_addr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    Interceptor<span class=\"token punctuation\">.</span><span class=\"token function\">attach</span><span class=\"token punctuation\">(</span>RegisterNatives_addr<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function-variable function\">onEnter</span><span class=\"token operator\">:</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">args</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">var</span> env <span class=\"token operator\">=</span> Java<span class=\"token punctuation\">.</span>vm<span class=\"token punctuation\">.</span><span class=\"token function\">tryGetEnv</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">var</span> className <span class=\"token operator\">=</span> env<span class=\"token punctuation\">.</span><span class=\"token function\">getClassName</span><span class=\"token punctuation\">(</span>args<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">var</span> methodCount <span class=\"token operator\">=</span> args<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">toInt32</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> methodCount<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n                <span class=\"token keyword\">var</span> methodName <span class=\"token operator\">=</span> args<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">3</span> <span class=\"token operator\">*</span> i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">readPointer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">readCString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                <span class=\"token keyword\">var</span> signature <span class=\"token operator\">=</span> args<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">3</span> <span class=\"token operator\">*</span> i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">readPointer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">readCString</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                <span class=\"token keyword\">var</span> fnPtr <span class=\"token operator\">=</span>\n                    args<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">3</span> <span class=\"token operator\">*</span> i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>Process<span class=\"token punctuation\">.</span>pointerSize <span class=\"token operator\">*</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">readPointer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                <span class=\"token keyword\">var</span> module <span class=\"token operator\">=</span> Process<span class=\"token punctuation\">.</span><span class=\"token function\">findModuleByAddress</span><span class=\"token punctuation\">(</span>fnPtr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>className<span class=\"token punctuation\">,</span> methodName<span class=\"token punctuation\">,</span> signature<span class=\"token punctuation\">,</span> fnPtr<span class=\"token punctuation\">,</span> module<span class=\"token punctuation\">.</span>name<span class=\"token punctuation\">,</span> fnPtr<span class=\"token punctuation\">.</span><span class=\"token function\">sub</span><span class=\"token punctuation\">(</span>module<span class=\"token punctuation\">.</span>base<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token function-variable function\">onLeave</span><span class=\"token operator\">:</span> <span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">retval</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token function\">hook_RegisterNatives</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>When I tried the Frida hook with the <code class=\"language-text\">payload.js</code> above, I found that the offset of <code class=\"language-text\">CheckUsername</code> was <code class=\"language-text\">0x28c0</code> and that of <code class=\"language-text\">check2</code> was <code class=\"language-text\">0x2d20</code>.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">frida.exe -U -l payload.js -f com.wmctf.ezandroid\n<span class=\"token operator\">></span>\ncom.wmctf.ezandroid.MainActivity CheckUsername <span class=\"token punctuation\">(</span>Ljava/lang/String<span class=\"token punctuation\">;</span><span class=\"token punctuation\">)</span>I 0xbc3ed8c0 libezandroid.so 0x28c0\ncom.wmctf.ezandroid.MainActivity check2 <span class=\"token punctuation\">(</span>Ljava/lang/String<span class=\"token punctuation\">;</span><span class=\"token punctuation\">)</span>I 0xbc3edd20 libezandroid.so 0x2d20</code></pre></div>\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/2424c449db350059fb674905c18dc88b/289dd/image-20230823230030015.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: 29.583333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxUlEQVQY042QSwuDMBCEc/X9fpuA1NaKiJf2//+0aWYhpQcpHj5Gs5vZzaimaWCMgdYafd+jbVthGAb553nXdQjDEEEQiP5DZVmGqqrkYlEUX2PC8yRJxOiKmRh6nocoimQLmozjKN8kTVOpOcMrqNs84/544LmuWC3c0D27rmvkeS6mjjiOZeszZV29jwOvfce+bWK6LAtmO2SaJtmSGxNmSuWQsixlEJUxOaWx0rbRWLRtZmbMlM0uE079zYjP8n3/FNY+mpKSpte3RQoAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/2424c449db350059fb674905c18dc88b/8ac56/image-20230823230030015.webp 240w,\n/static/2424c449db350059fb674905c18dc88b/d3be9/image-20230823230030015.webp 480w,\n/static/2424c449db350059fb674905c18dc88b/e46b2/image-20230823230030015.webp 960w,\n/static/2424c449db350059fb674905c18dc88b/a92ed/image-20230823230030015.webp 1409w\"\n              sizes=\"(max-width: 960px) 100vw, 960px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/2424c449db350059fb674905c18dc88b/8ff5a/image-20230823230030015.png 240w,\n/static/2424c449db350059fb674905c18dc88b/e85cb/image-20230823230030015.png 480w,\n/static/2424c449db350059fb674905c18dc88b/d9199/image-20230823230030015.png 960w,\n/static/2424c449db350059fb674905c18dc88b/289dd/image-20230823230030015.png 1409w\"\n            sizes=\"(max-width: 960px) 100vw, 960px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/2424c449db350059fb674905c18dc88b/d9199/image-20230823230030015.png\"\n            alt=\"image-20230823230030015\"\n            title=\"image-20230823230030015\"\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>However, for some reason, the Frida process exits.</p>\n<p>This appears to be caused by anti-debugging via Frida detection.</p>\n<p>So I decided to switch for the time being to a static-analysis approach for these functions.</p>\n<h3 id=\"analyzing-checkusername\" style=\"position:relative;\"><a href=\"#analyzing-checkusername\" aria-label=\"analyzing checkusername 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>Analyzing CheckUserName</h3>\n<p>I started by analyzing the <code class=\"language-text\">CheckUserName</code> function.</p>\n<p>IDA’s decompiled output was much easier to read than Ghidra’s, so I include it below.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token keyword\">int</span> __cdecl <span class=\"token function\">sub_28C0</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a1<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a2<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a3<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">int</span> v3<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v4<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  <span class=\"token keyword\">int</span> v5<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v6<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v7<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+44h] [ebp-68h]</span>\n  <span class=\"token keyword\">int</span> v10<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+48h] [ebp-64h]</span>\n  <span class=\"token keyword\">int</span> v11<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+4Ch] [ebp-60h]</span>\n  <span class=\"token keyword\">int</span> v12<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+50h] [ebp-5Ch]</span>\n  BOOL v13<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+54h] [ebp-58h]</span>\n  _DWORD v14<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+8Fh] [ebp-1Dh] BYREF</span>\n  <span class=\"token keyword\">char</span> v15<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+97h] [ebp-15h]</span>\n  <span class=\"token keyword\">int</span> v16<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+98h] [ebp-14h]</span>\n\n  v12 <span class=\"token operator\">=</span> <span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v3 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v12<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v11 <span class=\"token operator\">=</span> <span class=\"token function\">malloc</span><span class=\"token punctuation\">(</span>v3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v10 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v12<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1175022871</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">;</span> i <span class=\"token operator\">=</span> v4 <span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">196966936</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">{</span>\n        v13 <span class=\"token operator\">=</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">712737466</span> <span class=\"token operator\">&amp;&amp;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">1618600811</span><span class=\"token punctuation\">;</span>\n        i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">449433691</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">1175022871</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">sub_4BC0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>unk_9228<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>unk_6650 <span class=\"token operator\">+</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v14<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">155</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v14<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">156</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v15 <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>_BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">628</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v5 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v14<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token function\">sub_5810</span><span class=\"token punctuation\">(</span>v12<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">,</span> v10<span class=\"token punctuation\">,</span> v14<span class=\"token punctuation\">,</span> v5<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v6 <span class=\"token operator\">=</span> <span class=\"token function\">memcmp</span><span class=\"token punctuation\">(</span>v11<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>byte_9138<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      v7 <span class=\"token operator\">=</span> <span class=\"token number\">1618600811</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token operator\">!</span>v6 <span class=\"token punctuation\">)</span>\n        v7 <span class=\"token operator\">=</span> <span class=\"token number\">712737466</span><span class=\"token punctuation\">;</span>\n      i <span class=\"token operator\">=</span> v7<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">449433691</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    v4 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1711309751</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v10 <span class=\"token operator\">!=</span> <span class=\"token number\">10</span> <span class=\"token punctuation\">)</span>\n      v4 <span class=\"token operator\">=</span> <span class=\"token number\">196966936</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token operator\">-></span>d_tag <span class=\"token operator\">==</span> v16 <span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> v13<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Looking from the top, the following lines show that some kind of length is stored in <code class=\"language-text\">v10</code>.</p>\n<p>When I checked it in the Android Studio debugger, <code class=\"language-text\">v12</code> was the username string I had entered, and <code class=\"language-text\">v10</code> was its length.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\">v12 <span class=\"token operator\">=</span> <span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv3 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v12<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv11 <span class=\"token operator\">=</span> <span class=\"token function\">malloc</span><span class=\"token punctuation\">(</span>v3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv10 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v12<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>So I renamed <code class=\"language-text\">v12</code> and <code class=\"language-text\">v10</code> accordingly.</p>\n<p>Next, let us look at the processing inside the <code class=\"language-text\">for</code> and <code class=\"language-text\">while</code> loops.</p>\n<p>First, since the initial value of <code class=\"language-text\">i</code> is <code class=\"language-text\">-1175022871</code>, we know the first loop will definitely reach the following block first.</p>\n<p><code class=\"language-text\">v4</code> stores the next value of <code class=\"language-text\">i</code> within the <code class=\"language-text\">for</code> loop.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\">v4 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1711309751</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> user_name_len <span class=\"token operator\">!=</span> <span class=\"token number\">10</span> <span class=\"token punctuation\">)</span> v4 <span class=\"token operator\">=</span> <span class=\"token number\">196966936</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>If <code class=\"language-text\">v4</code> remains <code class=\"language-text\">-1711309751</code>, execution cannot proceed any further, so the username must be 10 characters long.</p>\n<p>When a 10-character username is entered, the following processing is called next.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token function\">sub_4BC0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>unk_9228<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>unk_6650 <span class=\"token operator\">+</span> <span class=\"token number\">18</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv14<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">155</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv14<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">156</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv15 <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>_BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">+</span> <span class=\"token number\">628</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv5 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v14<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">sub_5810</span><span class=\"token punctuation\">(</span>user_name<span class=\"token punctuation\">,</span> user_name_heap_ptr<span class=\"token punctuation\">,</span> user_name_len<span class=\"token punctuation\">,</span> v14<span class=\"token punctuation\">,</span> v5<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv6 <span class=\"token operator\">=</span> <span class=\"token function\">memcmp</span><span class=\"token punctuation\">(</span>user_name_heap_ptr<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>byte_9138<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv7 <span class=\"token operator\">=</span> <span class=\"token number\">1618600811</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token operator\">!</span>v6 <span class=\"token punctuation\">)</span> v7 <span class=\"token operator\">=</span> <span class=\"token number\">712737466</span><span class=\"token punctuation\">;</span>\ni <span class=\"token operator\">=</span> v7<span class=\"token punctuation\">;</span></code></pre></div>\n<p>Jumping straight to the conclusion, it seems that the username check passes when the 10-byte sequence stored at the address <code class=\"language-text\">user_name_heap_ptr</code> matches the hard-coded <code class=\"language-text\">&amp;byte_9138</code>.</p>\n<p>So I looked at the <code class=\"language-text\">sub_5810</code> function, which appears to fill this memory region with some value.</p>\n<p>Below is the result of decompiling <code class=\"language-text\">sub_5810</code> with IDA.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\">Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span>__cdecl <span class=\"token function\">sub_5810</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a1<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a2<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a3<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a4<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a5<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">int</span> v5<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  <span class=\"token keyword\">int</span> v6<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  <span class=\"token keyword\">int</span> v7<span class=\"token punctuation\">;</span> <span class=\"token comment\">// esi</span>\n  Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span>result<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+1Ch] [ebp-230h]</span>\n  <span class=\"token keyword\">int</span> v10<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+20h] [ebp-22Ch]</span>\n  <span class=\"token keyword\">int</span> v11<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+24h] [ebp-228h]</span>\n  <span class=\"token keyword\">int</span> v12<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+30h] [ebp-21Ch]</span>\n  _BYTE v13<span class=\"token punctuation\">[</span><span class=\"token number\">512</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+38h] [ebp-214h] BYREF</span>\n  <span class=\"token keyword\">int</span> v14<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+238h] [ebp-14h]</span>\n\n  v11 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  v10 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  v12 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">=</span> <span class=\"token number\">1757399473</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">;</span> i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">901255010</span> <span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">368149380</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">1654659448</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">703941909</span> <span class=\"token punctuation\">)</span>\n            <span class=\"token punctuation\">{</span>\n              v7 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">417153812</span><span class=\"token punctuation\">;</span>\n              <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v10 <span class=\"token operator\">&lt;</span> a3 <span class=\"token punctuation\">)</span>\n                v7 <span class=\"token operator\">=</span> <span class=\"token number\">703941909</span><span class=\"token punctuation\">;</span>\n              i <span class=\"token operator\">=</span> v7<span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">836230828</span> <span class=\"token punctuation\">)</span>\n            <span class=\"token punctuation\">{</span>\n              v6 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1661826464</span><span class=\"token punctuation\">;</span>\n              <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v12 <span class=\"token operator\">&lt;</span> <span class=\"token number\">256</span> <span class=\"token punctuation\">)</span>\n                v6 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1347250435</span><span class=\"token punctuation\">;</span>\n              i <span class=\"token operator\">=</span> v6<span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token keyword\">else</span>\n            <span class=\"token punctuation\">{</span>\n              v12 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span>\n              v11 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> __int8<span class=\"token punctuation\">)</span>v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> v11<span class=\"token punctuation\">)</span> <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span>\n              <span class=\"token function\">sub_57D0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>v13<span class=\"token punctuation\">[</span>v11 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>_BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>a2 <span class=\"token operator\">+</span> v10<span class=\"token punctuation\">)</span> <span class=\"token operator\">=</span> v10 <span class=\"token operator\">^</span> v13<span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> __int8<span class=\"token punctuation\">)</span>v13<span class=\"token punctuation\">[</span>v11 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> __int8<span class=\"token punctuation\">)</span>v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">%</span> <span class=\"token number\">256</span>\n                                             <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>_BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>a1 <span class=\"token operator\">+</span> v10<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1903061274</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">1718231927</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            <span class=\"token operator\">++</span>v12<span class=\"token punctuation\">;</span>\n            i <span class=\"token operator\">=</span> <span class=\"token number\">836230828</span><span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">1757399473</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            v5 <span class=\"token operator\">=</span> <span class=\"token number\">1718231927</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v12 <span class=\"token operator\">&lt;</span> <span class=\"token number\">256</span> <span class=\"token punctuation\">)</span>\n              v5 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">567528547</span><span class=\"token punctuation\">;</span>\n            i <span class=\"token operator\">=</span> v5<span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token keyword\">else</span>\n          <span class=\"token punctuation\">{</span>\n            v12 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n            i <span class=\"token operator\">=</span> <span class=\"token number\">836230828</span><span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">901255010</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token operator\">-</span><span class=\"token number\">1661826464</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token operator\">++</span>v10<span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">368149380</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token operator\">-</span><span class=\"token number\">1347250435</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          v11 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n          v12 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n          v10 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">368149380</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span>\n        <span class=\"token punctuation\">{</span>\n          v11 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> __int8<span class=\"token punctuation\">)</span>v13<span class=\"token punctuation\">[</span>v12<span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">unsigned</span> __int8<span class=\"token punctuation\">)</span>v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> v11<span class=\"token punctuation\">)</span> <span class=\"token operator\">%</span> <span class=\"token number\">256</span><span class=\"token punctuation\">;</span>\n          <span class=\"token function\">sub_57D0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>v13<span class=\"token punctuation\">[</span>v11 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> <span class=\"token number\">1654659448</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">567528547</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n      <span class=\"token operator\">++</span>v12<span class=\"token punctuation\">;</span>\n      i <span class=\"token operator\">=</span> <span class=\"token number\">1757399473</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">417153812</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    v13<span class=\"token punctuation\">[</span>v12 <span class=\"token operator\">+</span> <span class=\"token number\">256</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> v12<span class=\"token punctuation\">;</span>\n    v13<span class=\"token punctuation\">[</span>v12<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">(</span>_BYTE <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span>a4 <span class=\"token operator\">+</span> v12 <span class=\"token operator\">%</span> a5<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  result <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>off_8FBC<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> _stack_chk_guard <span class=\"token operator\">!=</span> v14 <span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">sub_5CB0</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>I got stuck here when I was actually working on the challenge, but apparently this function is implementing RC4 encryption.</p>\n<p>Sure, if someone says the XOR behavior looks like RC4, I can kind of see it. But honestly, at my current skill level, recognizing this function as RC4 would have been quite difficult.</p>\n<p>So I looked for a way to solve it even without recognizing it as RC4.</p>\n<p>When I fed the function above into BingAI, it did not recognize it as RC4 either, but it came surprisingly close and said it was a function that performs encryption using a key generated by a pseudo-random generator.</p>\n<p>If it is encryption using a key generated by a pseudo-random generator, then it may be a symmetric cipher that uses the same key and logic for both encryption and decryption.</p>\n<p>In other words, if I feed the hard-coded ciphertext <code class=\"language-text\">&amp;byte_9138</code> into the mysterious <code class=\"language-text\">sub_5810</code> instead of the input string, the output may become the plaintext of the correct input value.</p>\n<p>Being able to infer whether an encryption routine is a symmetric cipher seems like a useful reversing technique.</p>\n<p>I still could not figure out how to bypass Frida detection even after reading the writeup, so I simply used <code class=\"language-text\">lldb</code> on the Android emulator.</p>\n<p>It is a bit annoying that the image base changes every time the app starts, but this approach did not require any troublesome bypasses.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">image list\n<span class=\"token operator\">></span>\n<span class=\"token punctuation\">[</span><span class=\"token number\">272</span><span class=\"token punctuation\">]</span> 4E68710A-7885-E1FA-9BEB-555E9FB7D0ED-B7357321 0xc2299000 C:<span class=\"token punctuation\">\\</span>Users<span class=\"token punctuation\">\\</span>kash1064<span class=\"token punctuation\">\\</span>.lldb<span class=\"token punctuation\">\\</span>module_cache<span class=\"token punctuation\">\\</span>remote-android<span class=\"token punctuation\">\\</span>.cache<span class=\"token punctuation\">\\</span>4E68710A-7885-E1FA-9BEB-555E9FB7D0ED-B7357321<span class=\"token punctuation\">\\</span>libezandroid.so \n\n<span class=\"token comment\"># 0xc2299000 + 0x2bcf</span>\nb *0xc229bbcf\n\n<span class=\"token comment\"># 0xc2299000+0x9138 = bss_start</span>\nmemory <span class=\"token builtin class-name\">read</span> --size <span class=\"token number\">8</span> --format x --count <span class=\"token number\">1</span> 0xc2299000+0x9138\n\n<span class=\"token comment\"># esp = 0xffb357a0</span>\nmemory <span class=\"token builtin class-name\">read</span> --size <span class=\"token number\">4</span> --format x --count <span class=\"token number\">4</span> esp\nmemory <span class=\"token function\">write</span> 0xbd1d7b70 -s <span class=\"token number\">8</span> 0xc1bdeb7ee66497e9\nmemory <span class=\"token function\">write</span> 0xbd1d7b70+0x8 -s <span class=\"token number\">2</span> 0x43ab</code></pre></div>\n<p>With the commands above, I set a breakpoint at the call site of <code class=\"language-text\">sub_5810</code>, then extracted all four arguments from the stack.</p>\n<p>The first argument contains the input value, so I replaced the memory at that address with the value of <code class=\"language-text\">&amp;byte_9138</code>.</p>\n<p>Finally, after stepping to the next line and checking the address where the post-encryption byte sequence was stored, I was able to obtain the plaintext of the correct username.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 651px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/d1d6f864a3a15619ca43b826ce80e3e5/1ac66/image-20230824215627455.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: 28.333333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA5klEQVQY02VRW3KEMAzjOBQISwDnRWC3vf+dVMtZOtP2QyPHdhRp0rkw46gXQojKJ0S5HBX7LqjnE7kcCDHaTkwZ9Xopnth0PgwfGMfxF7oleiQunhden1/Ytg3eexXc4ZcF67rqY8GYYN+5CX3fq+DwD10+MnIuiOqCTniZl4IIRIJC2ln7bSaWhr1FH7xBI9M0oZMsFivlbExhLhNcEhNu51vc3GuKeZ5NZFQ451pkKaKRC4qKUfBeptgNRv1b//Te7le9Yw6rfkROCfvbTdKaLlNq8e+6MWfJmK75sFdh8uPR3H4DZbzAdQ1+PVcAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/d1d6f864a3a15619ca43b826ce80e3e5/8ac56/image-20230824215627455.webp 240w,\n/static/d1d6f864a3a15619ca43b826ce80e3e5/d3be9/image-20230824215627455.webp 480w,\n/static/d1d6f864a3a15619ca43b826ce80e3e5/be1d0/image-20230824215627455.webp 651w\"\n              sizes=\"(max-width: 651px) 100vw, 651px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/d1d6f864a3a15619ca43b826ce80e3e5/8ff5a/image-20230824215627455.png 240w,\n/static/d1d6f864a3a15619ca43b826ce80e3e5/e85cb/image-20230824215627455.png 480w,\n/static/d1d6f864a3a15619ca43b826ce80e3e5/1ac66/image-20230824215627455.png 651w\"\n            sizes=\"(max-width: 651px) 100vw, 651px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/d1d6f864a3a15619ca43b826ce80e3e5/1ac66/image-20230824215627455.png\"\n            alt=\"image-20230824215627455\"\n            title=\"image-20230824215627455\"\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>With this, I determined that the username is <code class=\"language-text\">Re_1s_eaSy</code>.</p>\n<h3 id=\"analyzing-check2\" style=\"position:relative;\"><a href=\"#analyzing-check2\" aria-label=\"analyzing check2 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>Analyzing check2</h3>\n<p>Now that I had identified the username, I next looked at <code class=\"language-text\">check2</code>, the function that verifies the password.</p>\n<p>Again, IDA’s decompiled output was easier to read, so I include it below.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token keyword\">int</span> __cdecl <span class=\"token function\">sub_2D20</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a1<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a2<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a3<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">int</span> v3<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v4<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v5<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  <span class=\"token keyword\">int</span> v6<span class=\"token punctuation\">;</span> <span class=\"token comment\">// ebx</span>\n  <span class=\"token keyword\">int</span> v8<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+24h] [ebp-68h]</span>\n  <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+40h] [ebp-4Ch]</span>\n  __m128i <span class=\"token operator\">*</span>v10<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+44h] [ebp-48h]</span>\n  <span class=\"token keyword\">int</span> v11<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+48h] [ebp-44h]</span>\n  <span class=\"token keyword\">int</span> v12<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+58h] [ebp-34h]</span>\n  <span class=\"token keyword\">int</span> v13<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+74h] [ebp-18h]</span>\n  <span class=\"token keyword\">int</span> v14<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+78h] [ebp-14h]</span>\n\n  <span class=\"token function\">sub_4D40</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>unk_9238<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>unk_6650 <span class=\"token operator\">+</span> <span class=\"token number\">79</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v8 <span class=\"token operator\">=</span> <span class=\"token function\">sub_30F0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>unk_9238<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">sub_4EC0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC<span class=\"token punctuation\">)</span><span class=\"token punctuation\">[</span><span class=\"token number\">21</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">-</span> <span class=\"token number\">2612</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">sub_5040</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>unk_9268<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token operator\">&amp;</span>unk_6650 <span class=\"token operator\">+</span> <span class=\"token number\">195</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v3 <span class=\"token operator\">=</span> <span class=\"token function\">sub_3140</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> v8<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>unk_9260<span class=\"token punctuation\">,</span> <span class=\"token operator\">&amp;</span>unk_9268<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v4 <span class=\"token operator\">=</span> <span class=\"token function\">sub_31D0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> v8<span class=\"token punctuation\">,</span> v3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v11 <span class=\"token operator\">=</span> <span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> v4<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v10 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>__m128i <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v13 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v10<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">=</span> <span class=\"token number\">1959410021</span><span class=\"token punctuation\">;</span> <span class=\"token punctuation\">;</span> i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">19509138</span> <span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">74238448</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">746085184</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          v12 <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">19509138</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">1959410021</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          v5 <span class=\"token operator\">=</span> <span class=\"token number\">746085184</span><span class=\"token punctuation\">;</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v13 <span class=\"token operator\">!=</span> <span class=\"token number\">16</span> <span class=\"token punctuation\">)</span>\n            v5 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">23033666</span><span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> v5<span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token function\">sub_7B0</span><span class=\"token punctuation\">(</span>v10<span class=\"token punctuation\">,</span> <span class=\"token number\">16</span><span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n          v6 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1371855156</span><span class=\"token punctuation\">;</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token function\">_mm_movemask_epi8</span><span class=\"token punctuation\">(</span><span class=\"token function\">_mm_cmpeq_epi8</span><span class=\"token punctuation\">(</span>byte_9158<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>v10<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0xFFFF</span> <span class=\"token punctuation\">)</span>\n            v6 <span class=\"token operator\">=</span> <span class=\"token number\">74238448</span><span class=\"token punctuation\">;</span>\n          i <span class=\"token operator\">=</span> v6<span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">23033666</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n      v12 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n      i <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">19509138</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">19509138</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    v12 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">*</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>off_8FBC <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token operator\">-></span>d_tag <span class=\"token operator\">==</span> v14 <span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> v12<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">else</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">sub_30F0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>The first lines that stand out are the following.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\">v10 <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>__m128i <span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">sub_2CA0</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv13 <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>v10<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>When I set a breakpoint here and inspected memory, <code class=\"language-text\">v10</code> contained the password string I had entered, and <code class=\"language-text\">v13</code> contained its length.</p>\n<p>And just like the username verification, the value of <code class=\"language-text\">i</code> at the start of the following loop is fixed at <code class=\"language-text\">1959410021</code>, so we know the first iteration will always execute the following processing.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">1959410021</span> <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n  v5 <span class=\"token operator\">=</span> <span class=\"token number\">746085184</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v13 <span class=\"token operator\">!=</span> <span class=\"token number\">16</span> <span class=\"token punctuation\">)</span> v5 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">23033666</span><span class=\"token punctuation\">;</span>\n  i <span class=\"token operator\">=</span> v5<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>In other words, I was able to determine that the correct password length is 16 characters.</p>\n<p>The next point to pay attention to is probably the following part.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token function\">sub_7B0</span><span class=\"token punctuation\">(</span>password<span class=\"token punctuation\">,</span> <span class=\"token number\">16</span><span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nv6 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1371855156</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> <span class=\"token function\">_mm_movemask_epi8</span><span class=\"token punctuation\">(</span><span class=\"token function\">_mm_cmpeq_epi8</span><span class=\"token punctuation\">(</span>byte_9158<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">*</span>password<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token number\">0xFFFF</span> <span class=\"token punctuation\">)</span> v6 <span class=\"token operator\">=</span> <span class=\"token number\">74238448</span><span class=\"token punctuation\">;</span>\ni <span class=\"token operator\">=</span> v6<span class=\"token punctuation\">;</span></code></pre></div>\n<p><code class=\"language-text\">_mm_movemask_epi8(_mm_cmpeq_epi8(byte_9158[0], *password)</code> appears to compare the address of the input password string with the hard-coded byte sequence <code class=\"language-text\">byte_9158</code>.</p>\n<p>In other words, just like before, we can infer that this is checking whether the password transformed somehow by <code class=\"language-text\">sub_7B0</code> matches the hard-coded value.</p>\n<p>To test it, I entered a 16-character string as the password and set a breakpoint at the call site of <code class=\"language-text\">sub_7B0</code>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 694px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/09a89fd7c100d042ef93405512b0e43b/31198/image-20230824225645435.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: 39.166666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVQoz11SWbKEMAj0PGr21STOc+rN/a/EQBSX+ehqgtBpgoNwEmLM4LwH6xz4EHtMHFMGYyyEmDAXIOUFIkIIAeM4PjBNU+fBVw/ra4P3/we27d3FlmWBlBJehKJx5xBCzymtT4ETN9EhYhEVexRy6JBgrb1iYj4j87d09FG/Uuom2BKs6wv+0F2trQtT4Y4r9n5nmsAY00WklJ2FmC/BlNM+3jEiCbLobxyOsz2d+t6jlLwEQ41QSoOGLkup52g8MoGfg5ndMeb55jCXjEsouMEMGcEj8iJIhJ0/Xfs+WWvt+YYat6aPG7VW/X0ox/wLaqZ6ciWlQnF3/kYk+AXX0/4bpr2cigAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/09a89fd7c100d042ef93405512b0e43b/8ac56/image-20230824225645435.webp 240w,\n/static/09a89fd7c100d042ef93405512b0e43b/d3be9/image-20230824225645435.webp 480w,\n/static/09a89fd7c100d042ef93405512b0e43b/181fb/image-20230824225645435.webp 694w\"\n              sizes=\"(max-width: 694px) 100vw, 694px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/09a89fd7c100d042ef93405512b0e43b/8ff5a/image-20230824225645435.png 240w,\n/static/09a89fd7c100d042ef93405512b0e43b/e85cb/image-20230824225645435.png 480w,\n/static/09a89fd7c100d042ef93405512b0e43b/31198/image-20230824225645435.png 694w\"\n            sizes=\"(max-width: 694px) 100vw, 694px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/09a89fd7c100d042ef93405512b0e43b/31198/image-20230824225645435.png\"\n            alt=\"image-20230824225645435\"\n            title=\"image-20230824225645435\"\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>When I inspected the stack at the call site, I found that the third argument, <code class=\"language-text\">v11</code>, was the correct username with the string <code class=\"language-text\">123456</code> appended.</p>\n<p>Since the password string and its length are both involved, maybe it is doing some kind of XOR or similar processing.</p>\n<p>I let the <code class=\"language-text\">sub_7B0</code> function execute once, and the value in the memory region where the password had been stored changed into what looked like an encrypted byte sequence.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 646px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3cd3fb65876544ce612f919e0182cf10/27524/image-20230824225939774.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: 13.750000000000002%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAd0lEQVQI14WPWQ7DMAhEfZ3WK5DWu3L/U01jqiTqVz9GMzwBAvOQJ17vjNoGWp8gYlhr4Zz7q7PPe39lM/cdc07kUjDGQM4ZrTVVOVit9cq9d61XXoyZVbJtCCFARGCYRWGMESkldSK6xV9PiX74mllL9Nrzo8M/yl9e2Aty850AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/3cd3fb65876544ce612f919e0182cf10/8ac56/image-20230824225939774.webp 240w,\n/static/3cd3fb65876544ce612f919e0182cf10/d3be9/image-20230824225939774.webp 480w,\n/static/3cd3fb65876544ce612f919e0182cf10/8c2f2/image-20230824225939774.webp 646w\"\n              sizes=\"(max-width: 646px) 100vw, 646px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/3cd3fb65876544ce612f919e0182cf10/8ff5a/image-20230824225939774.png 240w,\n/static/3cd3fb65876544ce612f919e0182cf10/e85cb/image-20230824225939774.png 480w,\n/static/3cd3fb65876544ce612f919e0182cf10/27524/image-20230824225939774.png 646w\"\n            sizes=\"(max-width: 646px) 100vw, 646px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/3cd3fb65876544ce612f919e0182cf10/27524/image-20230824225939774.png\"\n            alt=\"image-20230824225939774\"\n            title=\"image-20230824225939774\"\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>If I can identify an input value that makes this value match the hard-coded byte sequence <code class=\"language-text\">byte_9158</code>, it looks like I should be able to recover the correct password.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/74af303327fe137418ccb257279aa70e/f058b/image-20230824230105773.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: 12.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAeUlEQVQI122PSQ7DMAwD/R5viBvLWor0/79iLafOqYcBRQqgoNBeJ1hsohB9o5SClBJyzg/u/7F3McbHh+v6QFXBzDCzhXtHZiYi85As1ak8dYyxMFO01lBrxXEc6EQIXtT7CeoEohvP9uyM4fAqIRq//C71Mv9q8wXIiV+ELvhlJQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/74af303327fe137418ccb257279aa70e/8ac56/image-20230824230105773.webp 240w,\n/static/74af303327fe137418ccb257279aa70e/d3be9/image-20230824230105773.webp 480w,\n/static/74af303327fe137418ccb257279aa70e/8aab1/image-20230824230105773.webp 630w\"\n              sizes=\"(max-width: 630px) 100vw, 630px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/74af303327fe137418ccb257279aa70e/8ff5a/image-20230824230105773.png 240w,\n/static/74af303327fe137418ccb257279aa70e/e85cb/image-20230824230105773.png 480w,\n/static/74af303327fe137418ccb257279aa70e/f058b/image-20230824230105773.png 630w\"\n            sizes=\"(max-width: 630px) 100vw, 630px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/74af303327fe137418ccb257279aa70e/f058b/image-20230824230105773.png\"\n            alt=\"image-20230824230105773\"\n            title=\"image-20230824230105773\"\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 decompiled result of <code class=\"language-text\">sub_7B0</code> is shown below.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\">Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span>__cdecl <span class=\"token function\">sub_7B0</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> a1<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a2<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> a3<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">int</span> v3<span class=\"token punctuation\">;</span> <span class=\"token comment\">// esi</span>\n  <span class=\"token keyword\">int</span> v4<span class=\"token punctuation\">;</span> <span class=\"token comment\">// edx</span>\n  Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span>result<span class=\"token punctuation\">;</span> <span class=\"token comment\">// eax</span>\n  <span class=\"token keyword\">int</span> v6<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+30h] [ebp-7Ch]</span>\n  <span class=\"token keyword\">int</span> v7<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+34h] [ebp-78h]</span>\n  <span class=\"token keyword\">int</span> v8<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+38h] [ebp-74h]</span>\n  <span class=\"token keyword\">int</span> v9<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+50h] [ebp-5Ch] BYREF</span>\n  <span class=\"token keyword\">int</span> v10<span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+54h] [ebp-58h]</span>\n  _DWORD v11<span class=\"token punctuation\">[</span><span class=\"token number\">21</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [esp+58h] [ebp-54h] BYREF</span>\n\n  v10 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">970393338</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>a3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v9 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1522528529</span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">sub_C40</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> a3<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  v8 <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  v6 <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1028578145</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">do</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n    <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> <span class=\"token number\">1</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">304130802</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">&lt;</span> <span class=\"token number\">703599849</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">&lt;</span> <span class=\"token number\">90447858</span> <span class=\"token punctuation\">)</span>\n            <span class=\"token punctuation\">{</span>\n              <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">304130802</span> <span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">{</span>\n                v4 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">-</span> <span class=\"token number\">1292562961</span><span class=\"token punctuation\">;</span>\n                <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v7 <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span> <span class=\"token punctuation\">)</span>\n                  v4 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">1060841196</span><span class=\"token punctuation\">;</span>\n                v6 <span class=\"token operator\">=</span> v4<span class=\"token punctuation\">;</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token punctuation\">}</span>\n            <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token number\">90447858</span> <span class=\"token punctuation\">)</span>\n            <span class=\"token punctuation\">{</span>\n              v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">1871195796</span><span class=\"token punctuation\">;</span>\n              <span class=\"token function\">sub_15A0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">41419369</span><span class=\"token punctuation\">;</span>\n              <span class=\"token function\">sub_1840</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">475928445</span><span class=\"token punctuation\">;</span>\n              <span class=\"token function\">sub_1B90</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">-</span> <span class=\"token number\">878836549</span><span class=\"token punctuation\">;</span>\n              <span class=\"token function\">sub_12E0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">,</span> v7<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n              v6 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">154390384</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">&lt;</span> <span class=\"token number\">2032010997</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token number\">703599849</span> <span class=\"token punctuation\">)</span>\n            <span class=\"token punctuation\">{</span>\n              v8 <span class=\"token operator\">+=</span> <span class=\"token number\">16</span><span class=\"token punctuation\">;</span>\n              v6 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">-</span> <span class=\"token number\">58184807</span><span class=\"token punctuation\">;</span>\n            <span class=\"token punctuation\">}</span>\n          <span class=\"token punctuation\">}</span>\n          <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token number\">2032010997</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">1871195796</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">sub_15A0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">41419369</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">sub_1840</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">-</span> <span class=\"token number\">878836549</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">sub_12E0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">1852563524</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">sub_2140</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">,</span> v8 <span class=\"token operator\">+</span> a1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            v6 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">1673993187</span><span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">>=</span> <span class=\"token operator\">-</span><span class=\"token number\">582053114</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">&lt;</span> <span class=\"token operator\">-</span><span class=\"token number\">816002954</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1028578145</span> <span class=\"token punctuation\">)</span>\n          <span class=\"token punctuation\">{</span>\n            v3 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">388340224</span><span class=\"token punctuation\">;</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v8 <span class=\"token operator\">&lt;</span> a2 <span class=\"token punctuation\">)</span>\n              v3 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">643763145</span><span class=\"token punctuation\">;</span>\n            v6 <span class=\"token operator\">=</span> v3<span class=\"token punctuation\">;</span>\n          <span class=\"token punctuation\">}</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">816002954</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">{</span>\n          <span class=\"token operator\">++</span>v7<span class=\"token punctuation\">;</span>\n          v6 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">666262536</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n      <span class=\"token punctuation\">}</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">&lt;</span> <span class=\"token operator\">-</span><span class=\"token number\">326630193</span> <span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">326630193</span> <span class=\"token punctuation\">)</span>\n      <span class=\"token punctuation\">{</span>\n        v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">478257682</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">sub_1030</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v8 <span class=\"token operator\">+</span> a1<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        v9 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">-</span> <span class=\"token number\">878836549</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">sub_12E0</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&amp;</span>v9<span class=\"token punctuation\">,</span> v11<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        v7 <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n        v6 <span class=\"token operator\">=</span> v10 <span class=\"token operator\">+</span> <span class=\"token number\">666262536</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span>\n  <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span> v6 <span class=\"token operator\">!=</span> <span class=\"token operator\">-</span><span class=\"token number\">582053114</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  result <span class=\"token operator\">=</span> <span class=\"token operator\">&amp;</span>off_8FBC<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span> _stack_chk_guard <span class=\"token operator\">!=</span> v11<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span> <span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>Elf32_Dyn <span class=\"token operator\">*</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token function\">sub_C40</span><span class=\"token punctuation\">(</span>a1<span class=\"token punctuation\">,</span> a2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>As usual, I still had no idea what was going on here at my current skill level.</p>\n<p>However, after using <a href=\"https://github.com/TorgoTorgo/ghidra-findcrypt\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ghidra-findcrypt</a> for labeling, I confirmed that data that appears to be an AES S-box is defined as shown below.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 836px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/ab414a9addd4d0e16ed3e243486ef151/27b8e/image-20230824233754518.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: 48.75000000000001%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABnUlEQVQoz5WS227bMAyG/f5P0SfYXW8H5LrDhgVFlm5dbMc6+ZRkiV1bkuV/pFwXHbCLzQBBmSI/8qedPHx6wn6f4XAocDwKSCmx2+0wDANG66DOHuY6Q/8K0avzhLxyECcfz+I0vd2xT+7uNri/3+LzlwxpKpDmGb5utxhX4GUBmmuIpi8TUjPipxoW0yMkgd+AMn/AS3/D+0cIib7vCegpmSahRB0NZHM0cwWqbrEVxvFEqic8Zy2KskN7GzG4gKIoInAYHeTJIit7fEsb/BADNZhJssU+u5B/QU51vJbytqhInvMtPmwe8fHRYLOvcKh7aCXRdR2897DOYSSwUgZ10yLMMxzFq6pGWdbQ2tC+LWZSFkKc8Duu59Mfko/HZUIGOgYOtCehUBHA+wmeYkoqGFNSc00N7VJIzZIVwvQphHheJb8HikLC6JJgPsaF4D9CE1jThOMr7xUYCMQvbH8DWmvjNCyTJ5ymiaatYqymGN//J9DRvio0dRuBnN/SPrkBe77/d6B3cUcsjT+AI8mc39RNbGAotu6Q638Dl5P7elAAsJIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/ab414a9addd4d0e16ed3e243486ef151/8ac56/image-20230824233754518.webp 240w,\n/static/ab414a9addd4d0e16ed3e243486ef151/d3be9/image-20230824233754518.webp 480w,\n/static/ab414a9addd4d0e16ed3e243486ef151/05152/image-20230824233754518.webp 836w\"\n              sizes=\"(max-width: 836px) 100vw, 836px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/ab414a9addd4d0e16ed3e243486ef151/8ff5a/image-20230824233754518.png 240w,\n/static/ab414a9addd4d0e16ed3e243486ef151/e85cb/image-20230824233754518.png 480w,\n/static/ab414a9addd4d0e16ed3e243486ef151/27b8e/image-20230824233754518.png 836w\"\n            sizes=\"(max-width: 836px) 100vw, 836px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/ab414a9addd4d0e16ed3e243486ef151/27b8e/image-20230824233754518.png\"\n            alt=\"image-20230824233754518\"\n            title=\"image-20230824233754518\"\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>However, this S-box seems to get swapped somewhere in the processing, so it cannot be used as-is.</p>\n<p>If you dump the S-box memory region after <code class=\"language-text\">sub_7B0</code> has been called, you can obtain an S-box that can be used for decryption, as shown below.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token punctuation\">(</span>lldb<span class=\"token punctuation\">)</span> memory <span class=\"token builtin class-name\">read</span> --size <span class=\"token number\">1</span> --format x --count <span class=\"token number\">256</span> 0xc1ffc000\n<span class=\"token operator\">></span>\n0xc1ffc000: 0x29 0x40 0x57 0x6e 0x85 0x9c 0xb3 0xca\n0xc1ffc008: 0xe1 0xf8 0x0f 0x26 0x3d 0x54 0x6b 0x82\n0xc1ffc010: 0x99 0xb0 0xc7 0xde 0xf5 0x0c 0x23 0x3a\n0xc1ffc018: 0x51 0x68 0x7f 0x96 0xad 0xc4 0xdb 0xf2\n0xc1ffc020: 0x09 0x20 0x37 0x4e 0x65 0x7c 0x93 0xaa\n0xc1ffc028: 0xc1 0xd8 0xef 0x06 0x1d 0x34 0x4b 0x62\n0xc1ffc030: 0x79 0x90 0xa7 0xbe 0xd5 0xec 0x03 0x1a\n0xc1ffc038: 0x31 0x48 0x5f 0x76 0x8d 0xa4 0xbb 0xd2\n0xc1ffc040: 0xe9 0x00 0x17 0x2e 0x45 0x5c 0x73 0x8a\n0xc1ffc048: 0xa1 0xb8 0xcf 0xe6 0xfd 0x14 0x2b 0x42\n0xc1ffc050: 0x59 0x70 0x87 0x9e 0xb5 0xcc 0xe3 0xfa\n0xc1ffc058: 0x11 0x28 0x3f 0x56 0x6d 0x84 0x9b 0xb2\n0xc1ffc060: 0xc9 0xe0 0xf7 0x0e 0x25 0x3c 0x53 0x6a\n0xc1ffc068: 0x81 0x98 0xaf 0xc6 0xdd 0xf4 0x0b 0x22\n0xc1ffc070: 0x39 0x50 0x67 0x7e 0x95 0xac 0xc3 0xda\n0xc1ffc078: 0xf1 0x08 0x1f 0x36 0x4d 0x64 0x7b 0x92\n0xc1ffc080: 0xa9 0xc0 0xd7 0xee 0x05 0x1c 0x33 0x4a\n0xc1ffc088: 0x61 0x78 0x8f 0xa6 0xbd 0xd4 0xeb 0x02\n0xc1ffc090: 0x19 0x30 0x47 0x5e 0x75 0x8c 0xa3 0xba\n0xc1ffc098: 0xd1 0xe8 0xff 0x16 0x2d 0x44 0x5b 0x72\n0xc1ffc0a0: 0x89 0xa0 0xb7 0xce 0xe5 0xfc 0x13 0x2a\n0xc1ffc0a8: 0x41 0x58 0x6f 0x86 0x9d 0xb4 0xcb 0xe2\n0xc1ffc0b0: 0xf9 0x10 0x27 0x3e 0x55 0x6c 0x83 0x9a\n0xc1ffc0b8: 0xb1 0xc8 0xdf 0xf6 0x0d 0x24 0x3b 0x52\n0xc1ffc0c0: 0x69 0x80 0x97 0xae 0xc5 0xdc 0xf3 0x0a\n0xc1ffc0c8: 0x21 0x38 0x4f 0x66 0x7d 0x94 0xab 0xc2\n0xc1ffc0d0: 0xd9 0xf0 0x07 0x1e 0x35 0x4c 0x63 0x7a\n0xc1ffc0d8: 0x91 0xa8 0xbf 0xd6 0xed 0x04 0x1b 0x32\n0xc1ffc0e0: 0x49 0x60 0x77 0x8e 0xa5 0xbc 0xd3 0xea\n0xc1ffc0e8: 0x01 0x18 0x2f 0x46 0x5d 0x74 0x8b 0xa2\n0xc1ffc0f0: 0xb9 0xd0 0xe7 0xfe 0x15 0x2c 0x43 0x5a\n0xc1ffc0f8: 0x71 0x88 0x9f 0xb6 0xcd 0xe4 0xfb 0x12</code></pre></div>\n<p>Next, the following Python script stores each S-box index into an array that uses the high and low nibbles of each S-box value as the index.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">new_s_box <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token number\">0x29</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x40</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x57</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x6E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x85</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCA</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF8</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x0F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x26</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x3D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x54</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x6B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x82</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x99</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xDE</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xF5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x0C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x3A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x51</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x68</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x96</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC4</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xDB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x09</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x20</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x37</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x65</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x93</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAA</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xC1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xEF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x34</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x62</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x79</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x90</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xA7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xBE</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xEC</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x03</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x31</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x48</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x76</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x8D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xBB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x17</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x45</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5C</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x73</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x14</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x42</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x59</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x70</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x87</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCC</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFA</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x11</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x28</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x3F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x56</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x6D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x84</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x0E</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x25</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x3C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x53</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x6A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x81</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x98</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xDD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF4</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x0B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x22</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x39</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x50</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x67</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x95</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAC</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xDA</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xF1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x08</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x36</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x64</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x92</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC0</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xD7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xEE</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x05</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x33</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x61</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x78</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA6</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xBD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xEB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x02</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x19</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x30</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x75</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8C</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xA3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xBA</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x16</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x44</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x72</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x89</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCE</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFC</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x13</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x41</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x58</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x6F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x86</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x10</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x27</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x3E</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x55</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x6C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x83</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xDF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x0D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x24</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x3B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x52</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x69</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x80</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x97</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAE</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xDC</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x0A</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x21</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x38</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x66</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x94</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xAB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xF0</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x07</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x35</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x4C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x63</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x7A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x91</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xBF</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD6</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xED</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x04</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x1B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x32</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x49</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x60</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x77</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8E</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xBC</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xD3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xEA</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x01</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x18</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x46</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5D</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x74</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA2</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xB9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFE</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x15</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x43</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x71</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x88</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x9F</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xB6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xE4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xFB</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x12</span>\n<span class=\"token punctuation\">]</span>\nnew_contrary_sbox <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">*</span> <span class=\"token number\">256</span>\n\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">256</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    line <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>new_s_box<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xf0</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">>></span> <span class=\"token number\">4</span>\n    rol <span class=\"token operator\">=</span> new_s_box<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">&amp;</span> <span class=\"token number\">0xf</span>\n    new_contrary_sbox<span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span>line <span class=\"token operator\">*</span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> rol<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> i\n\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>new_contrary_sbox<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">%</span> <span class=\"token number\">16</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">'\\n'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"0x%02X\"</span><span class=\"token operator\">%</span>new_contrary_sbox<span class=\"token punctuation\">[</span>i<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></code></pre></div>\n<p>To be honest, I still do not understand at all what the <code class=\"language-text\">S2</code> array generated by the above process is used for, but I assume it is a standard AES decryption pattern, so I will study it properly another day.</p>\n<p>Using this S-box, the <code class=\"language-text\">username + 123456</code> string passed as the key, and the hard-coded encrypted byte sequence, I ran the following solver.</p>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdio.h></span></span>\n<span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;stdlib.h></span></span>\n<span class=\"token macro property\"><span class=\"token directive-hash\">#</span><span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;string.h></span></span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">int</span> S<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> \n<span class=\"token number\">0x29</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x40</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x57</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x85</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xca</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xe1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x26</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x54</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x82</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x99</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xde</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x23</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x51</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x68</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x96</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xad</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xdb</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x09</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x20</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x37</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x65</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x93</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xaa</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xc1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xef</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x34</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x62</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x79</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x90</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xbe</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xec</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x03</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x31</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x48</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x76</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xbb</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xe9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x17</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x45</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x73</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xa1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xcf</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xfd</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x14</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x42</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x59</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x70</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x87</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xcc</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xfa</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x11</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x28</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x56</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x84</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xc9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x25</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x53</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x81</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x98</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xaf</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xdd</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x22</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x39</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x50</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x67</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x95</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xac</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xda</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xf1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x08</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x36</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x64</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x92</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xa9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xee</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x05</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x33</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x61</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x78</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xbd</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xeb</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x02</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x19</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x30</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x75</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xba</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xd1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xff</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x16</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x44</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x72</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x89</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xce</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xfc</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x13</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x41</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x58</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x86</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xcb</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xf9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x10</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x27</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x83</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xb1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xdf</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x24</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x52</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x69</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x80</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x97</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xae</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xdc</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x21</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x38</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x66</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x94</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xab</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xc2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xd9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xf0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x07</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x35</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x63</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x91</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xbf</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xed</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x04</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x32</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x49</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x60</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x77</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8e</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xbc</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xea</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x01</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x18</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x46</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5d</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x74</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8b</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xa2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xb9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xd0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xfe</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x15</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2c</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x43</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5a</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x71</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x88</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9f</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xb6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xcd</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xe4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xfb</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x12</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">int</span> S2<span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">16</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n<span class=\"token number\">0x41</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x36</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDD</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x84</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x79</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x20</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x15</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x63</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xB1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x58</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x42</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xE9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x90</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x37</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x85</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x21</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x16</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBD</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x64</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x59</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x00</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x43</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xEA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x91</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x38</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x86</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x22</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xC9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x70</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x17</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x65</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x01</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x44</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xEB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x92</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x39</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x87</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x23</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x71</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x18</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x66</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x02</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xA9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x50</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x45</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xEC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x93</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xE1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x88</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x24</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x72</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x19</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x67</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x03</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x51</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x46</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xED</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x94</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x89</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x30</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x25</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x73</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xC1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x68</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x0F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x04</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x52</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xF9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x47</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xEE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x95</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x31</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x7F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x26</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCD</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x74</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x69</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x10</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x05</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x53</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xA1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x48</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xEF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x96</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x32</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xD9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x80</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x27</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x75</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x11</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB8</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x5F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x06</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAD</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x54</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x49</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x97</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x33</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x81</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x28</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xCF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x76</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x12</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xB9</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x60</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x07</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x55</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xF1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x98</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x3F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x34</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x82</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x29</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xD0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x77</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x13</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBA</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x61</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x08</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xAF</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x56</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFD</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA4</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4B</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF2</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x99</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x40</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xE7</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x8E</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x35</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xDC</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x83</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x2A</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0xD1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x78</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x1F</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xC6</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x6D</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x14</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xBB</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x62</span><span class=\"token punctuation\">,</span>\n<span class=\"token number\">0x09</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xB0</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x57</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xFE</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xA5</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x4C</span><span class=\"token punctuation\">,</span><span class=\"token number\">0xF3</span><span class=\"token punctuation\">,</span><span class=\"token number\">0x9A</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getLeft4Bit</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> num<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> left <span class=\"token operator\">=</span> num <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000f0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> left <span class=\"token operator\">>></span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getRight4Bit</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> num<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> num <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x0000000f</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getNumFromSBox</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> row <span class=\"token operator\">=</span> <span class=\"token function\">getLeft4Bit</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> col <span class=\"token operator\">=</span> <span class=\"token function\">getRight4Bit</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> S<span class=\"token punctuation\">[</span>row<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>col<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span> c<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> result <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">)</span>c<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> result <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">convertToIntArray</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> pa<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> k <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            pa<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            k<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getWordFromStr</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> one<span class=\"token punctuation\">,</span> two<span class=\"token punctuation\">,</span> three<span class=\"token punctuation\">,</span> four<span class=\"token punctuation\">;</span>\n    one <span class=\"token operator\">=</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    one <span class=\"token operator\">=</span> one <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">24</span><span class=\"token punctuation\">;</span>\n    two <span class=\"token operator\">=</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    two <span class=\"token operator\">=</span> two <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">16</span><span class=\"token punctuation\">;</span>\n    three <span class=\"token operator\">=</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    three <span class=\"token operator\">=</span> three <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">;</span>\n    four <span class=\"token operator\">=</span> <span class=\"token function\">getIntFromChar</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> one <span class=\"token operator\">|</span> two <span class=\"token operator\">|</span> three <span class=\"token operator\">|</span> four<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> num<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> one<span class=\"token punctuation\">,</span> two<span class=\"token punctuation\">,</span> three<span class=\"token punctuation\">;</span>\n    one <span class=\"token operator\">=</span> num <span class=\"token operator\">>></span> <span class=\"token number\">24</span><span class=\"token punctuation\">;</span>\n    array<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> one <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n    two <span class=\"token operator\">=</span> num <span class=\"token operator\">>></span> <span class=\"token number\">16</span><span class=\"token punctuation\">;</span>\n    array<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> two <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n    three <span class=\"token operator\">=</span> num <span class=\"token operator\">>></span> <span class=\"token number\">8</span><span class=\"token punctuation\">;</span>\n    array<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> three <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n    array<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> num <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">leftLoop4int</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> step<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> temp<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> index<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n    index <span class=\"token operator\">=</span> step <span class=\"token operator\">%</span> <span class=\"token number\">4</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token operator\">?</span> <span class=\"token number\">0</span> <span class=\"token operator\">:</span> step <span class=\"token operator\">%</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">[</span>index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        index<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span>\n        index <span class=\"token operator\">=</span> index <span class=\"token operator\">%</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">mergeArrayToInt</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> one <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">24</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> two <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">16</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> three <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">8</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> four <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> one <span class=\"token operator\">|</span> two <span class=\"token operator\">|</span> three <span class=\"token operator\">|</span> four<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">int</span> Rcon<span class=\"token punctuation\">[</span><span class=\"token number\">10</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> <span class=\"token number\">0x01000000</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x02000000</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x04000000</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x08000000</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x10000000</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x20000000</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x40000000</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x80000000</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x1b000000</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x36000000</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">T</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> num<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> round<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> numArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> result<span class=\"token punctuation\">;</span>\n    <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>num<span class=\"token punctuation\">,</span> numArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">leftLoop4int</span><span class=\"token punctuation\">(</span>numArray<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        numArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">getNumFromSBox</span><span class=\"token punctuation\">(</span>numArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    result <span class=\"token operator\">=</span> <span class=\"token function\">mergeArrayToInt</span><span class=\"token punctuation\">(</span>numArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> result <span class=\"token operator\">^</span> Rcon<span class=\"token punctuation\">[</span>round<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> w<span class=\"token punctuation\">[</span><span class=\"token number\">44</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">extendKey</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> key<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        w<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">getWordFromStr</span><span class=\"token punctuation\">(</span>key <span class=\"token operator\">+</span> i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">44</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">%</span> <span class=\"token number\">4</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            w<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> w<span class=\"token punctuation\">[</span>i <span class=\"token operator\">-</span> <span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> <span class=\"token function\">T</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>i <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            j<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n            w<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> w<span class=\"token punctuation\">[</span>i <span class=\"token operator\">-</span> <span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> w<span class=\"token punctuation\">[</span>i <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">addRoundKey</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> round<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> warray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\n        <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>round <span class=\"token operator\">*</span> <span class=\"token number\">4</span> <span class=\"token operator\">+</span> i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> warray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> warray<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> result <span class=\"token operator\">=</span> s <span class=\"token operator\">&lt;&lt;</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> a7 <span class=\"token operator\">=</span> result <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x00000100</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>a7 <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        result <span class=\"token operator\">=</span> result <span class=\"token operator\">&amp;</span> <span class=\"token number\">0x000000ff</span><span class=\"token punctuation\">;</span>\n        result <span class=\"token operator\">=</span> result <span class=\"token operator\">^</span> <span class=\"token number\">0x1b</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul3</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> s<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul4</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span><span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul8</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span><span class=\"token function\">GFMul4</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul9</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul8</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> s<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul11</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul9</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul12</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul8</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token function\">GFMul4</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul13</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul12</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> s<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul14</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token function\">GFMul12</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">GFMul</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> s<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> result<span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n        result <span class=\"token operator\">=</span> s<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul2</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul3</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">0x9</span><span class=\"token punctuation\">)</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul9</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">0xb</span><span class=\"token punctuation\">)</span><span class=\"token comment\">//11</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul11</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">0xd</span><span class=\"token punctuation\">)</span><span class=\"token comment\">//13</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul13</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">==</span> <span class=\"token number\">0xe</span><span class=\"token punctuation\">)</span><span class=\"token comment\">//14</span>\n        result <span class=\"token operator\">=</span> <span class=\"token function\">GFMul14</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">convertArrayToStr</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> str<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n            <span class=\"token operator\">*</span>str<span class=\"token operator\">++</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token punctuation\">)</span>array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">int</span> <span class=\"token function\">getNumFromS1Box</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> index<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> row <span class=\"token operator\">=</span> <span class=\"token function\">getLeft4Bit</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> col <span class=\"token operator\">=</span> <span class=\"token function\">getRight4Bit</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> S2<span class=\"token punctuation\">[</span>row<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>col<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">deSubBytes</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n            array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">getNumFromS1Box</span><span class=\"token punctuation\">(</span>array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">rightLoop4int</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> step<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> temp<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> index<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        temp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n    index <span class=\"token operator\">=</span> step <span class=\"token operator\">%</span> <span class=\"token number\">4</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token operator\">?</span> <span class=\"token number\">0</span> <span class=\"token operator\">:</span> step <span class=\"token operator\">%</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\n    index <span class=\"token operator\">=</span> <span class=\"token number\">3</span> <span class=\"token operator\">-</span> index<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> temp<span class=\"token punctuation\">[</span>index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        index<span class=\"token operator\">--</span><span class=\"token punctuation\">;</span>\n        index <span class=\"token operator\">=</span> index <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span> <span class=\"token operator\">?</span> <span class=\"token number\">3</span> <span class=\"token operator\">:</span> index<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">deShiftRows</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> rowTwo<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> rowThree<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> rowFour<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        rowTwo<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        rowThree<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        rowFour<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token function\">rightLoop4int</span><span class=\"token punctuation\">(</span>rowTwo<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">rightLoop4int</span><span class=\"token punctuation\">(</span>rowThree<span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">rightLoop4int</span><span class=\"token punctuation\">(</span>rowFour<span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        array<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rowTwo<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        array<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rowThree<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        array<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> rowFour<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">const</span> <span class=\"token keyword\">int</span> deColM<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> <span class=\"token number\">0xe</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0x9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xe</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xd</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xe</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xb</span><span class=\"token punctuation\">,</span>\n    <span class=\"token number\">0xb</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xd</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xe</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">deMixColumns</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> tempArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n            tempArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            array<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">GFMul</span><span class=\"token punctuation\">(</span>deColM<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> tempArray<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token function\">GFMul</span><span class=\"token punctuation\">(</span>deColM<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> tempArray<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n                <span class=\"token operator\">^</span> <span class=\"token function\">GFMul</span><span class=\"token punctuation\">(</span>deColM<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> tempArray<span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">^</span> <span class=\"token function\">GFMul</span><span class=\"token punctuation\">(</span>deColM<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> tempArray<span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">addRoundTowArray</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> aArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> bArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span>\n            aArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> aArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">^</span> bArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">getArrayFrom4W</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> array<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">int</span> index<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> colOne<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colTwo<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colThree<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colFour<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    index <span class=\"token operator\">=</span> i <span class=\"token operator\">*</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colOne<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>index <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colTwo<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>index <span class=\"token operator\">+</span> <span class=\"token number\">2</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colThree<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">splitIntToArray</span><span class=\"token punctuation\">(</span>w<span class=\"token punctuation\">[</span>index <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> colFour<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>j <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> colOne<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> colTwo<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> colThree<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        array<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> colFour<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">void</span> <span class=\"token function\">deAes</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span> c<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> clen<span class=\"token punctuation\">,</span> <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> key<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\n    <span class=\"token keyword\">int</span> cArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> keylen<span class=\"token punctuation\">,</span> k<span class=\"token punctuation\">;</span>\n    keylen <span class=\"token operator\">=</span> <span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span>key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>clen <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token operator\">||</span> clen <span class=\"token operator\">%</span> <span class=\"token number\">16</span> <span class=\"token operator\">!=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Clen: %d\\n\"</span><span class=\"token punctuation\">,</span> clen<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">exit</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token function\">extendKey</span><span class=\"token punctuation\">(</span>key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>k <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> k <span class=\"token operator\">&lt;</span> clen<span class=\"token punctuation\">;</span> k <span class=\"token operator\">+=</span> <span class=\"token number\">16</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">int</span> i<span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">int</span> wArray<span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n        <span class=\"token function\">convertToIntArray</span><span class=\"token punctuation\">(</span>c <span class=\"token operator\">+</span> k<span class=\"token punctuation\">,</span> cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">addRoundKey</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n        <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>i <span class=\"token operator\">=</span> <span class=\"token number\">9</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token function\">deSubBytes</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">deShiftRows</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">deMixColumns</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">getArrayFrom4W</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">,</span> wArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            <span class=\"token function\">deMixColumns</span><span class=\"token punctuation\">(</span>wArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n            <span class=\"token function\">addRoundTowArray</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">,</span> wArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        <span class=\"token function\">deSubBytes</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">deShiftRows</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">addRoundKey</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token function\">convertArrayToStr</span><span class=\"token punctuation\">(</span>cArray<span class=\"token punctuation\">,</span> c <span class=\"token operator\">+</span> k<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n\n<span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">// 暗号化後のバイト列</span>\n    <span class=\"token keyword\">char</span> encodebuffer<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span> <span class=\"token number\">0x2B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xC8</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x20</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x8B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x5C</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xA7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x9B</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x2A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x51</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x3A</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xD2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x71</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x71</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0xCA</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0x50</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    \n    <span class=\"token keyword\">char</span><span class=\"token operator\">*</span> key <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">char</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span><span class=\"token string\">\"Re_1s_eaSy123456\"</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token function\">deAes</span><span class=\"token punctuation\">(</span>encodebuffer<span class=\"token punctuation\">,</span> <span class=\"token number\">16</span><span class=\"token punctuation\">,</span> key<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%s\"</span><span class=\"token punctuation\">,</span> encodebuffer<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>By running the above and obtaining the correct password, I was able to recover the correct flag as shown below.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 575px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7badca019508755957a3ca04d7a83968/59415/image-20230825002938293.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: 80.41666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAAsTAAALEwEAmpwYAAACHklEQVQ4y52TyW4aQRCGeSUOrEfAcyBiEesAA2MY9uXmXHkBBA+ADDgvwSokHgexb3LC4vyZKkIUHJPEHulTVdd0/13dVa0xmc2QolHI8j1isvwhorEYlGQSpKUxmUxIqoNMJvOLbJbIXsX+RiqVQqlUAmmxoKIoSKfTLBxVs41EIkxM3Zmg2C0SiQSvKxQKZ0Gj0Xgl6PV64XQ64XK54Ha74fP5EAqFIIoi29+hWDwe5wxvCgaDQfj9fgQCAXg8HvYvGb8mHA5zhjcF6YeiJHhM0AZkadFbXOa8eWQqQjqdQliUIPqiKhIiIYnvSZKiP63EkE/Z0WkuBS0Wi9dFkWMyT3I4HLBZBZU7CHeqtdkgCAIsFisE6ye+V8Jut6sxC98jbZLL5c6CBoOBs2u32xiNRuj1emh32uj1e+h0Ouh2uxwj2+30MBgM0O/32RLD4ZBtuVyGTqeDRq/X8/lPpxNWqxXG4zEWiwVmsxn2+z02mw2WyyV2u53qr3kOQf5iscRsOgN9tVoNWq32LJjP53nher1mIfKn0ym22y1bYj6f83+yk8mE563WS+ZwOKBSqVwL0uL3fodn4Osa+I6XPwWPx+O7BV++AfvN2a9Wq2dBKgqVvl6vo9VqodFooNls/pNGo4nWUxNPX5p4fGzg4fPDuSjUh9SkEbVlXj+t/0KkJxjkTqHkNEaTGfJ9HMkUPb3Uh0goanNnczCoyf0AD6okeircBxwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/7badca019508755957a3ca04d7a83968/8ac56/image-20230825002938293.webp 240w,\n/static/7badca019508755957a3ca04d7a83968/d3be9/image-20230825002938293.webp 480w,\n/static/7badca019508755957a3ca04d7a83968/039fe/image-20230825002938293.webp 575w\"\n              sizes=\"(max-width: 575px) 100vw, 575px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/7badca019508755957a3ca04d7a83968/8ff5a/image-20230825002938293.png 240w,\n/static/7badca019508755957a3ca04d7a83968/e85cb/image-20230825002938293.png 480w,\n/static/7badca019508755957a3ca04d7a83968/59415/image-20230825002938293.png 575w\"\n            sizes=\"(max-width: 575px) 100vw, 575px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/7badca019508755957a3ca04d7a83968/59415/image-20230825002938293.png\"\n            alt=\"image-20230825002938293\"\n            title=\"image-20230825002938293\"\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<h2 id=\"summary\" style=\"position:relative;\"><a href=\"#summary\" aria-label=\"summary 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>Summary</h2>\n<p>Is this really classified as an easy problem??</p>\n<p>I really need to study crypto too…</p>","fields":{"slug":"/ctf-wmctf-2023-en","tagSlugs":["/tag/ctf-en/","/tag/rev-en/","/tag/english/"]},"frontmatter":{"date":"2023-08-25","description":"Writeup for WMCTF 2023.","tags":["CTF (en)","Rev (en)","English"],"title":"Analyzing Android Native Library Functions and Decrypting RC4 and AES [WMCTF 2023]","socialImage":{"publicURL":"/static/191686352ab9b0e45c949d9ff85efde7/ctf-wmctf-2023.png"}}}},"pageContext":{"slug":"/ctf-wmctf-2023-en"}},"staticQueryHashes":["251939775","401334301","825871152"]}