当前位置: 首页 > news >正文

使用Cheat Engine与DnSpy破解Unity游戏

在这里插入图片描述

题目连接:

https://play.picoctf.org/practice/challenge/361?originalEvent=72&page=3

我们是windows系统,所以点击windows game下载游戏

在这里插入图片描述

双击运行pico.exe

在这里插入图片描述

屏幕上方的一串英文是叫我们找flag,我在这个小地图里走来走去也没flag,我上梯子后才发现突破点

在这里插入图片描述

墙外有一个旗帜,但是我们无法出去,有空气墙,我们碰到旗帜就应该能拿到flag了

目前能拿到flag的思路:

使用Cheat Engine控制人物的坐标,直接修改坐标值,强制出去
使用DnSpy修改程序代码,使一开始运行游戏的时候就显示flag

这两个方式我都会演示

Cheat Engine

Cheat Engine是一款用于修改计算机游戏运行时内存中数值的开源工具。它可以搜索和修改游戏中的各种数值,如生命值、金钱、经验值等等
下载地址:

https://www.cheatengine.org/

使用ctrl+alt+tab使游戏在后台运行,安装好Cheat Engine后双击运行

在这里插入图片描述

点击左上角的图标,导入我们的游戏进程

在这里插入图片描述

导入之后就要搜索我们要修改的值了,在unity中,玩家的坐标是浮点数,我们可以一直移动来找到坐标值

在这里插入图片描述

由于我们不知道坐标,scantype选择未知的值,valuetype选择浮点数,然后点击firstscan

在这里插入图片描述

可以看到,他扫描到了215168000个值,太多了,现在来慢慢筛选,点击scantype,选择增加值

在这里插入图片描述

然后回到游戏,我们向前走几步

在这里插入图片描述

然后回到Cheat Engine,点击nextscan

在这里插入图片描述

可以看到,值减少了很多,现在我们回到游戏,后退几步,回到Cheat Engine,选择减少值

在这里插入图片描述

点击扫描后又少了一些值,一直重复这几个动作

在这里插入图片描述

在这里插入图片描述

现在值减少到了6千多个,然后选择不变的值,点击repeat

在这里插入图片描述

点击nestscan

在这里插入图片描述

现在有400多个值,取消repeat,回到游戏,继续重复上面的动作

在这里插入图片描述

现在只剩下60多个值了,我们点击address然后右下角的图标

在这里插入图片描述

在最下面我们随便勾选几个值,代表着冻结,然后回到游戏看能不能移动,如果不能就慢慢筛选,直到找到坐标的值

经过一段时间的筛选后,发现这个值就是坐标值,一旦我冻结了他,回到游戏就无法移动

在这里插入图片描述

首先我们冻结这个值,然后双击,随便改一个值

在这里插入图片描述

注意别改太大了,大概这个值就能出去

在这里插入图片描述

现在解禁函数,我们走到旗帜前

在这里插入图片描述

出现了falg

picoCTF{WELCOME_TO_UNITY!!}

在这里插入图片描述

DnSpy

DnSpy是一款开源的.NET程序集反编译工具,它可以将.NET程序集反编译成可读性较高的C#代码或者IL代码。DnSpy不仅可以查看反编译后的代码,还可以编辑和调试.NET程序集,包括修改程序集中的变量值、方法等等

下载地址:

https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8

Assembly-CSharp.dll是unity的程序集,所以我们反汇编这个文件就好了

在这里插入图片描述

双击打开DnSpy,将Assembly-CSharp.dll拖入

在这里插入图片描述

在这里插入图片描述

在APTX里找到了一些有趣的函数

在这里插入图片描述

private void OnTriggerEnter(Collider collision)
{if (collision.gameObject == this.player){this.Mysterious.SetActive(true);}
}

如果玩家碰撞了这个对象,就会输出一些东西,这应该就是flag的触发方式了

在这里插入图片描述

在下面,可以看到游戏启动的函数名次Start

首先我们复制this.Mysterious.SetActive(true);这一行代码,然后右击APTX

在这里插入图片描述

在这里插入图片描述

然后右击我们创建的Start,选择编辑方法

在这里插入图片描述

然后进行修改,使一进入游戏就输出flag

在这里插入图片描述

在这里插入图片描述

ctrl+shift+s保存所有,双击打开游戏

在这里插入图片描述

一进去就能看见flag了

相关文章:

使用Cheat Engine与DnSpy破解Unity游戏

题目连接: https://play.picoctf.org/practice/challenge/361?originalEvent72&page3我们是windows系统,所以点击windows game下载游戏 双击运行pico.exe 屏幕上方的一串英文是叫我们找flag,我在这个小地图里走来走去也没flag&#xff…...

溯源取证-内存取证基础篇

使用工具: volatility_2.6_lin64_standalone 镜像文件: CYBERDEF-567078-20230213-171333.raw 使用环境: kali linux 2022.02 我们只有一个RAW映像文件,如何从该映像文件中提取出我们想要的东西呢? 1.Which volatili…...

Leetcode.100 相同的树

题目链接 Leetcode.100 相同的树 easy 题目描述 给你两棵二叉树的根节点 p和 q,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3…...

每个程序员都应该知道的8大算法

在编程开发中,算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示,可以像一系列基本操作一样简单,也可以像涉及不同数据结构和逻辑的多步骤过程一样复杂。 算法的主要目标是接收输入、处理它并提供预期的输…...

Nestjs实战超干货-概况-模块-Modules

模块 模块就是一个声明了装饰器Module()的类。装饰器Module()提供了元数据,以便让Nest组织应用程序结构。 每个应用程序至少有一个模块,即根模块。根模块是 Nest 用来构建应用程序图的起点,应用程序图是 Nest 用来解析模块和提供者关系和依赖…...

template

模板 模板注意事项 模板的函数体和声明一定要在一起,即放在同一个.h文件中,而不能将其分开到cpp和h文件中模板的编译技巧就是尽量多编译,模板很难查找错误模板的报错一般只有第一行有作用模板指定类型从左到右依次指定 模板推导 #pragma #…...

innovus中时序路径debug及命令使用详解?

写在前面:发现place结果所有与outport相关的timing check都找不到? 刚开始怀疑是sdc约束问题,check了input sdc文件及enc.dat/mmmc/mode/func.sdc 看一下是否设置了set_false_path.当然也可以用命令报出来: report_timing -unconstrained …...

C语言爱心代码大全集—会Ctrl+C就可以表白了

一、C语言爱心代码大全,会CtrlC就可以表白了! 博主整理了一个C语言爱心代码大全,里面有C语言爱心代码会动的动态效果和C语言爱心代码大全静态效果,只需复制粘贴就可以用啦! 1、动态C语言爱心代码效果图如下&#xff…...

python+vue+django耕地信息管理系统的设计与实现

基普通用户模块含有个人中心、耕地信息管理、转让许可申请管理、租赁许可申请管理等功能;普通管理员模块含有个人中心、用户管理、公示公告管理、耕地信息管理、耕地信息统计、转让许可申请管理、租赁许可申请管理、转让协议管理、租赁协议管理等功能;管…...

【云原生】Dockerfile制作WordPress镜像,实现compose编排部署

文章目录👹 关于作者前言环境准备目录结构dockerfile制作镜像yum 脚本Dockerfile-mariadb 镜像Dockerfile-service 镜像docker compose 编排提升✊ 最后👹 关于作者 大家好,我是秋意临。 😈 CSDN作者主页 😎 博客主页…...

五款好用又有趣的WIN10软件推荐

如果你想让你的电脑使用更方便、更有趣、更专业,那么你一定要看看这篇文章,因为我要给你推荐五款好用又有趣的WIN10软件 1.全局搜索——火柴 火柴是一款全局搜索软件,可以让你快速找到你想要的文件、程序、网页等,只需按下AltSp…...

朴素贝叶斯算法

# -*-coding:utf-8-*- """ Author: sunchang Desc: 代码4-7 朴素贝叶斯实现对异常账户检测 """ import numpy as np class NaiveBayesian: def __init__(self, alpha): self.classP dict() self.classP_f…...

【常见CSS扫盲雪碧图】从源码细看CSS雪碧图原理及实现,千字详解【附源码demo下载】

【写在前面】其实估计很多人都听过雪碧图,或者是CSS-Sprite,在很多门户网站就会经常有用到的,之所有引出雪碧图这个概念还得从前端加载多个图片时候页面闪了一下说起,这样给人的视觉效果体验很差,也就借此机会和大家说…...

Java多线程:ThreadLocal源码剖析

ThreadLocal源码剖析 ThreadLocal其实比较简单,因为类里就三个public方法:set(T value)、get()、remove()。先剖析源码清楚地知道ThreadLocal是干什么用的、再使用、最后总结,讲解ThreadLocal采取这样的思路。 三个理论基础 在剖析ThreadLo…...

96、数据的存储

运行实例: 在debug和release两种模式下,进行代码运行,debug下 i 的地址是大于arr[9] 的地址的,release 下i 的地址是小于arr[9] 的地址。原因是:release状态进行了优化处理。 C语言中基本的内置类型 整形数据类型 char …...

@EventListener注解详细使用(IT枫斗者)

EventListener注解详细使用 简介 EventListener是一种事件驱动编程在spring4.2的时候开始有的,早期可以实现ApplicationListener接口, 为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式;为的就是业务系统逻辑的解耦,提高…...

[c++17新增语言特性] --- [[nodiscard]]和[[maybe_unused]]

1 [[nodiscard]] 介绍和应用示例 [[nodiscard]] 是C++17引入的一个属性(Attribute),它用于向编译器提示一个函数的返回值应该被检查,避免其被忽略或误用。它可以被用于函数、结构体、类、枚举和 typedef 等声明上,表示如果函数返回值未被使用,或者结构体、类、枚举和 type…...

Centos7安装和使用docker的笔记

最近项目要求用容器部署,所以需要将docker的用法搞清楚,在操作过程中,积累了一些操作方法和技巧,作为笔记,为后面使用做个参考。 首先安装docker需要给centos增加源(参考https://www.runoob.com/docker/cen…...

结构像与功能像

导读现代神经成像技术使我们能够研究活体大脑的结构和功能。活体神经成像的益处是显而易见的,而且在基础和临床神经科学中,神经成像已经取得了巨大进展。本文概述了利用活体神经成像研究大脑结构和功能的工作和成就。介绍了几种不同类型的结构MRI成像方法…...

【IAR工程】STM8S基于ST标准库读取DS1302数据

【IAR工程】STM8S基于ST标准库读取DS1302数据✨申明:本文章仅发表在CSDN网站,任何其他网站,未注明来源,见此内容均为盗链和爬取,请多多尊重和支持原创!🍁对于文中所提供的相关资源链接将作不定期更换。&…...

【SpringBoot】实现后端服务器发送QQ邮件验证码的功能

步骤一、添加邮件相关依赖二、配置邮件服务器三、发送邮件PS&#xff1a;SMTP 发送失败的解决方案一、添加邮件相关依赖 在 pom.xml 文件中添加 JavaMail 和 Spring Mail 相关的依赖。示例代码如下&#xff1a; <dependency><groupId>com.sun.mail</groupId&g…...

vue在input中输入后,按回车,提交数据

vue在input中输入后&#xff0c;按回车&#xff0c;提交数据 1.展示效果如下&#xff1a; 2.代码展示&#xff1a; <div><el-input v-model"toAddNameText" keyup.enter.native"toAddName()" placeholder"回车&#xff0c;即新增该竖杆名称…...

【YOLOX】用YOLOv5框架YOLOX

【YOLOX】用YOLOv5框架YOLOX一、新建common_x.py二、修改yolo.py三、新建yolox.yaml四、训练最近在跑YOLO主流框架的对比实验&#xff0c;发现了一个很奇怪的问题&#xff0c;就是同一个数据集&#xff0c;在不同YOLO框架下训练出的结果差距竟然大的离谱。我使用ultralytics公司…...

【python机器学习实验】——逻辑回归与感知机进行线性分类,附可视化结果!

【python机器学习实验】——逻辑回归与感知机进行线性分类&#xff0c;附可视化结果&#xff01; 下载链接 下载链接 下载链接 可视化效果图&#xff1a; 感知机模型结果为例&#xff1a; 首先&#xff0c;我们有训练数据和测试数据&#xff0c;其每一行为(x,y,label)的形式…...

wps删除的文件怎么恢复

在办公中&#xff0c;几乎每个人都会用到WPS办公软件。它可以帮助我们快速有效地处理各种Word文档、ppt幻灯片、excel表格等。但有文件就会有清理&#xff0c;如果我们不小心删除了wps文件呢?那些wps删除的文件怎么恢复?针对这种情况&#xff0c;小编为大家带来一些恢复WPS文…...

NIO消息黏包和半包处理

1、前言 我们在进行NIO编程时&#xff0c;通常会使用缓冲区进行消息的通信&#xff08;ByteBuffer&#xff09;&#xff0c;而缓冲区的大小是固定的。那么除非你进行自动扩容&#xff08;Netty就是这么处理的&#xff09;&#xff0c;否则的话&#xff0c;当你的消息存进该缓冲…...

day018 第六章 二叉树 part05

一、513.找树左下角的值 这个题目的主要思路是使用广度优先搜索&#xff08;BFS&#xff09;遍历整棵树&#xff0c;最后返回最后一层的最左边的节点的值。具体的实现可以使用队列来存储每一层的节点&#xff0c;并且在遍历每一层节点时&#xff0c;不断更新最左边的节点的值。…...

如何下载ChatGPT-ChatGPT如何写作

CHATGPT能否改一下文章 ChatGPT 作为一种自然语言处理技术&#xff0c;生成的文章可能存在表达不够准确或文风不符合要求等问题。在这种情况下&#xff0c;可以使用编辑和修改来改变输出的文章&#xff0c;使其符合特定的要求和期望。 具体来说&#xff0c;可以采用以下步骤对…...

微策略再次买入

原创&#xff1a;刘教链* * *隔夜&#xff0c;比特币再次小幅回升至28k上方。微策略&#xff08;Microstrategy&#xff09;创始人Michael Saylor发推表示&#xff0c;微策略再次出手&#xff0c;买入1045枚比特币。此次买入大概花费2930万美元&#xff0c;平均加仓成本28016美…...

express框架

Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架. 创建一个基本的express web服务器 // 1.导入express const express require(express); // 2.创建web服务器 const app express(); // 3.启动web服务器 app.listen(80, ()>{console.log(expres…...