re4-unvm-me
下载是.pyc文件,vs打不开,pycharm打开是乱码
下载EasyPythonDecompiler下载链接

先把.pyc文件Decompile,自动生成一个文件,将后缀名改成.txt,然后记事本打开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 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解密
十六进制转换后:
1 2 3 4 5 6 7 8 9 10 11 12 13
| 831DAA3C843BA8B087C895F0ED305CE7 6722F7A07246C6AF20662B855846C2C8 5F04850FEC81A27AB5FC98BEFA4EB40C ECF8DCAC7503E63A6A3667C5FB94F610 C0FD15AE2C3931BC1E140523AE934722 569F606FD6DA5D612F10CFB95C0BDE6D 68CB5A1CF54C078BF0E7E89584C1A4E C11E2CD82D1F9FBD7E4D6EE9581FF3BD 1DF4C637D625313720F45706A48FF20F 3122EF3A001AAECDB8DD9D843C029E06 ADB778A0F729293E7E0B19B96A4C5A61 938C747C6A051B3E163EB802A325148E 38543C5E820DD9403B57BEFF6020596D
|
MD5依次解密后:
1
| ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds9v41n52nv37j481h3d28n4b6v3k}
|