ApoorvCTF Rust语言逆向实战

admin 2025年3月6日19:52:39评论13 views字数 942阅读3分8秒阅读模式

ApoorvCTF Rust语言逆向实战

上周参加了国外的比赛,名称叫:ApoorvCTF

看一下老外的比赛跟我们有什么不同,然后我根据国内比赛对比发现,他们考点还是很有意思的,反正都是逆向,哈哈哈

Rusty Vault

题目描述:

In the heart of an abandoned shrine, there’s an old, rusted vault said
to guard an unspeakable secret. Many have tried to unlock it, but the
door’s demands are strange and no key seems to fit.

ApoorvCTF Rust语言逆向实战

进入main函数,开始分析

ApoorvCTF Rust语言逆向实战

这个命名方式,大概率是Rust语言

对于rust语言逆向,一般采用动态调试分析的方法

主要还是看汇编,因为F5根本看不出来啥东西。。。

ApoorvCTF Rust语言逆向实战

从if比较处,可以看到成功和失败两个结果

那么这个比较绝对很关键

ApoorvCTF Rust语言逆向实战

进入后发现,啥也没啊?

坏了,得看汇编,为代码估计又出问题了

ApoorvCTF Rust语言逆向实战

发现了check2,果然为代码啥也看不到

ApoorvCTF Rust语言逆向实战

对比check1-2

发现是在检测输入的字符串的字符类型,还是冲突的,不管了继续分析

ApoorvCTF Rust语言逆向实战

下面可以看到失败

往下滑动可以看到成功

ApoorvCTF Rust语言逆向实战

什么意思?

我猜测这题是改条件,然后动态输出flag?还有这好事

ApoorvCTF Rust语言逆向实战

后面都是正常输出flag了

那么我们现在去解密的地方回溯,估计我要改一些判断,改变流程,让程序正常走到解密的地方,然后输出flag

教大家一个回溯方法

ApoorvCTF Rust语言逆向实战

对标签疯狂X键,交叉引用定位回溯

ApoorvCTF Rust语言逆向实战

最终定位到密文,发现是aes_128_cbc模式

需要:key+IV+密文=明文

这是一种思路,大家可以尝试

本文修改流程,让他自动输出明文

ApoorvCTF Rust语言逆向实战

现在的思路就是:

x键回溯定位关键标签,修改关键判断

让程序自动走向解密

ApoorvCTF Rust语言逆向实战

nop掉check1 和 check2

让他们走向自动解密的方向

ApoorvCTF Rust语言逆向实战

最终运行程序得到flag,静态patch流程,绕过check1-chekc2

  1. apoorvctf{P4tch_1t_L1k3_1t's_HOt}

这在我们国内比赛还是很少见到的,国内大概率要写脚本解密,或许国内认为加密才是CTF的重点。国外侧重逆向本身,如果可以patch修改流程得到flag,为什么要去写解密脚本呢?

锻炼了我们通过汇编分析程序流程的能力,而不是为代码一键分析。

ApoorvCTF Rust语言逆向实战

原文始发于微信公众号(蚁景网络安全):ApoorvCTF Rust语言逆向实战

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月6日19:52:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ApoorvCTF Rust语言逆向实战http://cn-sec.com/archives/3806127.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息