De1CTF2019_cplusplus

[De1CTF2019]cplusplus

64位

这道题大意是输入一个格式为123@123#123的字符串

然后进行校验

后面两段的非常简单的,难度在与第一段

后两段:

image-20230427010551840

第一段

image-20230427010609309

函数对输入进行了一系列的运算,最终走到v8然后判断是否直接退出

image-20230427010637787

但是,函数的开头的判断告诉我们输入一定小于111

image-20230427010716103

于是考虑爆破。模拟整个程序的执行

1
2
3
4
5
6
7
8
9
10
11
12
13
import subprocess

for i in range(111):
s = "@20637#114"
input = str(i) + s
p = subprocess.Popen('./Cplusplus.exe',
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out = p.communicate(bytes(input.encode()))[0]
out = out.decode()
if 'flag' in out:
print(out)
break

de1ctf{78@20637#114}