2021.红客训练营CTF第二场——Reverse部分wp

惯例吐槽没有pwn,试试Reverse

1. whereisflag

elf文件,无壳,直接用ida打开,检索字符串看到whereisflag,双击跟进找到关键函数
在这里插入图片描述
拼接一下字符串得到flag
CnHongKe{849bc02af213b4d}

2. Reverse1

  1. 运行一下程序,知道大概的情况
    在这里插入图片描述
  2. 32位程序,存在upx壳
    在这里插入图片描述
  3. upx脱壳后用ida打开,根据运行时候看到的字符串,找到关键函数
    ida反编译的伪代码有些地方读不懂,直接动调分析函数
    在这里插入图片描述
    这道题的逻辑就是:输入长度为11的字符串,逆序后每一位的ascii+7,然后跟v7字符串进行异或操作,得到新的字符串后在每一位字符的ascii-1在逆序得到off_409030里的值
    在这里插入图片描述
    exp:
a=[0x1E, 0x5D, 0x53, 0x77, 0x5E, 0x50, 0x0E, 0x57, 0x7C, 0x47, 0x07]
#print(a)

str1="%+$-4-8+7=?"
xors=[37 ,43 ,36 ,45 ,52 ,45 ,56 ,43 ,55 ,61 ,63]   #str1的ascii码
b=[0,0,0,0,0,0,0,0,0,0,0]


for i in range(11):
    a[i]=a[i]+1
#print(a)

for i in range(11):
    b[i]=a[i]^xors[i]
#print(b)

for i in range(11):
    b[i]=b[i]-7
#print(b)

b.reverse()
print(b)

for i in range(11):
    print(chr(b[i]),end="")

#运行结果:0nCl0udNin3

CnHongKe{0nCl0udNin3}

猜你喜欢

转载自blog.csdn.net/mcmuyanga/article/details/114442832