oin

writeup


SimpleRev

<p>[TOC]</p> <h1>🌓分析</h1> <p>加密函数里面有两部分数据,第一部分是加密内容</p> <p><img src="https://pic.imgdb.cn/item/6375096d16f2c2beb1cce7bc.png" alt="" /> </p> <p>第二部分是密码表</p> <p><img src="https://pic.imgdb.cn/item/637509c116f2c2beb1cfe2e3.png" alt="" /> </p> <p>这里对密码表做了处理</p> <p><img src="https://pic.imgdb.cn/item/63750af716f2c2beb1d91d93.png" alt="" /> </p> <p>输入需要每个字符中间都隔一个空格,然后它只会记录a~z和A~Z之间的东西,输入其他内容不会记录处理</p> <p><img src="https://pic.imgdb.cn/item/63750b7016f2c2beb1dd50bf.png" alt="" /> </p> <p>最后对比密文</p> <p>由于这个加密是单个字符进行映射替换加密的,所以可以直接爆破找出对应的字符</p> <h1>🌓Exploit</h1> <pre><code class="language-python">text = "killshadow" key = list("ADSFKNDCLS") v3 = 0 for i in range(len(key)):    # 其实就是大写转小写 if (key[v3%len(key)] &gt; '@' and key[v3%len(key)] &lt;= 'Z'): key[i] = chr(ord(key[v3%len(key)])+32) v3 += 1 li = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" v3 = 0 for i in text: for j in li: s = chr((ord(j) - 39 - ord(key[v3 % len(key)]) + 97) % 26 + 97) if s == i: print j, print "" v3 += 1 </code></pre> <p><img src="https://pic.imgdb.cn/item/637517d616f2c2beb11dcc39.png" alt="" /> </p> <p>跑出来有大小写两种结果,选全部大写的结果 <code>KLDQCUDFZO</code></p> <h1>🌓附件</h1> <p><a href="https://cowtransfer.com/s/b6ccd6ba307c43">https://cowtransfer.com/s/b6ccd6ba307c43</a></p>

页面列表

ITEM_HTML