RE高级-流浪者
题目描述
答案为flag{XXX}形式
题目解析
题目会给我们一个cm.exe的程序,丢到exeinfope发现无壳,直接进入IDA。
点击SHIFT+F12
查看所有字符串,发现两个比较可疑的字符串
aAbcdefghiabcde
= abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ
aKanxuectf2019j
= KanXueCTF2019JustForhappy
追踪到sub_4017F0函数,发现这里对aKanxuectf2019j
字符串进行判断,如果前面得出的Str1是这个字符串就成功了。
因此我们需要暴力破解出这个字符串,即将每个字符都放入试试,能不能通过它给的算法算出正确的结果。
通过计算出来的结果,获得结果j0rXI4bTeustBiIGHeCF70DDM
代码
str1 = 'abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
str2 = 'KanXueCTF2019JustForhappy'
posis = [str1.index(x) for x in str2] # 寻找对应关系
posi = 0
for i in posis:
for j in range(0,128):
if(j>57 or j <48):
if(j>122 or j<97):
if(j>90 or j<65):
pass
else:
posi = j - 29
else:
posi = j - 87
else:
posi = j - 48
if(posi == i):
print(chr(j),end='')
print()