攻防世界 re BABYRE - Odoiys/ctf GitHub Wiki

我倒是觉得这道题我应该能自己做出来,但是我还是之前不小心看到了wp,这道题还不算完整自己做出来的,但是能够证明的是我感觉自己还是有了很大的进步,目前感觉很良好。

大概写一下wp,问题也保留在这里好了。

WP:

方法是ida的动态调试,我现在觉得这个是真的好用,越来越能感觉到了。

先静态调试查看main函数,发现了judge这个东西,点进去看,我以为是加密的,但感觉还少了很多东西。要想进入judge,先要过长度的关,if明确写着要14个字符,那就给他14个,后面的就很草包了。动态调试进去查看,单步调试,看见这几个[ebp-4] 到 [ebp-1fh],初步猜测有可能是flag,但是很乱应该有哪一步进行变换。往下走,有一处edx和eax 的异或,然后可以通过脚本算出flag

脚本:

a = [102,109,99,100,127,107,55,100,59,86,96,59,110,112]

flag = ""

for i in range(14):

flag +=chr(a[i]^i)

print flag

其他wp: