BUUCTF reverse findKey
用ida32打开找到主要算法。发现无法F5进行反编译,选中代码后摁p键将代码解析成函数。
分析一波代码发现加密逻辑应该是str与SS先进行异或
之后是一个MD5的加密,在sub_40101E调用了md5的加密库函数。
说实话我也是第一次遇到这个东西,也是放放大佬告诉的,给大佬磕一个。
MD5加密之后又是一个异或,解出即为flag。
贴上脚本
1 a='0kk`d1a`55k222k2a776jbfgd`06cjjb' 2 b='SS' 3 s='' 4 flag='' 5 for i in range(len(a)): 6 s+=chr(ord(a[i])^ord(b[i%2])) 7 print (s) 8 b='123321' 9 c=[0x57,0x5E,0x52,0x54,0x49,0x5F,0x1,0x6D,0x69,0x46,0x2,0x6E,0x5F,0x2,0x6C,0x57,0x5B,0x54,0x4C] 10 for i in range(len(c)): 11 flag+=chr(c[i]^ord(b[i%len(b)])) 12 print(flag)
flag{n0_Zu0_n0_die}