Unity ab包如何加密

news2025/5/23 20:17:03

「ab包」全称为 AssetBundle ,是Unity提供的一种资源存储压缩包。其中储存了游戏的资源,如图片、模型、纹理、音视频、代码等文件。

由于ab包具有灵活储存、支持热更、包体较小且便于管理等优势,已经成为了市面上主流的游戏资源压缩方式。

ab包中图片、模型、视频等文件,是游戏的重要资源,如果被破解者或竞争对手解开,获取里面的内容,将会引发严重的竞品抄袭、知识产权受损问题。

《光环4》发生过美术素材被抄袭事件(上《光环4》;下《群星》)

此外,ab包被破解,也会对游戏运营产生严重影响。如一些内容驱动的游戏,ab包内会储存一些未上线的活动资源,如果被提前解开剧透,将会降低玩家的惊喜感与活动体验,对游戏的运营节奏产生负面影响。

在一些射击竞技类游戏中,游戏的资源材质被破解、篡改还会产生意想不到的外挂效果,会严重破坏游戏的公平性,导致玩家流失,厂商收益受损。

动图

某FPS游戏资源素材被破解出现了透视外挂

接下来,我们将重点分析,该如何对ab包进行加密。

市面上有不少针对ab包加密的方法,网上也能找到相关的加密文章,如雨松mono提供的方案,对整个资源做加密。

虽然满足了资源加密的需求,但这种方法的缺点非常明显,ab包占到游戏很大体积的比例,如果全部进行加密,对游戏的性能影响严重。

如何对游戏ab资源进行加密的同时,保证解密的消耗小,降低游戏性能负担,成了许多游戏的痛点。

对此,FairGuard研发团队花费大量时间,对unity引擎做黑盒分析,理清了Assetbundle的加载机理以及其文件结构,精心构造了一套加密方案:

首先,通过对Assetbundle文件进行结构解析,找到资源文件的核心文件块,对核心文件块进行加密。在游戏运行时,对unity引擎Assetbundle加载时机进行埋点,在埋点处对核心文件块进行解密。

这样构造方案既可以满足加密保护的同时,还具备运行消耗小的特点,解决了游戏资源加密的行业痛点,还有以下几个优点:

▶ 速度快,无感知

加密方案只对核心关键位置做加密处理,对游戏加载速度、运行流程程度的几乎没有影响,实现了无感知。

▶ 加密强度高

加解密算法进行了自定义混淆,让破解者无法分析出算法,算法流程图如下所示:

FairGuard算法流程图

▶ 兼容性高

通过 Android SO 加壳或 iOS 静态 hook 导入的纯 native 方案,兼容所有 32 位和 64 位指令集。

▶ 解密速度非常快

核心文件块很小,不随整个资源文件大小而变化。使用主流手机测试,300个资源文件一次性解密,额外增加的解密时间不到10ms。

对加密算法进行了高强度自定义混淆,混淆经过精心设计,在增加复杂度的同时,兼顾了效率,运行开销很小。

▶ 支持 Android / iOS / PC 三平台

▶ 操作便捷,接入成本低

使用非常简单,只要运行一个命令行即可完成对整个游戏资源的加密。

FairGuard Unity资源加密示意图

这个命令行对游戏资源加密的同时,也会对游戏内的脚本做 mono dll 加密或者il2cpp加密。

同时可根据配置选项,增加防破解反修改器反变速反调试反虚拟机反云手机等多项功能,对游戏进一步加固防护,可有效解决游戏面临的各项安全问题。目前,该方案已接入多款热门游戏并验证了出色的保护能力。

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

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

相关文章

李沐机器学习系列4---全连接层到卷积

1 从全连接到卷积 1.1 平移不变性 从概率分布的角度来看卷积的定义, f ( τ ) f(\tau) f(τ)是概率密度, g ( t − τ ) g(t-\tau) g(t−τ)是在这个分布下的均值 ( f ∗ g ) ( t ) ∫ − ∞ ∞ f ( τ ) g ( t − τ ) d τ (f*g)(t)\int_{-\infin}^{\infin}f(\t…

2024/01/02 每日AI必读资讯

减少LLM幻觉的方法 这篇论文总结了减少LLM幻觉的32种方法,包括RAG、微调模型,提示词工程等。 论文:https://arxiv.org/abs/2401.01313E5-mistral-7b-instruct:使用合成数据训练的Embedding模型 亮点是仅使用LLM生成的数据即可实现…

指令流水线的计算

我们需要知道以下公式: 设指令的条数为 n,指令执行需要 m 个阶段,时钟周期为 t 不采用流水线执行的时间:T1 n x m x t; 采用流水线执行的时间:T2 m x t (n - 1) x t; 加速比 S T1 / T2&…

PTA——逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。 输入格式: 每个测试是一个3位的正整数。 输出格式: 输出按位逆序…

MacOS M1/M2 Go Debug 配置

前言 换电脑,Go 环境带来一些麻烦,耽误很多时间,稍作记录。 原始电脑是 Mac 旧款,CPU x86 构型,新电脑 M2,因为旧电脑里本地文件很多,为了简化搬迁,还是用了 Mac 自带的迁移&#x…

LeetCoed刷题:21. 合并两个有序链表

题目: 是否独立解出:否 解题时的思路与想法:解题时有几个问题: 1.怎么遍历两个数组,嵌套两个while循环不能实现(后面通过看题解知道list1!null&&list2!null) …

旋转图像(LeetCode 48)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路参考文献 1.问题描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在「原地」旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示…

知虾分析——深入了解Shopee平台的知虾分析工具

Shopee是一家知名的电商平台,为了帮助卖家提高业务表现,他们提供了一款强大的数据分析工具——知虾分析。这个工具可以帮助卖家监控店铺的运营状况,优化销售策略,并提高整体的业务表现。本文将深入解析知虾分析的关键功能和用途&a…

LINUX加固之命令审计

一、前言 在LINUX安全范畴中,安全溯源也是很重要的一个环节。对主机上所有曾操作过的命令详细信息需要有一份记录保存,当系统遭受破坏或者入侵,拿出这份记录,可以帮助定位一些可疑动作。 很多系统通常都会配置安全堡垒机&#xff…

亚马逊站内广告位置在哪设置?怎么设置广告位置?-站斧浏览器

亚马逊站内广告位置在哪设置? 亚马逊提供了多种广告类型,包括: Sponsored Products(赞助产品):在搜索结果和商品详情页中展示。 Sponsored Brands(赞助品牌):在搜索结…

git提交操作(不包含初始化仓库)

1.进入到本地的git仓库 查看状态 git status 如果你之前有没有成功的提交,直接看第5步。 2.追踪文件 git add . 不要提交大于100M的文件,如果有,看第5步 3.提交评论 git commit -m "你想添加的评论" 4.push (push之前可以再…

weblogic中间件安装

1.下载jdk Java Archive Downloads - Java SE 6 下载jdk-6u45-linux-x64.bin 2.配置防火墙和SELINUX Redhat7操作系统配置防火墙,开放应用端口,例如7001; # firewall-cmd --permanent --add-port7001/tcp # firewall-cmd --reload 关闭selinu…

jmeter使用心得(一)

jmeter作为接口测试的常用工具之一,在我们的测试中经常会用到,往期的文章中,我们也分享过jmeter的各种功能和用法,基本覆盖了方方面面,可以满足各种接口测试的需求。但实际测试中我们也会发现,jmeter这么强…

设计模式——装饰模式(Decorator Pattern)

概述 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类&…

npm run start启动时提示 A decorated export must export a class declaration报错

问题描述: 基于react开发的项目在启动过程中,提示 A decorated export must export a class declaration报错,如下图所示: 解决办法: 上面是一个react hoc高阶组件,es6装饰器的语法是要包裹class组件的,所…

组合数学复习

2章-Pigeonhole Principle鸽子洞原理 A Theorem of Ramsey 考虑一个有趣的事实:任意6个人,其中至少有3个人互相不认识,或者互相认识可以将它用图论的语言进行描述:给一个K6(6个节点的完全图)的边涂上红色…

谷歌推出创新SynCLR技术:借助AI生成的数据实现高效图像建模,开启自我训练新纪元!

谷歌推出了一种创新性的合成图像框架,这一框架独特之处在于它完全不依赖真实数据。这个框架首先从合成的图像标题开始,然后基于这些标题生成相应的图像。接下来,通过对比学习的技术进行深度学习,从而训练出能够精准识别和理解这些…

Green Sock | GSAP 动画库

1.什么是“GSAP”? GreenSock Animation Platform(GSAP) 是一个业界知名的动画工具套件,在超过1100万个网站上使用,其中包括大量获奖网站! 您可以使用GSAP在任何框架中制作几乎任何JavaScript可以触及的动…

css开源库分享

你是否遇到过写css没灵感,写不出酷炫的效果,那这篇文章你一定要看完。知道这几个开源库,它能让你写出炸天的效果并且有效地增加你的摸鱼时长。 1.CSS Inspiration 网址: chokcoco.github.io/CSS-Inspira… CSS Inspiration 上面…

7.14解数独(LC37-H)

算法: 二维递归(递归时需要两层for循环) 一个for循环放行 另一个for循环放列 画树: 因为这个树形结构太大了,我抽取一部分,如图所示: 回溯三部曲: 1.确定函数参数和返回值 返…