攻防世界reverse进阶区1分题总结_逆向之旅013

2023-10-28 20:59

本文主要是介绍攻防世界reverse进阶区1分题总结_逆向之旅013,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、Revering-x64Elf-100
  • 二、answer-to-everything
  • 三、tt3441810
  • 四、lgniteMe
  • 五、srm-50
  • 总结


前言

一、Revering-x64Elf-100

1.使用exeinfo查看程序,得知:64位的ELF文件
在这里插入图片描述
2.在ubuntu虚拟机上运行
在这里插入图片描述
发现字符串Incorrect password,以及Enter the password:
3.使用IDA中的String窗口(快捷键是shift+F12)查看字符串,然后根据字符串“Enter the password:”定位主函数,然后F5反编译得到下图
在这里插入图片描述
4.可以得知函数sub_4006FD 藏着我们需要的flag
在这里插入图片描述
然后呢,写个逆过程python脚本:

v = [ [68, 117, 102, 104, 98, 109, 102],[112, 71, 96, 105, 109, 111, 115],[101, 119, 85, 103, 108, 112, 116] ]
print(v[0][2])
print(v[1])
print(v[2])
f = []
for i in range(12):x = v[i%3][2 * int(i/3)] - 1f.append(x)
print(f)
flag = ""
for j in f:flag = flag + chr(j)
print(flag)

运行得到:
在这里插入图片描述

二、answer-to-everything

1.注意题目描述: sha1 得到了一个神秘的二进制文件。寻找文件中的flag,解锁宇宙的秘密。注意:将得到的flag变为flag{XXX}形式提交。
2.使用exeinfo查看然后运行
在这里插入图片描述
64位ElF文件,然后在ubuntu虚拟机上运行一下:
在这里插入图片描述
会输出“YOUSUCK”
3.用IDA打开,使用(Shift+F12)z字符串参考,找到YOUSUCK,然后定位到一个函数,然后F5:
在这里插入图片描述

4.然后再运行一下程序,输入42
在这里插入图片描述
此时注意到提示,然后结合题目描述中提到的SHA1,然后找个网站(https://1024tools.com/hash)把求出“kdudpeh”的sha1哈希值:
在这里插入图片描述
然后就得到了flag,注意将得到的flag变为flag{XXX}形式提交。

三、tt3441810

1.使用exeinfo查看
在这里插入图片描述
得知,这个文件是一个二进制文件,但是不能运行。然后我一开始也比较懵,最后不想做这种题,就找了个博客看了以下解法,我把链接贴上:
https://www.cnblogs.com/DirWang/p/11491914.html

四、lgniteMe

1.exeinfo
在这里插入图片描述
32位 exe文件、然后运行一下:
在这里插入图片描述
2.使用IDA,定位到主函数(名字就是main,比较好找),然后F5


int __cdecl main(int argc, const char **argv, const char **envp)
{int result; // eaxsize_t i; // [esp+4Ch] [ebp-8Ch]char v5[8]; // [esp+50h] [ebp-88h] BYREFchar Str[128]; // [esp+58h] [ebp-80h] BYREFprint_str((int)&unk_446360, "Give me your flag:");((void (__stdcall *)(

这篇关于攻防世界reverse进阶区1分题总结_逆向之旅013的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295904

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert