一天一道逆向题,加油
这道题不算难,主要还是在算法上,
IDA打开,
先判断前四位,再给后面的信息加密,可以看出sub_4011C0()是那个关键函数,其中可能有加密,
他将大写转小写 ,小写转大写,再进行异或加密,
直接写Python脚本,很快解出
s="GONDPHyGjPEKruv{{pj]X@rF"
k=[0x0D,0x13,0x17,0x11,0x02,0x01,0x20,0x1D,0x0C,0x02,0x19,0x2F,0x17,0x2B,0x24,0x1F,0x1E,0x16,0x09,0x0F,0x15,0x27,0x13,0x26]
m=0
flag=[]
flag1=[]
flag2=[]
for i in range(24):
k[i]=k[i]^ord(s[i])
for i in k:
a=(i-72)^0x55
if a>=97 and a<=122:
a-=32
if a>=65 and a<=90:
a+=32
flag.append(chr(a))
print(''.join(flag))
解得flag中间的数,加上头和{},得到正确flag!