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

【Unity游戏破解】外挂原理分析

文章目录

  • 认识unity
    • 打包目录结构
  • 游戏逆向流程
  • Unity游戏攻击面
    • 可被攻击原因
      • mono的打包
    • 建议方案
      • 锁血
      • 飞天
      • 无限金币
      • 攻击力翻倍
    • 以上统称内存挂
      • 透视
      • 自瞄
      • 压枪
      • 瞬移
      • 内购破解
  • Unity游戏防御
    • 开发时注意数据安全
    • 接入第三方反作弊系统
    • 外挂检测思路
      • 狠人自爆
  • 实战
    • 查看目录结构
      • 用il2cpp dumper
    • 例子2-森林
    • who is he
  • 后记

认识unity

打包目录结构

在这里插入图片描述
dll一般很大,因为里面是所有的游戏功能编译成的二进制码

游戏逆向流程

开发人员代码被编译打包到GameAssembly.dll中

使用il2ppDumper工具,并借助游戏名
_Data\il2cpp_data\Metadata\global-metadata.dat恢复符号

使用IDA对该dII进行反编译

分析核心逻辑实现的代码(相对Mono困难)

根据分析结果对代码进行patch,实现某种变态功能.

Unity游戏攻击面

数值修改
锁血
飞天
无限金币
攻击力翻倍
离谱功能
透视
自瞄
压枪
瞬移
内购破解

可被攻击原因

Unity引擎打包方式成为了外挂开发的帮凶!

mono的打包

C# 是解释型的语言–支持反射-----这个缺陷,可以非常容易恢复打包的函数名,变量名

建议方案

锁血

CE来搜索数值,去确定血量的变量
然后把他固定

用IDA分析血量减(sub)的指令,给他nop掉,就不会扣血

飞天

管人物的高是z这个变量,不停修改人物处在的位置,CE 走坡,走底,锁定Z的变量

无限金币

数字修改,就是内存挂
大同小异,和前面的
去覆盖金币的变量

攻击力翻倍

找到攻击力是哪个变量,去更改攻击力

以上统称内存挂

内存就比如说无后,X特效,广角,不过内存都容易封

透视

去读内存里的数据

自瞄

去找人物的骨骼系统,把准星设置到骨骼就是自瞄了

压枪

看枪后座的实现,可能是一个浮点类型的变量,根据手按左键的时间影响弹道轨迹

瞬移

存在传送的功能,实现了一个传送的函数,调用了就可以

有的直接修改人物坐标

内购破解

找到联网支付的模块在那里,根据返回值判断是否购买,把相应的那一块做一下patch
这是以前的方法,比如滑雪大冒险一样的游戏

Unity游戏防御

开发时注意数据安全

接入第三方反作弊系统

TP
EAC(Easy Anti Cheat)
VAC(Valve AntiCheat)-----------CSGO用
Battleye Anticheat

easy-anticheat 好像是直接扫内存吧

在这里插入图片描述
在这里插入图片描述

外挂检测思路

符号混淆
变量值混淆
文件完整性校验
调试器检测、阻止调试器附加—无法动态分析了
检测内存编辑工具(Cheat Engine等)
基于签名的内存完整性检测
检测dII注入----常见,外挂都是写成个DLL
检测APIHook----比如透视,hook 一下图形API的函数,可以通过检测常用的函数是否被hook
封锁内存读写----不让在应用层读写内存,上驱动保护的那种
统计异常检测------统计一段时间内游戏崩溃多少次

狠人自爆

在这里插入图片描述

实战

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看目录结构

在这里插入图片描述
看到unityplayer

猜测打包方式,看Data里面猜测是il2cpp

用il2cpp dumper

把游戏拖进去

在这里插入图片描述
搜索getflag
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
用框架脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mono打包方式
在这里插入图片描述

例子2-森林

在这里插入图片描述
用il2cppDumper去分析

who is he

mono打包方式,就跟源码差不多
相当于看到源码
在这里插入图片描述

后记

推荐阅读:r3kapig:校园明星ctf 战队的奇幻养成之旅


🌸I could be bounded in a nutshell and count myself a king of infinite space.
 特别鸣谢:木芯工作室
特别鸣谢:木芯工作室 、Ivan from Russia


相关文章:

【Unity游戏破解】外挂原理分析

文章目录认识unity打包目录结构游戏逆向流程Unity游戏攻击面可被攻击原因mono的打包建议方案锁血飞天无限金币攻击力翻倍以上统称内存挂透视自瞄压枪瞬移内购破解Unity游戏防御开发时注意数据安全接入第三方反作弊系统外挂检测思路狠人自爆实战查看目录结构用il2cpp dumper例子…...

windows 关闭指定端口进程

1、首先打开cmd 注意要用管理员身份打开cmd,否则可能出现无权访问的提示。 2、输入以下命令(以端口号9098为例) 查看端口信息 netstat -ano | findstr 90983、输入以下命令关闭这个进程 taskkill -PID 39716 -F...

虚拟化系列教程:创建 KVM 虚机的几种方式

虚拟化系列教程:创建虚拟机的几种方式[TOC](虚拟化系列教程:创建虚拟机的几种方式)创建 KVM 虚机的几种方式使用 virt-install 命令创建虚拟机参数说明一般选项安装方法存储配置网络配置其它常用的选项图形配置设备选项虚拟化平台其它创建虚拟机的操作演…...

MacBook安装Golang Oracle数据库驱动程序

Golang连接Oracle 需要安装Oracle Full Client或Instant Client Oracle的Instant Client套件下载地址 #选择Instant Client for macOS (Intel x86)下载包如下: instantclient-basic-macos.x64-19.8.0.0.0dbru.zip instantclient-sdk-macos.x64-19.8.0.0.0dbru.zip instantcli…...

Elasticsearch 核心技术(七):IK 中文分词器的安装、使用、自定义字典

❤️ 博客主页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:大数据核心技术从入门到精通 文章目录一、安装 IK 分词器方式一:自行下载并解压安装包方式二:…...

【LeetCode】剑指 Offer(19)

目录 题目:剑指 Offer 36. 二叉搜索树与双向链表 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 36. …...

吐血整理,web自动化测试,POM模式搭建自动化测试框架(超级详细)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 POM设计模式 主要是…...

【数据库原理复习】索引 视图 sql语句

这里写目录标题视图视图特点视图定义优点索引相关sql三种索引区别解释视图 视图特点 只是虚表,并不实际存放数据,所有数据都来自于基本表建立在一个或几个基本表或视图之上基本表数据变化视图也随之变化只保存视图定义等之类东西 视图定义 # 定义视图…...

【HDFS】IPC重试

1、IPC重试和dfs.client.retry重试的区别2、IPC重试的相关参数汇总及含义3、 IPC重试相关源码、原理简单总结一句话: IPC重试是因为连接问题而进行重试; 客户端重试是因为RPC在服务端处理发生异常,客户端根据指定的策略进行重试。 接下来让我们深入一下源码,因为每一部分源…...

Revit导出CAD图纸操作及批量导出

一、Revit如何导出CAD格式图纸 1.打开Revit模型。 2.项目浏览器,图纸(全部),鼠标右键点击,新建图纸。 3.选择自己需要的图纸大小,点击“确定”,即可创建一张图纸。 4.找到想要导出的图纸标高或者立面,例如&…...

【批处理脚本】-3.4-goto命令详解

"><--点击返回「批处理BAT从入门到精通」总目录--> 共4页精讲(列举了所有goto的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,…...

超详细CentOS7 NAT模式(无图形化界面即最小安装)网络配置

在此附上CentOS7&#xff08;无图形化界面最小安装&#xff09;安装教程 超详细VMware CentOS7&#xff08;无图形化界面最小安装&#xff09;安装教程 打开VMware—>点击编辑---->选择虚拟网络编辑器 打开虚拟网络编辑器后如下图所示&#xff1a; 从下图中我们看到标…...

【可信平台】开证问题汇总--1.无采购入库记录,2.箱码无产出记录

这里面的问题主要有两类, 批号无采购入库记录箱码无产出记录批号无采购入库记录 第一个问题,以批号 W200263242022100600018 为例。 MES里入库明细里能查到可信平台集成报错: 入库数量>采购数量 再看下入库明细里的情况: 可信平台集成提示物料库存不存在。(没有入库记…...

RolePred: Open-Vocabulary Argument Role Prediction for Event Extraction 论文解读

Open-Vocabulary Argument Role Prediction for Event Extraction 论文&#xff1a;2211.01577.pdf (53yu.com) 代码&#xff1a;yzjiao/RolePred: Source code for EMNLP findings paper “Open-Vocabulary Argument Role Prediction for Event Extraction” (github.com) 期…...

【数据结构】链表相关题目(简单版)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; 初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是…...

通信原理 | FFT/STFT 你真的学会了吗?

文章目录 原理FFT的例子1必须要理解的点函数FFT返回值的数据结构具有对称性单边谱和双边谱变换后到频域后的横坐标和纵坐标是什么?FFT的例子2FFT的例子3短时傅里叶变换(STFT)原理 傅里叶告诉我们,现实中的任和信号波形都可以视为一系列正弦信号的叠加。 那对于一个给定的信…...

Qt使用API实现鼠标点击操作

前段时间,工作需要进行数据录入,每次都要点击3次按钮,想让鼠标自行点击,只要下位机接入,就自动点击按钮把数据读出,录入到服务端,并且进行检测,说干就干,没有经验,那只有面向百度编程. 根据查到的资料,可以使用WinAPI进行鼠标模似.可以使用的函数有两个,一个是SendMessageA(),…...

JavaWeb学习-Tomcat

常用的Web服务器 ①IIS&#xff1a;Microsoft的Web服务器产品为Internet Information Services &#xff08;IIS&#xff09;&#xff0c;IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一&#xff0c;很多著名的网站都是建立在…...

【蓝牙系列】蓝牙5.4到底更新了什么(2)

【蓝牙系列】蓝牙5.4到底更新了什么&#xff08;2&#xff09; 一、 背景 上一篇文章讲了蓝牙5.4的PAwR特征&#xff0c;非常适合应用在电子货架标签&#xff08;ESL&#xff09;领域&#xff0c; 但是实际应用场景中看&#xff0c;只有PAwR特性是不够的&#xff0c;如何保证广…...

js中window自带的四舍五入toFixed方法中的坑以及解决办法

Hello&#xff0c;各位&#xff0c;我胡汉三~啊呸&#xff0c;我又回来啦&#xff0c;还改了名&#xff0c;换了头像&#xff0c;哈哈哈&#xff01;时隔这么长时间不更新了&#xff0c;太忙了&#xff0c;平时笔记都记在了自己的电脑上&#xff0c;从今天起&#xff0c;继续更…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...