记一次misc解题踩坑知识点

在一次比赛中偶遇一道稍微有点坑的题目,手搓解决后,后来发现更好的处理方式,记录一下。

数据为rot13解码后的数据

2346 3c53 5259 4e57 6639 5969 5d2a 402e
7531 2c24 476c 7929 5d39 4a45 7b25 2a67
7932 4e3a 396f 2d33 6839 5149 4841 7625
7444 4f27 000a

尝试直接解码无果,此处的坑点主要是hexdump特性。

结合hexdump的特点,数据需要22对调。之前靠手搓,经过向大佬学习,正则匹配通用性更强。

此处正则知识点:

知识点:
(.)代表取一个字符
(..)代表取两个字符
以此类推
$1代表取第一位的值
以此类推
$2$1代表第2位与第1位互换位置

 对接码后的数据进行hex、base92解码后得到flag。也可以通过正则直接对字符串进行对调。

除了正则还可以通过脚本实现

input_str = "#F<SRYNWf9Yi]*@.u1,$Gly)]9JE{%*gy2N:9o-3h9QIHAv%tDO'"
result = ''.join([input_str[i+1] + input_str[i] for i in range(0, len(input_str)-1, 2)])+ (input_str[-1] if len(input_str) % 2 == 1 else '')

得到字符串解码

F#S<YRWN9fiY*].@1u$,lG)y9]EJ%{g*2y:No93-9hIQAH%vDt'O

 base92解码得到flag

flag{048ddbdb-8040-442d-8402-66ad981eadc8}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值