攻防世界 Reverse高手进阶区 2分题 elrond32

前言

继续ctf的旅程
攻防世界Reverse高手进阶区的2分题
本篇是elrond32的writeup

发现攻防世界的题目分数是动态的
就仅以做题时的分数为准了

解题过程

PE查壳

在这里插入图片描述
扔进IDA

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个验证输入
一个负责输出

跟进 8048769,这里需要 33*4=132=16*8+1 个字节的内容,即需要前往 hex 窗口中找 8 行加 1 个 4 字节的数据,还要注意小端序的问
题(还好这里每个 32bit 的前 3 个字节都是 0x00)

在这里插入图片描述

根据题意
得到脚本

a='ie ndags r'
x=0
s=[]
for i in range(8):
    x=7*x%11
    s.append(a[x])
    x+=1
print(''.join(s))
data=[15, 31, 4, 9, 28, 18, 66, 9, 12, 68, 13, 7, 9, 6, 45, 55, 89, 30, 0, 89, 15, 8, 28, 35, 54, 7, 85, 2, 12, 8, 65, 10, 20]
for i in range(33):
    print(chr(ord(s[i%8])^data[i]),end='')

得到flag:flag{s0me7hing_S0me7hinG_t0lki3n}

结语

逻辑比较清晰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值