DIE查壳
32位,无壳
32位ida打开
界面很难看,按\后得到加密程序
关注这个while循环,明明是个循环16次,但却v1却只有四个元素
从声明变量这里可以看到v1是int数组,每个元素占四字节
梳理一下逻辑,v1是我们需要求的flag,也就是传入的数据,这里通过第一个while循环进行了两次if判断,处理输入的flag,也就是v1中的每个字节
最后用第二个whlie循环将处理后的v1与预设字符串v12进行比较
可以逆向加密程序求flag,也可以爆破,这里我们选择爆破
enc = 'Qsw3sj_lz4_Ujw@l'
flag = ''
for i in range(len(enc)):for k in range(128):j = kif j > 64 and j <= 90:j = ((j - 51) % 26 + 65)if j > 96 and j <= 122:j = ((j - 79) % 26 + 97)if j == ord(enc[i]):flag += chr(k)
print(flag)
得到flag:Cae3ar_th4_Gre@t
打开ida