BUUCTF靶场 [reverse]easyre、reverse1、reverse2

工具:

DIE:下载:https://download.csdn.net/download/m0_73981089/89334360
IDA:下载:https://hex-rays.com/ida-free/

[reverse]easyre

首先查壳,用DIE看程序信息,看到无壳且是64位的程序,用其相应的IDA打开

用IDAx64打开,查看源码,点开主函数(main)

 发现界面是直接由flag字眼,直接点开

 便得到flag

 

 

[reverse]reverse1

拿到文件,先查壳,用DIE根据下图,可以判断该程序无壳,且程序也是64位

 将其用IDA64位打开进行反汇编

看主函数(main)这里是main 0,打开便看到汇编码显眼的flag字眼

还看到这个{}非常像flag

 但是不是

回滚到看到显眼flag字眼:

我是小白😳,看的有点困难😅,直接再此界面看伪代码(按F5键)

 有点编程小基础应该能猜到红色框是输出printf(print),黄色框框应该是输入scanf

而Str1是我们所需要输入的内容,点开Str2,发现是 {hello_world}字符串

再分析上端代码

大概意思是:

用for循环来遍历Str2这个字符串,如果超过Str2长度则跳出循环,如果再Str2能找到ASCII码为“111”,则把其替换为ASCII码为“48”的字符

 如果不记得ASCII码可以选中ASCII码键盘按“R”键,会显示ASCII对应的字符,如图

 那这样就大概知道了,只需要把Str2“ {hello_world}”的o替换为数字0,则是本题的flag

提交成功啦!!! 

[reverse]reverse2

刚开始我将文件用010 editor打开,发现了一串很像flag的字符串

输进去,我以为我以为意外解,哇趣,不对,骗人! 

仔细想想,这是一道逆向题,不用任何相关文件就能解出flag概率还是很小的 😳

回归正题:

老规矩,先查壳,用DIE工具,没有壳,程序为64位

 还是用IDAx64位打开,进行反汇编

还是先查看主函数的汇编代码,大致看了一下,也看到flag的字眼 

(看不懂汇编代码的可以跟我操作哦)所以我们先查看伪码(按F5),慢慢分析

s2是我们需要输入的但是flag我们不知道,点击flag进行查看:

看来flag是{hacking_for_fun},等等先别急,我们代码还没有分析呢

输入输出由一些些C语言基础或者C++基础应该是可以看懂的,这里就不过多解释啦

直接看条件

大概意思是:

如果pid不为空,则会执行waitpid这个函数(此不是我们需要重点抓住的),看后边,如果pid为空则for循环遍历flag这个字符串,如果flag上的字符加上从0到其长度的等于ASCII码为105或者114,则改为ASCII码为49

(是不是上一题很像啊,嘻嘻~)

如果不知道ASCII码是不是可以选其ASCII码然后按(R)键

更加一目了然啦!!! 

所以最终的flag是将原本的flag“{hacking_for_fun}”所含有“i” 和 “r”字符替换为数字“1”,这样就可以拿到本题的flag啦!!!

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

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

相关文章

如何理解HTML语义化

如何理解HTML语义化 HTML语义化,简单来说,就是使用HTML标签来清晰地表达页面内容的结构和意义,而不仅仅是作为布局的容器。它强调使用具有明确含义的HTML标签来描述页面元素,而不是仅仅依赖CSS来实现页面的外观和布局。 理解HTM…

android 权限相关定义解释

1 PID :程序一运行系统就会自动分配给进程一个独一无二的PID,内部线程可以共享 该pid的分配的内存数据 2 UID:User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理。内部共享各…

【oracle003】图片转为字节、base64编码等形式批量插入oracle数据库并查询

1.熟悉、梳理、总结下Oracle相关知识体系 2.欢迎批评指正,跪谢一键三连! 资源下载: oci.dll、oraocci11.dll、oraociei11.dll3个资源文件资源下载: Instant Client Setup.exe资源下载: oci.dll、oraocci11.dll、oraoc…

Vue ref访问这些元素或组件的实例

可以在任意DOM元素上使用ref属性&#xff0c;然后在Vue实例中通过this.$refs访问这个DOM元素 1.访问子组件实例&#xff0c;可以调用方法或者获取值 <template><div><input type"text" ref"myInput" /><button click"focusInp…

ubuntu手动替换源后,更新源时提示“仓库.... jammy Release“ 没有Release文件

问题如图所示&#xff0c;由于问题不好定位&#xff0c;我就从替换源&#xff0c;以及解决错误提示这两个步骤&#xff0c;来解决其中可能存在的问题。 1、替换源 这一步骤&#xff0c;网上的资料可以搜到很多&#xff0c;我跟着做了之后&#xff0c;总会冒出来各种各样的小问…

皮影戏艺术品3D沉浸式展馆提供非同一般的趣味体验

引领艺术展示的未来&#xff0c;深圳华锐视点融合多年的web3d项目制作经验&#xff0c;倾力打造3D虚拟艺术品展馆在线编辑平台&#xff0c;为您提供一个超越时空限制的线上艺术展示平台。 一、极致视觉盛宴 我们拥有领先的美术团队&#xff0c;运用先进的web3D开发技术&#xf…

可能是最适合PS的AI插件,设计师大救星!StartAI初体验!不是恰饭

这款软件虽然有一些功能需要完善&#xff0c;比如&#xff1a; 1&#xff1a;生成图片产品海报&#xff0c;会出现图随意出现&#xff0c;跟设计图起冲突&#xff0c;需要PS才可以正常使用它。 2&#xff1a;即使开会员也需要排队生成。 3: 还有&#xff0c;会员没有更加好用的…

vue3结合element-plus之如何优雅的使用表单组件

背景 在日常开发中,我们会经常使用 element-ui 或者是 antdesign 或者是 element-plus 等组件库实现搜索功能 这里就需要用到相关表单组件 下面就以 element-plus 为例,我们实现一个搜索功能的组件,并且随着屏幕尺寸的变化,其布局也会跟随变化 最终大致效果如下: 这里…

详解VLSM技术

在现代网络设计中&#xff0c;如何高效地分配和管理IP地址是一个关键问题。传统的子网划分方法虽然简单&#xff0c;但在实际应用中常常导致IP地址的浪费。为了应对这一问题&#xff0c;VLSM&#xff08;Variable Length Subnet Mask&#xff0c;可变长子网掩码&#xff09;技术…

C++:set和map的底层封装模拟实现

目录 底层对比&#xff1a; 底层红黑树结构和set、map&#xff1a; 底层模拟&#xff1a; 传值调用&#xff1a; 迭代器&#xff1a; operator &#xff08;&#xff09; find函数 operator&#xff08;&#xff09; 、仿函数 set和map的仿函数 &#xff1a; 图解&a…

地平线-旭日X3派(RDK X3)上手基本操作

0. 环境 - win10笔记本 - RDK X3 1.0&#xff08;地平线旭日X3派&#xff0c;后来改名为代号RDK X3&#xff09; 1. 下载资料 https://developer.horizon.ai/resource 主要下载镜像 http://sunrise.horizon.cc/downloads/os_images/2.1.0/release/ 下载得到了 ubuntu-prei…

vs无法打开或包括文件”QTxxx“

vs创建项目时默认引入core、gui、和widgets等模块&#xff0c;在需要网络通讯或者图表等开发时需要添加相应模块。 点击扩展 -> QT VS Tools -> QT Project Setting->Qt Modules&#xff0c;添加相应模块即可

linux自动部署项目的脚本(从git中拉取并执行)

名字&#xff1a;bootStart.sh ​#!/bin/sh #记事本打开&#xff0c;修改编码格式为utf8&#xff0c;可解决上传centos后中文乱码问题 echo echo 自动化部署脚本启动 echo echo 停止原来运行中的工程 APP_NAME项目名 # 查询系统中正在运行的项目进程&#xff0c;并停止进程 …

Ubuntu系统版本查看办法

Ubuntu系统版本查看办法 1. 使用 lsb_release 命令2. 查看 /etc/issue 文件3. 使用 hostnamectl 命令4. 查看 /etc/os-release 文件5. 查看内核版本6. 使用 neofetch 命令&#xff08;如果已安装&#xff09;总结 在 Ubuntu 操作系统中&#xff0c;查看当前系统版本的详细信息可…

头歌05-排列树实验-旅行商问题

""" 题目&#xff1a;设有n个城市组成的交通图&#xff0c;一个售货员从住地城市q出发&#xff0c;到其它城市各一次去推销货物&#xff0c;最后回到住地城市。 要求&#xff1a;假定两个城市a&#xff0c;b 从a到b的路程花费w_ab是已知的&#xff0c;问应该怎样…

奇瑞控股携手契约锁推动客户、供应商及内部业务全程数字化

奇瑞控股集团是安徽省排名第一的制造业企业&#xff0c;同时入选中国企业家协会发布的中国500强、《财富》中国500强&#xff0c;连续21年位居中国品牌乘用车出口第一。 面对汽车行业“新四化”主题及“数字化”时代变革&#xff0c;奇瑞控股持续创新求变&#xff0c;率先引入电…

WIndows常用辅助工具命令

文章目录 目的pingnbtstatnetstattracert工作原理应用方案ipconfig作用arp作用at作用nslookup作用net作用格式用法ftp作用参数说明telnet作用参数说明tasklist作用参数说明结合筛选器目的 主要是整理windows 下常用cmd命令, 方便我们调试, 分析, 定位解决工程项目中遇到问题…

Java18的新特性介绍

一、概况 Java 18是Java编程语言的最新版本&#xff0c;它于2022年9月发布。Java 18引入了许多新特性和改进&#xff0c;以下是其中一些重要的新特性。 元编程功能&#xff1a;Java 18引入了元注释和元类型声明的功能&#xff0c;使开发人员能够在编译时对注解进行元处理。这为…

【C++】位图/布隆过滤器+海量数据处理

目录 一、位图 1.1 位图的概念 1.2 位图的实现 1.3 位图的应用&#xff08;面试题&#xff09; 二、布隆过滤器 2.1 布隆过滤器的引入 2.2 布隆过滤器概念 2.3 布隆过滤器的插入和查找 2.4 布隆过滤器的实现 2.5 布隆过滤器的优点和缺陷 2.6 布隆过滤器的应用&#…

Servlet 的 API

HttpServlet init&#xff1a;当 tomcat 收到了 /hello 这样的路径是请求后就会调用 HelloServlet&#xff0c;于是就需要对 HelloServlet 进行实例化&#xff08;只实例一次&#xff0c;后续再有请求也不实例了&#xff09;。 destory&#xff1a;如果是通过 smart tomcat 的停…