NSSCTF ROUND#28 动态调试 WriteUp

news/2025/3/22 22:22:28/文章来源:https://www.cnblogs.com/Binary-0/p/18787182

WriteUp

题目信息

来源:NSSCTF
名称:ROUND#28 动态调试
分类:Reverse
描述:无

题目链接: https://www.nssctf.cn/contest/732/

解题思路

首先使用DIE对文件进行查壳,发现这是一个无壳的32位ELF文件。

于是使用32位IDA对文件进行反汇编,得到伪代码如下:

为方便阅读伪代码,修改变量名如下:

分析伪代码可以知道,我们输入的字符串ins,每一位都会与随机数异或,这时候我们可以猜想这个随机seed是一个定值(如果是动态的,那么即便是flag,每次随机异或得到的结果和goal几乎都不一样)。

然后查看关键变量goal,并计算goal字符串长度为35(0x22-0x00 + 1)

那么我们可以直接先输入'1'*35,得到异或后的序列,然后再将该序列各位与'1'异或,这样子得到的序列就是各位的异或值。

思路有了,现在设置断点:

然后进入动态调试阶段:

先输入35个'1',

然后查看异或后的序列ins,

提取出这些数据,

[0xB9, 0xB2, 0x92, 0x4F, 0xDB, 0x90, 0x8B, 0x14, 0x43, 0xFE, 0x2C, 0x5F, 0x48, 0x61, 0x26, 0x61, 0x9D, 0x5E, 0xE3, 0x25, 0x8C, 0x54, 0x84, 0x6D, 0x69, 0x4C, 0xDE, 0x52, 0x68, 0x47, 0x65, 0xB7, 0x0D, 0x18, 0x58]

然后编写脚本得到所有异或值,

[136, 131, 163, 126, 234, 161, 186, 37, 114, 207, 29, 110, 121, 80, 23, 80, 172, 111, 210, 20, 189, 101, 181, 92, 88, 125, 239, 99, 89, 118, 84, 134, 60, 41, 105]

接着提取goal的值,

[0xB9, 0xB2, 0x92, 0x4F, 0xDB, 0x90, 0x8B, 0x14, 0x43, 0xFE, 0x2C, 0x5F, 0x48, 0x61, 0x26, 0x61, 0x9D, 0x5E, 0xE3, 0x25, 0x8C, 0x54, 0x84, 0x6D, 0x69, 0x4C, 0xDE, 0x52, 0x68, 0x47, 0x65, 0xB7, 0x0D, 0x18, 0x58]

再次编写脚本,将goal与各异或值进行异或,即可得到flag

使用工具

DIE
IDA
Vscode

工具链接: https://pan.baidu.com/s/1dzK8gcFjYEvnj_aA0UjBeQ?pwd=ry2d 提取码: ry2d

Flag

NSSCTF{WeLcoMe_T0_the_Rand0m_W0rld}

总结

通过本次题目学习到:
动态分析

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

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

相关文章

Video Analysis Assignment

This scene is what the heroine saw from a begin sycarmore at the first time . It was this landscape that awake the heroine of her father’s word: “ A painting is more than the sum of its parts”. This scene is shot from the big sycarmore and it is a estab…

AI一键生成流程图架构图甘特图饼图等可视化图形 原创

AI脑图除了使用文字、语音、图片、文件、网页和视频等一键生成思维导图外,现在也可以支持一键生成流程图、架构图、甘特图等可视化图形了,使用非常简单,告诉AI脑图你想要生成什么图,大概不到两分钟就会制作好并以图片回复给你啦。 支持的可视化图形有: 流程图 例如向AI脑图…

Atcoder ABC398.F - ABCBA 题解 KMP的next函数

题目链接:https://atcoder.jp/contests/abc398/tasks/abc398_f 题目大意: 给你一个字符串 \(s\),要求在字符串 \(s\) 的末尾添加尽可能少的字符使其变成一个回文串。 解题思路: 首先,设输入的字符串为 \(s = s_1 s_2 \ldots s_n\),设字符串 \(s\) 翻转后的字符串为 \(s\)…

方法的定义和调用

//方法的应用 package Base; public class Demon16 { public static void main(String[] args) {// TODO Auto-generated method stubint max=max(10,10);System.out.println(max); } //比大小 public static int max(int num1,int num2) {int result=0;if(num1==num2) {System…

浅说线性差分和树上差分

目录线性差分正常思路差分思路二维差分的定义二维差分的解释例题1 地毯树上差分引入点差分例题1——wwx的出玩分析与解答例题2——松鼠的新家分析与解答边差分例题1——边差分模版分析与解答例题2——运输计划分析与解答 线性差分 当我们这里有\(n\)个数,现在我要对其中一段进…

Spring 事务失效

场景1:代码:执行结果:异常抛出,但是数据没有回滚。 代理对象调用 b() 方法 没有开启事务:普通对象调用a() 方法开启事务:在b() 方法上加入事务注解,开启事务就没问题:本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/18787133

征程 6X CAMSYS 性能测试方案介绍

1.性能测试方法原理 CAMSYS 其性能指标主要包括:帧率、延迟,以及系统的 DDR 带宽、CPU 占用率等。 对于帧率、延迟,通过在驱动中创建 trace event,分别记录通路上的每个 IP,每帧开始处理(frame_start)和结束处理(frame_end)的时间戳信息和帧信息,来实现帧率计算和延迟…

数据结构2

概率论与数理统计1-基本概念 概率论与数理统计2-基本数据结构 概率论与数理统计3-基本数据处理技术 基本的数据结构 - 数据结构- 数据的逻辑结构- 线性结构- 线性表- 栈(特殊的线性表)- 队列(特殊的线性表)- 字符串- 数组- 广义表- 非线性结构- 树型结构- 图型结构- 数据的存储…

day7 刷牛客华为机试题+学java

https://www.nowcoder.com/exam/oj/ta?page=1&tpId=37&type=37 字符串 第一题:第二题: 省行版:逻辑版:java网课学习: 多态调用成员变量,编译看左边,运行也看左边。调用成员方法时,编译看左边,运行看右边。if(a instanceof Dog d) 导包final 修饰引用类型地址…

【Docker】MySQL、Reids、Mongodb、Nacos、RabitMQ安装指南

1 docker的下载 建议通过 火绒应用商店 或者 联想应用商店 下载 2 配置Docker 配置镜像站 https://docker.1panel.live {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": fa…

Web前端入门第 22 问:CSS 选择器一览

HTML 在语法上并无大小限制,所以其结构可以浩瀚无边,CSS 选择器的作用则是在这些复杂的 HTML 结构中进行元素定位。 示例代码 记住此代码,后面所有的 css 选择器都是基于此代码。 注意:代码中存在两个一样的 id="p1" 元素,仅为了演示效果,正常编码中请保证 id …

曼哈顿距离和切比雪夫距离

曼哈顿距离(Manhattan Distance) 解释:只能横着或竖着走,坐标上两点的距离 假设存在两点 \(A(x_1, y_1)\) \(B(x_2, y_2)\) \(dis(A, B) = |x_1 - x_2| + |y_1 - y_2|\)对于上方求曼哈顿距离的式子,有四种情况 \( \begin{cases} x_1 > x_2 & y_1 > y_2 & {…