SICTF Round#3 Reverse

文章描述了一场比赛中的逆向工程挑战,涉及动态调试、病毒分析、谜题解答等内容,参赛者逐步解密CloseMe挑战并找到flag。
摘要由CSDN通过智能技术生成

SICTF2023 Round#3 Reverse

病毒分析不会555,求WP
在这里插入图片描述

1.babyC++

考点:签到

flag点击就送

在这里插入图片描述

2. Ez_pyc

考点:maze类

反编译,看出是数独之后用在线网站解就很简单了

在这里插入图片描述

3. SweetTofu

考点:动态调试

下个断点,调试,发现就是个简单异或

在这里插入图片描述

4. Artbreak

考点:脑洞

把Graph结点参数拉满后发现神奇的一幕

在这里插入图片描述

5. battle city

考点:打电动技术

相信各位都是打电动的高手吧

6. CloseMe

考点:Rust,动态调试,端序,心态

打开就会发现雌小鬼在狠狠地上嘴脸,怎么都关不了,ida打开发现一大坨代码,
在这里插入图片描述

没思路先一直往下翻,看到一个关键的异或

在这里插入图片描述

Patch下来运行,可以猜测是要通过按 “是否” 来达成输入flag的效果

在这里插入图片描述

然后就开始了悲剧的调试之旅

首先可以发现v52这个关键的数据,我们通过前面的代码分析可以得知flag为16个由0和1的数据,而v52就是把他们结合成一个大数

在这里插入图片描述

什么意思呢,就是我点“是是是是 否是是否 否是否是 是否是否”对应1,1,1,1 ,0,1,1,0, 0,1,0,1, 1,0,1,1

而v52的值就是1101101001101111 (此为大端序显示)

不过这个东西对我产生了误导,因为我以为后面那个函数是判断,然后调的我头昏眼花也没看出什么zzzzzzz

终于放弃后,往下继续调试(此处省略一万字

终于我发现了关键的地方,那就是v40这里的判断,才是真正的最后的判断!!!!!!!!!!!

在这里插入图片描述

然后我们可以输入不同的flag,来看看v40到底会变成什么样,

这里直接给出我的猜想:

我们输入的一串flag,如“1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1”(此处为输入顺序),他会变成数据1010 0011 1110 0111

程序会把他进行一个补位的>>2操作 (关键)

然后变成1110 1000 1111 1001,然后再把他当成一个二进制数来看待

验证猜想:

输入"1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1"(此处为输入顺序),得到v40为0xE8F9

在这里插入图片描述

发现猜想正确!!!!

在这里插入图片描述

那么就顺水推舟地逆出来了,密文是0xA9F1,即1010 1001 1111 0001

然后将他补位<<2,得到1010 0111 1100 0110

那么我们的输入顺序就应该是"0110 0011 1110 0101",即“否是是否 否否是是 是是是否 否是否是”

我们按以上顺序输入,发现程序被关闭了!

那么flag就出来了,即为SICTF{0110001111100101}

后言:

这段时间比赛超多,VN的逆向只出一题让我心态爆炸,然后又被SICTF的雌小鬼Closeme疯狂折磨,好在终于熬过去了,至于病毒分析,还得看各位师傅们的wp了
orzzzzzzzzzzzzz

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值