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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值