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)] > '@' and key[v3%len(key)] <= '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>