NSSCTF doublegame题解

news2024/11/26 2:36:22

运行一下,是一个贪吃蛇游戏

先玩一玩,蛇的移动速度太快了,玩不了

查壳

 

64位文件,无壳

进入IDA分析

发现这个EXE文件是开了程序基址随机化,就是每次用IDA打开指令的地址不一样

我们要想使用x64dbg和IDA的时候,地址是一样的,就需要关闭随机化

使用工具:CFF Explorer

 Option Header

DllCharacteristics点击Click here 

 

将DLL can move的对勾去掉 

点击OK

点击Save

打开字符串窗口

跟进

交叉引用

 

 然后将光标放在函数名,交叉引用

 

 继续查看函数的交叉引用

 

从这个函数我们看到了flag的格式:HZCTF{md5(path)+score}

继续跟着函数的交叉引用找主函数 

 一直找到贪吃蛇游戏的函数

找不到可以多找几次

查看这个函数可以发现贪吃蛇达到多少分就可以通关 

 

有100和13371337

跟一下小于100的块的函数和数据

 请继续加油,发现不是100

验证发现是13371337,这就是flag中的score

而且从sub_14001136B开始跟踪,会发现进入了一个新的游戏

 

 

 

 

 这是一个迷宫游戏,上面给出了迷宫,下面是迷宫的移动控制ASDW

 把迷宫整理一下,@是玩家,*是小猫,右边有出口,路径应该是带小猫到出口的最短路

就是

dddddddssddwwwwwwddddssa

但是发现交了很多flag都不正确

我们可以动态调试一下这个程序,通过修改让游戏进行到小猫游戏,玩一下小猫游戏

第一种修改方式

我们可以记录一下小猫游戏函数的首地址0000000140012CF0 

贪吃蛇游戏的第一句

直接将贪吃蛇游戏的第一句汇编改为跳转到小猫游戏第一句

打开x64dbg

搜索贪吃蛇游戏第一句的地址 

 

 

 然后ctrl+P

修补文件

 输入一个新的名字保存

这种修改方式有点粗暴,所有界面初始化显示有点问题,但是不影响我们玩游戏

第二种修改方式

在判断贪吃蛇分数100的地方下断

 

调试发现我们只要把两个JLE改掉,就可以在贪吃蛇撞墙结束后直接进入小猫游戏

修改为

 

 

首先发现迷宫多了一个0

通过玩发现在运动的过程中迷宫有细微的变化,我们就可以动态找出正确的路径

通过score和path组合成flag

 

 

 

 

 

 

 

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

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

相关文章

Docker的基本操作

文章目录一、 Docker的基本操作1.1 镜像1.1.1 介绍1.1.2 镜像操作1.2 容器1.2.1 介绍1.2.2 容器操作1.3 数据卷1.3 介绍1.3.2 数据卷操作一、 Docker的基本操作 1.1 镜像 1.1.1 介绍 在 Docker 中,镜像(Image)是一种轻量级、可移植的、可扩…

营销平台一站式集成 高效实现自动化

市面上广告投放渠道渠道那么多,图文、动图、短视频等广告形式也越来越多,许多企业都会有这些疑问: 「腾讯广告、百度营销、巨量引擎哪个广告渠道的客户适合我们公司?」 「这么多广告渠道,哪家的点击率、转化率比较高…

1.Antlr4-简介入门

1.简介: ANTLR v4是一款功能强大的语法分析器生成器,可以用来读取、处理、执行和转换结构化文本或二进制文件。它被广泛应用于学术界和工业界构建各种语言、工具和框架。 2 关键字: import, fragment, lexer, parser, grammar, returns, locals, throw…

运维——记一次接口超时的问题与解决方法(HttpException: Read timed out)

前言:近期,一个线上的项目,请求出现了大量接口超时的问题,找了几个小时原因,最终发现是因为数据库服务器的磁盘满了,在此记录一下寻找的过程以及发现的问题,以备后续参考。 环境: 项目服务器(CentOS 64-bit 7.9) OpenJDK 1.8.0_272 数据库服务器(CentO…

打怪升级之FPGA组成原理(LE部分)

FPGA芯片逻辑单元的原理 不论你使用哪一款FPGA芯片,其核心可编程逻辑单元都是从一段内存种按顺序读取执行并执行的过程。具体来说,FOGA芯片内部包括可编程逻辑块(LAB)、可配置输入输出单元(IOE)、时钟管理模块、嵌入式RAM(BRAN,在Cyclone IV…

【堆的使用】【dfs构建数】二叉树遍历

二叉树遍历方法一:方法二:利用堆的性质原题链接 方法一: 利用dfs构建树 因为这个前序遍历给了我们空的叶节点 所以我们可以只根据叶节点 构建树 abc##de#g##f### 构建图如下 我们根据前序 abc##de#g##f### 发现 dfs左子树 和 右子树 当…

mac系统下使用clion调试redis源码

获取源代码 有两种方式,第一种是从官网下载 Redis 源码压缩包,如图 1-1 所示。 图1-1 将压缩包解压得到一个文件夹。 第二种方式,通过 git clone 获取源码。 从 Github 上,使用 git clone https://github.com/redis/redis.git…

第1章-JVM与Java体系结构

1、本系列博客,主要是面向Java8的虚拟机。如有特殊说明,会进行标注。 2、本系列博客主要参考尚硅谷的JVM视频教程,整理不易,所以图片打上了一些水印,还请读者见谅。后续可能会加上一些补充的东西。 3、尚硅谷的有些视频…

业务转包?行为不可控?企业外包如何保护数据安全?

出于人力、设备、开发成本等各种因素考虑,企业会把一部分业务外包出去,比如AI数据标注外包、IT外包、银行部分业务外包等。同时,随着企业不断向外包业务转移,保护数据安全和隐私已成为企业最为关注的问题之一。 来自国外的一份报告…

1.16 从0开始学习Unity游戏开发--人物控制

上一篇我们简单的做了一个玩家不动的情况下,如何控制准心来射击子弹,但是显然正常的游戏需要移动玩家本体,所以本篇我们需要补全这部分玩法所需的功能。 人物移动 在我们之前的篇章里面,讲解了如何通过物理引擎来实现物体的物理…

(学习日记)2023.4.11

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

360虚拟数字展厅vr全景展示实现高度开放空间的深度体验

随着VR虚拟现实技术的不断发展和普及,线上VR全景虚拟展厅逐渐成为了各行各业的展示和推广产品的重要手段之一。相比于传统的展览方式,线上VR全景虚拟展厅打破了许多传统展览的局限性 传统局限性: 1、重体验过于依赖线下,难以实现转…

CloudCompare如何使用基础功能?

文章目录0.引言1.File2.Edit3.Tools4.Display5.Plugins6.3D Views0.引言 CloudCompare是一款优秀的开源点云处理软件,在研究点云的过程中,会用到其中一些点云处理功能。为快速熟悉软件的基础功能,本文介绍相应的功能按键的作用。    1.Fil…

Nginx专题-基于多网卡的主机配置

文章目录Nginx 基于多网卡的主机实现一、虚拟机前置环境准备ifcfg-ens32配置文件的内容参考ifcfg-ens33配置文件的内容二、案例演示修改nginx.conf配置文件解决中文乱码Nginx 基于多网卡的主机实现 一、虚拟机前置环境准备 点击虚拟机右下角的 红色标框按钮,然后右键…

【GC垃圾回收算法】让内存垃圾无处藏身

文章目录概述垃圾对象的判定引用计数可达性分析回收垃圾标记清除复制算法标记整理分代回收概述 垃圾回收就是帮我们把不用的内存垃圾自动释放掉 什么是垃圾呢?就是指不再使用的垃圾 如果不进行垃圾回收就会导致一个严重的问题,内存泄漏 内存泄漏&#x…

【id:34】【20分】D. Point_Array(类+构造+对象数组)

题目描述 上面是我们曾经练习过的一个习题,请在原来代码的基础上作以下修改:1、增加自写的析构函数;2、将getDisTo方法的参数修改为getDisTo(const Point &p);3、根据下面输出的内容修改相应的构造函数。 然后在主函数中根据…

HTTP伪造

打开后是一个精美的页面,再精美也没啥用,先查看源码吧可以看到这里有个点击触发的a标签,点进去后提示我不来自https://Sycsecret.buuoj.cn,结合题目是HTTP,立刻就想到了HTTP请求头伪造抓包,本身是没有Refer…

ActiveMQ使用(一):在JavaScript中使用stomp.js

ActiveMQ使用(一):在JavaScript中使用stomp.js 1. 环境准备 jQuery-1.10 下载地址:https://www.jsdelivr.com/package/npm/jquery-1.10.2?tabfilesstomp.js 2.3.3: 下载地址:https://www.jsdelivr.com/package/npm/stompjs 2. 相关代码 <!DOCTYPE html> <html l…

东用科技路由器连接上云助手配置指导手册

一、上云助手操作步骤1.安装“Device control center”并启动。2.点击“服务器设置”后设置端口号&#xff1a;1-65535&#xff0c;传输协议&#xff1a;TCP/UDP。##路由推送功能默认不勾选。其功能为将填写的远端子网及掩码信息推送给客户端&#xff0c;客户端就会生成一条目的…

java反序列化 cc链1 分析

这里我是跟白日梦组长学习&#xff0c;果然大佬就是大佬&#xff0c;讲的是真好&#xff0c;按他的配置&#xff0c;我们来配置环境。 环境搭建 环境&#xff1a; java&#xff1a;java8u_65 commons-collections&#xff1a;3.2.1 这里逛了很多圈&#xff0c;说实在的真的没有…