好久没有去攻防世界玩了 主要是这段时间太忙了 有很多 杂事 缠身吧 然后没事看看堆 就。。 看自闭了
然后这道题其实还是很简单的 有很多函数 还有指令其实感觉 用od 或者ida 直接静态 就能查出来什么意思 就没有必要 去深究 里面的算法
点进去 主要的函数
发现了这个东西 注意这个 Memory 这个东西 我们往下看
这里 决定了我们的走向他就是参数之一 然后我们我们 发现 如果直接 运行程序 会失败 原因就是 他这个是 读取的 txt
我们在路径下 直接建立一个文件就行 然后 写上pwn 然后我们分析一下sub_4020C0 这个函数
这里的v7 应该就是我们的 memory 但和他比较的 并不是很确定是不是我们的 file文件 我们用od 来调试一下
emmmmm 直接出来flag 了 如果想 用程序解密的话 下面是脚本
idg_cni~bjbfi|gsxb
str1 = "themidathemidathemida"
str2 = ">----++++....<<<<."
key =""
flag=""
for i in range(18):
key += chr((ord(str1[i]) ^ ord(str2[i]))+22)
for i in key:
flag+=chr(ord(i)+9)
print(flag)
这个题 还是很简单的啊