NewStarCTF 2023 Petals
逆向题 有花指令
IDA打开
关键在 loc_1209
最后会跳转到
在 13B0处 按 U 然后 ctrl+N将这条指令nop掉 最后回到 1209处 按P 就可以F5编译成函数了
这里其实最后v5应该是v5[256]
得到v5后程序做了一个简单的变换 对a1[]进行了修改
由于我们知道最后的a1[]所以直接逆就可以了
exp:
unk_4020 = [0xD0, 0xD0, 0x85, 0x85, 0x80, 0x80, 0xC5, 0x8A, 0x93, 0x89, 0x92, 0x8F, 0x87, 0x88, 0x9F, 0x8F, 0xC5, 0x84, 0xD6, 0xD1, 0xD2, 0x82, 0xD3, 0xDE, 0x87]
v5 = [~(i ^ 25) & ((1<<8)-1) for i in range(256)]
flag = ""
for i in range(len(unk_4020)):
now = unk_4020[i]
for j in range(len(v5)):
if now == v5[j]:
flag += chr(j)
break
print(flag)
得到的input是这个:
yysy, 我最喜欢IA...
然后md5加密一下就可以了
flag{d780c9b2d2aa9d40010a753bc15770de}