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

news2024/12/25 13:01:06

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;		  // eax
	int v1;		  // edx
	int 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] BYREF
	char 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.coloradmin.cn/o/1640858.html

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

相关文章

String的深入时间比较器System/数学相关类

String的深入&时间&比较器&System/数学相关类 文章目录 String的深入&时间&比较器&System/数学相关类前言一、字符串String不可变1.1 String理解&赋值&存储1.2 String构造器&不同类型转换1.3 String常用API1.4 常见的算法题目(反转/字符排…

手机看广告项目2.0,单机版盈利30-50,提现马上到账

项目简介&#xff1a; 这个项目自去年起已经启动&#xff0c;虽然单台手机的日常盈利可能并不高&#xff0c;但通过在多台手机上运行&#xff0c;每天赚取三位数的收入相对容易。 该项目的优势在于可以随时操作&#xff0c;非常适合作为副业。 从项目准备到维护设备&#xf…

Pytorch学习笔记——TensorBoard的初使用

1、TensorBoard介绍 TensorBoard是TensorFlow的可视化工具&#xff0c;但它也可以与PyTorch结合使用。TensorBoard提供了一个Web界面&#xff0c;可以展示你训练过程中的各种信息&#xff0c;如损失值、准确度、权重分布等&#xff0c;更好地帮助开发者理解和调试模型。 Tenso…

css响应式布局左、右上、右中布局

一、布局效果 二、布局代码 <div class"parent"><div class"left">菜单</div><div class"right"><div class"right-top">顶部导航</div><div class"right-content"></div>…

RAG应用全流程

RAG全流程 前提训练一个语义模型&#xff08;高精度&#xff0c;低精度&#xff09;训练一个大模型一个知识库一个精度高知识向量库&#xff08;知识分割后输入高精度语义模型得到&#xff09;一个精度低知识向量库&#xff08;知识分割后输入低精度语义模型得到&#xff09; 应…

粗俗理解多层感知器

一、前言 参考资料和图片均来自以下链接&#xff1a;https://www.youtube.com/watch?vaircAruvnKk&listPLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pihttps://www.youtube.com/watch?vbfmFfD2RIcghttps://www.youtube.com/watch?vKuXjwB4LzSAhttps://www.youtube.com/watch?vIl…

C#知识|事件集中响应,多个按钮关联同一事件(实例练习)

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 本节学习窗体Controls集合、控件事件的统一关联及如何优化重复代码。 01 事件集中响应 原理&#xff1a;就是相同的控件&#xff0c;可以关联同一个事件响应方法。 02 示例演示 2.1、示例功能 该示例实现窗体中选择…

433M无线射频信号控制继电器--第三天

1.先sbit&#xff08;位地址访问p1^1,p1^2,p1^3口&#xff09; 当按下A键时D0输入高电平&#xff0c;继电器IO口导通&#xff0c;则接通电源或者灯亮 当按下C键时D1口输入高电平&#xff0c;继电器IO口为高电平&#xff0c;不导通 2.433m无线模块知识 433m无线模块基础知识 -…

容斥原理以及Nim基础(异或,SG函数)

容斥原理&#xff1a; 容斥的复杂度为O&#xff08;2^m)&#xff0c;所以可以通过&#xff0c;对于实现&#xff0c;一共2^n-1种&#xff0c;我们可以用二进制来实现 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long LL; cons…

奈氏准则和香农定理

一、奈奎斯特和香农 哈里奈奎斯特&#xff08;Harry Nyquist&#xff09;(左) 克劳德艾尔伍德香农&#xff08;Claude Elwood Shannon&#xff09;(右) 我们应该在心里记住他们&#xff0c;记住所有为人类伟大事业做出贡献的人&#xff0c;因为他们我们的生活变得越来越精彩&…

数字旅游以科技创新为核心竞争力:推动旅游服务的智能化、高效化,满足游客日益增长的旅游需求

一、引言 随着科技的飞速发展&#xff0c;数字旅游作为旅游业与信息技术结合的产物&#xff0c;正以其独特的魅力改变着传统旅游业的格局。科技创新作为数字旅游的核心竞争力&#xff0c;不仅推动了旅游服务的智能化、高效化&#xff0c;更满足了游客日益增长的旅游需求。本文…

挑战一周完成Vue3项目Day5:数据大屏+菜单权限+按钮权限

一、数据大屏 国内echarts镜像站&#xff1a;ISQQW.COM x ECharts 文档&#xff08;国内同步镜像&#xff09; - 配置项 echarts图表集&#xff1a;echarts图表集 1.数据大屏适配问题解决 &#xff08;1&#xff09;vw与vh单位解决适配问题 vw/vh&#xff1a;新增单位&…

顺序循环队列--c语言实现

#include <stdio.h> #include <stdlib.h> #include <stdbool.h>#define MAX_SIZE 100 // 假设队列的最大长度为100// 队列结构体 typedef struct {int data[MAX_SIZE]; // 存储队列元素的数组int front; // 队头指针int rear; // 队尾指针 } SeqQueue;// 初…

AI学习指南-专栏前言

前言 人工智能AI作为当下最火热的技术之一&#xff0c;我们每个人似乎都被动的置身于这场科技变革中&#xff0c;AI越来越多的出现在我们的身边&#xff0c;也总能听到这样的言论&#xff0c;例如“N年后AI会取代某某行业”&#xff0c;AI出现之后&#xff0c;好像大多数人都陷…

【研发日记】Matlab/Simulink避坑指南(十一)——Delay周期Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(六)——字节分割Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(七)——数据溢出钳位Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指…

图像分割模型实际分隔效果测试(Clipseg + GroundingDINO + Yoloworld)

✨背景 对于设计的工作流来说&#xff0c;智能图像分割也是一个很重要的课题&#xff0c;尤其是像照片换脸、照片高清写真等等的工作流&#xff0c;可能要多次把人物的脸部或者手部抠图出来进行合成&#xff0c;工作流如果可以直接智能分割图像并合成&#xff0c;就可以避免自…

20240503安装HEVC解码器播放H265格式的8K视频

20240503安装HEVC解码器播放H265格式的8K视频 2024/5/3 9:55 缘起&#xff1a;由于youtube支持8K视频了&#xff0c;想尝尝鲜&#xff01; 主摄像头当然是选择SONY的【夜摄/弱光场景】&#xff0c;根据优选&#xff0c;小米&#xff08;MI&#xff09;13Ultra 最佳了。 在开始播…

设计模式动态代理

什么是设计模式? 一个问题通常有n种解法&#xff0c;其中肯定有一种解法是最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 关于设计模式的学习&#xff0c;主要学什么&#…

项目管理-项目范围管理2/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 项目范围管理&#xff0c;过程 6个&#xff0c;包括“规收定 创确控”&#xff1a; 规划范围管理收集需求定义范围创建WBS确认范围控制…

JS 笔记9 认识JavaScript

相关内容&#xff1a;JS对象、属性、常用事件处理过程、运算符、if...else、for、…… <script type"text/javascript"></script> type属性用来指定MIME(Multipurpose Internet Mail Extension)类型&#xff0c;主要是告诉浏览器目前使用的是哪一种Scri…