re4-unvm-me
下载是.pyc文件,vs打不开,pycharm打开是乱码
下载EasyPythonDecompiler下载链接
先把.pyc文件Decompile,自动生成一个文件,将后缀名改成.txt,然后记事本打开
# Embedded file name: unvm_me.py
import md5
md5s = [174282896860968005525213562254350376167L,
137092044126081477479435678296496849608L,
126300127609096051658061491018211963916L,
314989972419727999226545215739316729360L,
256525866025901597224592941642385934114L,
115141138810151571209618282728408211053L,
8705973470942652577929336993839061582L,
256697681645515528548061291580728800189L,
39818552652170274340851144295913091599L,
65313561977812018046200997898904313350L,
230909080238053318105407334248228870753L,
196125799557195268866757688147870815374L,
74874145132345503095307276614727915885L]
print 'Can you turn me back to python ? ...'
flag = raw_input('well as you wish.. what is the flag: ')
if len(flag) > 69:
print 'nice try'
exit()
if len(flag) % 5 != 0:
print 'nice try'
exit()
for i in range(0, len(flag), 5):
s = flag[i:i + 5]
if int('0x' + md5.new(s).hexdigest(), 16) != md5s[i / 5]:
print 'nice try'
exit()
print 'Congratz now you have the flag'
根据if int('0x' + md5.new(s).hexdigest(), 16) != md5s[i / 5]
,先将list内的数字进行十六进制转换再进行MD5解密
十六进制转换后:
831DAA3C843BA8B087C895F0ED305CE7
6722F7A07246C6AF20662B855846C2C8
5F04850FEC81A27AB5FC98BEFA4EB40C
ECF8DCAC7503E63A6A3667C5FB94F610
C0FD15AE2C3931BC1E140523AE934722
569F606FD6DA5D612F10CFB95C0BDE6D
68CB5A1CF54C078BF0E7E89584C1A4E
C11E2CD82D1F9FBD7E4D6EE9581FF3BD
1DF4C637D625313720F45706A48FF20F
3122EF3A001AAECDB8DD9D843C029E06
ADB778A0F729293E7E0B19B96A4C5A61
938C747C6A051B3E163EB802A325148E
38543C5E820DD9403B57BEFF6020596D
MD5依次解密后:
ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds9v41n52nv37j481h3d28n4b6v3k}