ApoorvCTF Rust语言逆向实战

news/2025/3/9 10:38:23/文章来源:https://www.cnblogs.com/hetianlab/p/18757201

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

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

Rusty Vault

题目描述:

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

image

进入main函数,开始分析

image

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

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

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

image

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

那么这个比较绝对很关键

image

进入后发现,啥也没啊?

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

image

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

image

对比check1-2

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

image

下面可以看到失败

往下滑动可以看到成功

image

什么意思?

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

image

后面都是正常输出flag了

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

【----帮助网安学习,以下所有学习资料免费领!加vx:yj520400,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

教大家一个回溯方法

image

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

image

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

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

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

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

image

现在的思路就是:

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

让程序自动走向解密

image

nop掉check1 和 check2

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

image

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

apoorvctf{P4tch_1t_L1k3_1t's_HOt}

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

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

更多网安技能的在线实操练习,请点击这里>>

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACK 通过sls收集pod日志

常见的收集方式 filebeat->kafka->logstash->es阿里云ACK日志收集 ack->sls 这里要说的是我们传统意义上是通过收集pod或者node节点上的 .log日志文件进行收集日志,在ack里面可以不用通过收集.log的方式进行日志收集。具体的操作看下面的步骤1 开始操作吧 1.1 ACK…

GreatSQL5.7 与 8.0 对 DATE 非法值处理方式不同

GreatSQL5.7 与 8.0 对 DATE 非法值处理方式不同 一、问题描述 1. 问题现象 当分别通过LOAD DATA LOCAL INFILE和INSERT导入非法的 DATE 字段数据时,在5.7.21和 8.0.25使用LOAD DATA LOCAL会报一个Warning,数据异常但可以插入成功,而且实际插入的数据跟用户计划插入的不同,…

Hyper-V的安装过程自动化程度较高,但要了解每个安装步骤背后的原理

Hyper-V的安装过程确实具有较高的自动化程度,但了解每个安装步骤背后的原理对于确保安装的成功以及后续的维护和管理至关重要。以下是对Hyper-V安装过程中每个关键步骤及其原理的详细解析:一、准备工作 步骤:检查系统要求、备份数据、关闭不必要的程序。 原理: 系统要求:确…

牛客题解 | 拼凑三角形

牛客题库题解题目 题目链接 题解 题目难度:简单 知识点:数学逻辑 思路: 三角形成立的条件:1.为了更简便的判断三角形是否成立,将三个数由小到大进行排序放入a[3]中,只需要满足a[0]+a[1]>a[2]即可。(两个较小的数相加大于第三个数)。 2.若a[0]+a[1]&…

内网环境部署Deepseek+Dify,构建企业私有化AI应用

0.简介 公司为生产安全和保密,内部的服务器不可连接外部网络,为了可以在内网环境下部署,采用的方案为ollama(Docker)+Dify(Docker Compose),方便内网环境下迁移和备份,下文将介绍部署的全部过程。 1.镜像拉取 镜像拉取为准备工作,因服务器在内网环境,需要先在可以连接外…

牛客题解 | 拍照队形

牛客题库题解题目 题目链接 题解 题目难度:简单难度 知识点:数学逻辑 分析:主要考虑输出格式,由于N=3k+1,那么前K行每行输出2个字符,后k+1行输出1个字符。对于前k行,第一行:第一列输出字符,空格数为m=2*k-1,在输出第二个字符;第二行:先空格1,输出字符,空格m-=2个(…

电动后尾门控制器PLGM

经纬恒润平台化的电动尾门控制器PLGM可为不同的后尾门应用场合提供解决方案,目前已为众多客户配套量产。 经纬恒润平台化的电动尾门控制器PLGM(Power Lift Gate Module,PLGM)可为不同的后尾门应用场合提供解决方案,目前已为众多客户配套量产。主要功能车门电动打开…

CentOS 磁盘扩容lvm(虚拟机环境)

fdisk -l 查看磁盘情况对新增加的硬盘进行分区,使用fdisk命令创建和维护分区表。 fdisk /dev/vda 输入p:查看已分区数量(有两个 /dev/vda1 /dev/vda2) 输入n(new partition):新增加一个分区 输入p(parimary partition):分区类型选择为主分区 输入分区号3(partition …

Vue 自定义指令封装实现防抖 防止按钮暴力点击

本来项目前期没有做按钮防抖功能 快结束时才想起来 然后一个个写太慢了 然后就想着封装一下 vue3:新建directive.jsexport default {//自定义节流操作preventReClick: {mounted(el, binding) {el.addEventListener(click, () => {if (!el.disabled) {el.disabled = truesetT…

3.6 CW 模拟赛 T3. 列表

思路题意 有一个长度为 2n+12 \times n + 12n+1 的整数列表 aaa 初始恰好为 1∼2n+11 \sim 2 \times n + 11∼2n+1 的排列; 有一个集合 S\mathbb{S}S 初始为空, 进行 n+1n + 1n+1 次操作, 第 iii 次操作如下:111. 选择列表最中间位置的数第 n+2−in + 2 - in+2−i 个数, 从列表…

Navicat 操作 MySql 修改表结构时保存后直接卡死无反应问题

一、问题如下:在Navicat中调整表结构,添加新的字段。之后保存的时候就一直显示正在保存,等了一会儿也一直没有反应,点关闭也停止不了保存操作,就一直卡着。二、问题解决1、查看当前的进程列表: show processlist会发现有等待的进程:这些进程状态为Waiting for table met…

SAP 3M胶带:行业解决方案的革新者

SAP 3M胶带:行业解决方案的革新者 在胶带加工行业,SAP 3M胶带凭借其卓越的性能和广泛的应用领域,成为了众多企业的首选。而SAP与3M的结合,更是将科技与创新完美融合,为行业带来了全新的解决方案。库存管理痛点解决 胶带加工行业的多变性使得库存管理成为了一大痛点。然而,…