【CTF Reverse】XCTF GFSJ0487 game Writeup(反编译+逆向工程)

game

菜鸡最近迷上了玩游戏,但它总是赢不了,你可以帮他获胜吗


解法

放进 exeinfope 中分析。

拖入 IDA 中。shift + f12 查看字符串。ctrl + f 搜索 flag。

DATA XREF: sub_45E940+28↑o

Function 中搜索 sub_45E940。

flag 应该是在这里算出来的:

将这段 c 伪代码魔改为 c++ 程序:

#include <cstring>
#include <iostream>
#define AUTHOR "HEX9CF"
using namespace std;int main() {int v0;		  // eaxint v1;		  // edxint v3;		  // [esp-4h] [ebp-168h]int i;		  // [esp+D0h] [ebp-94h]char v5[58];  // [esp+DCh] [ebp-88h] BYREF// char v5[3];		// [esp+DCh] [ebp-88h] BYREF// char v6[19];	// [esp+DFh] [ebp-85h] BYREF// char v7[32];	// [esp+F2h] [ebp-72h] BYREF// char v8[4];		// [esp+112h] [ebp-52h] BYREFchar v9[64];	// [esp+120h] [ebp-44h]int v10;		// [esp+160h] [ebp-4h]int savedregs;	// [esp+164h] [ebp+0h] BYREF// printf("done!!! the flag is ");v9[0] = 18;v9[1] = 64;v9[2] = 98;v9[3] = 5;v9[4] = 2;v9[5] = 4;v9[6] = 6;v9[7] = 3;v9[8] = 6;v9[9] = 48;v9[10] = 49;v9[11] = 65;v9[12] = 32;v9[13] = 12;v9[14] = 48;v9[15] = 65;v9[16] = 31;v9[17] = 78;v9[18] = 62;v9[19] = 32;v9[20] = 49;v9[21] = 32;v9[22] = 1;v9[23] = 57;v9[24] = 96;v9[25] = 3;v9[26] = 21;v9[27] = 9;v9[28] = 4;v9[29] = 62;v9[30] = 3;v9[31] = 5;v9[32] = 4;v9[33] = 1;v9[34] = 2;v9[35] = 3;v9[36] = 44;v9[37] = 65;v9[38] = 78;v9[39] = 32;v9[40] = 16;v9[41] = 97;v9[42] = 54;v9[43] = 16;v9[44] = 44;v9[45] = 52;v9[46] = 32;v9[47] = 64;v9[48] = 89;v9[49] = 45;v9[50] = 32;v9[51] = 65;v9[52] = 15;v9[53] = 34;v9[54] = 18;v9[55] = 16;v9[56] = 0;memcpy(v5, "{ ", 2);v5[2] = 18;memcpy(v5 + 3, "bwlA)|P}&|oJ1Sl^lT", 18);// qmemcpy(v6, "bwlA)|P}&|oJ1Sl^lT", 18);v5[3 + 18] = 6;// v6[18] = 6;memcpy(v5 + 3 + 19, "`S,yhn _uec{", 12);// qmemcpy(v7, "`S,yhn _uec{", 12);v5[3 + 19 + 12] = 127;v5[3 + 19 + 13] = 119;v5[3 + 19 + 14] = 96;v5[3 + 19 + 15] = 48;v5[3 + 19 + 16] = 107;v5[3 + 19 + 17] = 71;v5[3 + 19 + 18] = 92;v5[3 + 19 + 19] = 29;v5[3 + 19 + 20] = 81;v5[3 + 19 + 21] = 107;v5[3 + 19 + 22] = 90;v5[3 + 19 + 23] = 85;v5[3 + 19 + 24] = 64;v5[3 + 19 + 25] = 12;v5[3 + 19 + 26] = 43;v5[3 + 19 + 27] = 76;v5[3 + 19 + 28] = 86;v5[3 + 19 + 29] = 13;v5[3 + 19 + 30] = 114;v5[3 + 19 + 31] = 1;strcpy(v5 + 3 + 19 + 32, "u~");// strcpy(v8, "u~");string flag = "";for (i = 0; i < 56; ++i) {v5[i] ^= v9[i];v5[i] ^= 0x13u;flag += v5[i];}cout << flag << endl;//   v0 = sub_45A7BE("%s\n");// v3 = v1;//   sub_459AE9(&savedregs, &dword_45EC04, v0);//   return sub_458801((unsigned int)&savedregs ^ v10, v3);return 0;
}

输出:

zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

Flag

zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_others_are_n0t}

声明

本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规

博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C#语言入门

一、基础知识 1. 程序语言是什么 用于人和计算机进行交流&#xff0c;通过程序语言让计算机能够响应我们发出的指令 2. 开发环境 IDE&#xff0c;集成开发环境。它就是一类用于程序开发的软件&#xff0c;这一类软件一般包括了代码编辑、编译器、调试器、图形用户界面等等工…

MTEB - Embedding 模型排行榜

文章目录 关于 MTEBMTEB 任务和数据集概览使用 MTEB Pythont 库Installation使用 关于 MTEB MTEB : Massive Text Embedding Benchmark github : https://github.com/embeddings-benchmark/mtebhuggingface : https://huggingface.co/spaces/mteb/leaderboardpaper : https:/…

微信小程序的执行流程

1.首先会进入app.js 打开微信小程序首先会进入app.js,在app.js中会写入App()方法&#xff0c;App()接受一个object参数&#xff0c;用于指定小程序的生命周期等。App()方法有且仅有一个。 App()的object参数及其描述&#xff1a; onLaunch&#xff1a;监听小程序显示&#x…

【云原生】Docker 实践(五):搭建私有镜像 Harbor

【Docker 实践】系列共包含以下几篇文章&#xff1a; Docker 实践&#xff08;一&#xff09;&#xff1a;在 Docker 中部署第一个应用Docker 实践&#xff08;二&#xff09;&#xff1a;什么是 Docker 的镜像Docker 实践&#xff08;三&#xff09;&#xff1a;使用 Dockerf…

一机游领航旅游智慧化浪潮:借助前沿智能设备,革新旅游服务效率,构建高效便捷、生态友好的旅游服务新纪元,开启智慧旅游新时代

目录 一、引言 二、一机游的定义与特点 &#xff08;一&#xff09;一机游的定义 &#xff08;二&#xff09;一机游的特点 三、智能设备在旅游服务中的应用 &#xff08;一&#xff09;旅游前的信息查询与预订支付 &#xff08;二&#xff09;旅游中的导航导览与互动体…

Jupyter Notebook魔术命令

Jupyter Notebook是一个基于网页的交互式笔记本&#xff0c;支持运行多种编程语言。 Jupyter Notebook 的本质式一个Web应用程序&#xff0c;便于创建和共享文学化程序文档&#xff0c;支持实现代码&#xff0c;数学方程&#xff0c;可视化和markdown。用途包括&#xff1a;数据…

thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程

介绍 thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程 上门预约服务派单小程序家政小程序同城预约开源代码独立版安装教程 程序完整&#xff0c;经过安装检测&#xff0c;可放心下载安装。 适合本地的一款上门预约服务小程序&#xff0…

机器学习之基于Jupyter中国环境治理投资数据分析及可视化

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 机器学习之基于Jupyter中国环境治理投资数据分析及可视化项目是一个结合了机器学习和数据可视化技术的项目&#xf…

MySQL-数据缓冲池(Buffer Pool)

InnoDB存储引擎以 页 为单位管理存储空间&#xff0c;增删改查的本质就是访问页面。为提高查询效率&#xff0c;DBMS会占用内存作为缓冲池&#xff0c;在执行SQL之前&#xff0c;会将磁盘上的页 缓存到内存中的 缓冲池&#xff08;Buffer Pool&#xff09;后执行相关SQL语句。 …

【51单片机LCD1602显示矩阵键盘原始键值】2023-6-1

缘由https://ask.csdn.net/questions/7955623 #include "reg52.h" sbit LCD1602_RS P3^5;//RS端数据命令选择(H/L) sbit LCD1602_RW P3^6;//RW端读写选择(H/L) sbit LCD1602_EN P3^7;//EN端使能信号上升沿25ns void PanDuan1602(/*LCD1602忙判断*/) { LCD1602…

Webshell绕过技巧分析之-base64编码和压缩编码

在网络安全运营&#xff0c;护网HVV&#xff0c;重保等活动的过程中&#xff0c;webshell是一个无法绕过的话题。通常出现的webshell都不是以明文的形式出现&#xff0c;而是针对webshell关键的内容进行&#xff0c;混淆&#xff0c;编码来绕过网络安全产品&#xff0c;例如IDS…

docker系列9:容器卷挂载(下)

传送门 docker系列1&#xff1a;docker安装 docker系列2&#xff1a;阿里云镜像加速器 docker系列3&#xff1a;docker镜像基本命令 docker系列4&#xff1a;docker容器基本命令 docker系列5&#xff1a;docker安装nginx docker系列6&#xff1a;docker安装redis docker系…

百度地图推出「AI 导游」功能:限时免费 五一期间上线

​​​​​​ 分享一个AI工具、资料、课程资源平台&#xff1a;AI科技智库 百度地图推出了「AI 导游」功能&#xff0c;用户可以在景区使用手机打开百度地图&#xff0c;点击左上的「AI 导游」按钮即可使用。 这个功能可以提供智能讲解&#xff0c;根据用户的实时位置智能送景…

校园网访问云服务器IP地址大坑

问题 用云服务器配置入站规则时&#xff1a; 可以指定IP允许访问特定端口&#xff0c;比如说我就开放22和3306&#xff0c;但是千万别照搬网上的教程&#xff0c;把规则设置成0.0.0.0&#xff0c;就是允许所有IP访问的意思&#xff0c;我设置之后mysql就被删库勒索了。 然后想…

Golang | Leetcode Golang题解之第66题加一

题目&#xff1a; 题解&#xff1a; func plusOne(digits []int) []int {n : len(digits)for i : n - 1; i > 0; i-- {if digits[i] ! 9 {digits[i]for j : i 1; j < n; j {digits[j] 0}return digits}}// digits 中所有的元素均为 9digits make([]int, n1)digits[0]…

自动化滇医通

###我已经将数据爬取出来### 现在开源集合大家的思路一起研究 &#xff08;请更换ip 以及 暂停时间 不然会提示违规操作&#xff09; 脚本读取预约信息后开始随机抢一家的&#xff0c;qiang方法里面请自行修改抓包数据参数&#xff01;&#xff01; 现在开源大家一起讨论 pyt…

题目:吃奶酪

问题描述&#xff1a; 解题思路&#xff1a; 枚举每种吃奶酪顺序&#xff0c;并计算其距离&#xff0c;选择最小的距离即答案。v数组&#xff1a;记录顺序。 注意点&#xff1a;1. 每次用于min的s需要重置为0。 2. 实数包括小数&#xff0c;所以结构体内x,y为double类型。 3. 第…

【iOS】pthread、NSThread

文章目录 前言一、pthread 使用方法pthread 其他相关方法 二、 NSThread创建、启动线程线程相关用法线程状态控制方法NSThread 线程安全和线程同步场景 线程的状态转换 前言 五一这两天准备将GCD相关的知识完&#xff0c;同时NSOperation与NSThread、pthread也是相关知识&…

向量体系结构(4):多条车道内存组

笔记来源《计算机体系结构 量化研究方法》。 接着向量体系结构(2)讲&#xff0c;解决最后留下的问题中的两个问题 向量体系结构&#xff1a;向量执行时间-CSDN博客 &#xff08;1&#xff09;向量处理器如何实现每个时钟周期处理多于一个元素的能力? &#xff08;2&#x…

Hdfs小文件治理策略以及治理经验

小文件是 Hadoop 集群运维中的常见挑战&#xff0c;尤其对于大规模运行的集群来说可谓至关重要。如果处理不好&#xff0c;可能会导致许多并发症。Hadoop集群本质是为了TB,PB规模的数据存储和计算因运而生的。为啥大数据开发都说小文件的治理重要&#xff0c;说HDFS 存储小文件…