逆向攻防世界CTF系列33-流浪者
逆向攻防世界CTF系列33-流浪者
shift+f12看到pass,跟进
是个输入的处理,其实很简单,看不懂也没关系,先看看return
这里strcmp成功后return的就是成功
最后要为KanXueCTF2019JustForhappy
while ( *(_DWORD *)(a1 + 4 * v4) <= 0x3Du )
{
Str1[v4] = aAbcdefghiabcde[*(_DWORD *)(a1 + 4 * v4)];
++v4;
}
Str1[v4] = 0;
上面的代码其实就是字典的一个映射出来,模拟一下就知道,我们只要把KanXueCTF2019JustForhappy推回去得到映射关系a1数组就行也就是v5。
aAbcdefghiabcde是abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ
得到映射列表后我们回去看最初的代码,其实可以发现就是把输入的字符处理到1-62
写解密代码
dict = 'abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
enc = 'KanXueCTF2019JustForhappy'
list = []
for i in range(len(enc)):
list.append(dict.index(enc[i]))
for i in range(len(list)):
if list[i] < 10:
print(chr(list[i] + 48),end='')
elif list[i] < 36:
print(chr(list[i] + 87),end='')
else:
print(chr(list[i] + 29), end='')
j0rXI4bTeustBiIGHeCF70DDM
根据提示加上flag{}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Matriy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果