XCTF——梅津美治郎
晚上吃完饭,发现好久没刷过攻防世界了,心血来潮来一道。
好家伙,看完这个Description我又觉得我行了(手动狗头.jpg)。
打开文件
OK!养成好习惯,先PEID:
没问题。
先运行一下,看看干嘛的:
看见first,想想就有second。
话不多说,把他交给我的老婆:
老婆贴心的打开,我们对老婆说Shift+F12:
没看到first,second字样,没事我们看到了:
这应该是输入第一个密码成功之后的地方。
跑到老婆旁边告诉她要Ctrl+x
老婆也很了解我,带我来到了main函数:
大概扫了一下,the first password是和一个字符串的比较:
我们找下var_143出现的地方:
ok:第一个密码是r0b0RUlez!
验证一下:
果然成功了,也是的确存在第二个密码的。
继续往下看,发现了__debugbreak()这个函数,这个函数在x86中相当于INT3断点,所以需要我的好朋友OD:
调试the second password就可以发现这就是他的加密过程
此时FPU(寄存器)窗口eax的值是0x60FDBC,所以dd 60FDBC
这个函数的意思是u1nnf2lg这个字符串和0x2异或,所以我们的py脚本就登场
ok,结果就是:
这道题的flag是:
flag{r0b0RUlez!_w3lld0ne}
题做完了,又要和我的老婆告别了!!!
舍不得啊~~