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

游戏逆向工具分析及解决方案

游戏逆向,是指通过各类工具对游戏进行反编译及源码分析,尝试分析游戏的实现逻辑的过程。这个过程需要使用解密、反编译、解压缩等技术,目的是还原或分析出游戏的代码逻辑及资源。

游戏逆向工具可以按照不同功能进行划分,如:动态调试注入工具 Frida ;静态分析工具 IL2CppDumper ;带有 APK 编辑、去除签名校验的功能 MT 管理器及内存修改工具 GameGuardian 修改器等等。

本文将通过案例对部分常见的游戏逆向工具实现原理进行分析,并提出解决方案。

◆ Frida

Frida 是一款动态插桩工具,可以将外部代码插入到原生 APP 的内存空间中,并进行动态调试与修改。

其注入原理是基于 ptrace 实现的,Frida 通过调用系统 ptrace 向游戏进程注入 frida-agent-xx.so 模块,通过这个模块与手机端安装的 frida-server 通讯,实现一系列分析与 hook 操作,如 hook 游戏中己方角色的攻击函数,实现“倍攻挂”等。

Frida 与 ida 联合调试APK

Frida 的配置环境简单、操作便捷,支持Java 层和 Native 层 hook 操作,并且使用 python、JavaScript 等 “胶水语言”,降低了逆向分析、作弊修改的门槛。

此外,Frida 拥有大量的变种及魔改版,如常见的 hluda-server 可以隐藏 Frida 特征,绕过传统的检测手段,加大检测排查难度。

◆ IL2CppDumper

众所周知,Unity引擎中有两种脚本编译器,分别是 Mono 和 IL2CPP 。IL2CPP 可以将游戏 C# 代码转换为 C++ 代码,然后编译为各平台 Native 代码。

在 IL2CPP 模式下,Unity 将 C# 代码中的类名、属性名、字符串等信息记录在 global-metadata.dat 文件,而 IL2CPP 启动时会从这个文件读取所需要的类名、属性名等信息。

破解者可使用 IL2CppDumper 解析 global-metadata.dat 文件,并将文件里的类名等字符串信息对应到 Native 代码中去,大幅降低了逆向分析难度。

逆向工具Zygisk-il2cppDumper界面及操作流程

随着对抗强度升级,Zygisk-IL2CppDumper 应运而生,可以在游戏运行过程中,动态dump函数名和函数偏移,绕过保护、加密以及混淆。

启动游戏后,会在目录下自动生成dump.cs,即使游戏有检测到异常闪退,也不影响dump.cs的获取。

Zygisk-IL2CppDumper采用github Action,仅需fork项目,填写包名等简单步骤就可逆向分析代码,极大程度降低了外挂、破解门槛。

◆ MT管理器

MT管理器是安卓平台上的逆向修改工具软件,拥有的双窗口文件管理和的 APK 编辑功能,可以高效地进行各种文件操作以及修改安卓软件。

MT管理器在获取 Root 权限后可访问系统目录,挂载文件系统为读写,修改文件权限和所有者。其主要功能为 APK 编辑,包含 DEX 编辑、XML 编辑、APK 签名、去除签名校验、RES 反资源混淆等。

MT管理器 Dex 编辑功能

以某游戏遇到的“内购破解”为例,破解者通过MT管理器去除游戏的签名校验,再搜索游戏支付渠道字符串进行定位,定位后用编辑功能篡改支付代码逻辑,最后进行重签名,就可实现无需付费即可购买游戏内的付费礼包。

破解者使用MT管理器实现内购破解

通过上述方式也可以对游戏内的人物攻击/血量/防御等数值进行修改,或对游戏胜负逻辑、付费逻辑进行篡改,从而制成带有一系列“变态”功能的破解版。

◆ GameGuardian修改器

GameGuardian,俗称GG修改器,可提供手动的内存搜索、修改功能,还支持脚本调用。调用脚本可实现定位、修改内存,达到自动破解的效果。

GG修改器调用lua脚本实现作弊功能

GG修改器的使用需要设备提供Root环境,哪怕Android 6.0后的系统不提供Root权限,破解者也会使用虚拟机、虚拟框架等模拟出Root环境,为修改器提供高权限。

除此之外修改器还具有反检测的功能,用来防止被游戏检测到,防护难度不言而喻。

GG修改器防检测功能演示

针对游戏面临的各类逆向攻击问题,FairGuard定制了一套成熟完善的解决方案,该方案已接入多款热门游戏并验证了出色的保护能力。

防破解功能

采用FairGuard业界独家技术「无API签名校验技术」,从底层出发,对游戏的引擎与代码进行加密处理,可以针对游戏包签名和文件完整性进行多重校验,防止游戏被植入恶意模块、剔除广告等。

反内存修改功能

针对游戏面临的内存修改风险,FairGuard潜心研发了「行为检测方案」,通过敏锐的智能感知系统,一旦检测到修改行为,可立即闪退,通杀各类修改外挂及其变种,做到有效防护。

主动识别恶意模块机制

区别于市面上其他安全产品,需要获取样本后进行外挂打击,FairGuard独家「主动识别恶意模块机制」对可疑模块进行主动识别,搭配在线打击功能做到主动防御,大幅缩短外挂排查周期。

反注入器功能

禁止使用Xposed、Frida等各种外挂模块注入器,防止注入后修改游戏内存等各种恶意行为,一旦发现立即闪退。

反调试功能

防止外挂作者对游戏进行调试,阻止对游戏的静态或动态分析,一旦发现立即闪退。

安全环境检测功能

不同于市面上其他产品,FairGuard加固采用更底层的检测手段,可精准识别虚拟框架、虚拟机、越狱、ROOT、云手机等各类风险环境,并提供个性化闪退策略。

相关文章:

  • Charles-ios无法抓包原因之一证书
  • 反射获取成员变量
  • 单片机按键处理模块
  • PostgreSQL的学习心得和知识总结(一百四十四)|深入理解PostgreSQL数据库之sendTuples的实现原理及功能修改
  • JZ2440笔记:rtc驱动
  • 修改wsl2默认配置使宿主机不能使用localhost或127.0.0.1访问WSL
  • 32. 【Java教程】集合
  • rtl8723DU移植 android4.4 4418
  • Go基础编程 - 03 - init函数、main函数、_(下划线)
  • 练习题-17
  • Spring IoC 的实现机制
  • Linux用户权限管理小实验002
  • C++牛客周赛43题目分享(3)小红平分糖果,小红的完全平方数,小苯的字符串变化,小红的子数组排列判断
  • 【云原生】kubernetes中的认证、权限设置--RBAC授权原理分析与应用实战
  • 虚拟机Ubuntu 22.04上搭建GitLab操作步骤
  • Docker入门(二) - Dockerfile
  • Java教程_软件开发基础
  • Twitter赢在开放,三年创造奇迹
  • v-if和v-for连用出现的问题
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • WePY 在小程序性能调优上做出的探究
  • 创建一种深思熟虑的文化
  • 高性能JavaScript阅读简记(三)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 让你的分享飞起来——极光推出社会化分享组件
  • 网页视频流m3u8/ts视频下载
  • 微服务框架lagom
  • 译自由幺半群
  • Semaphore
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • "无招胜有招"nbsp;史上最全的互…
  • #13 yum、编译安装与sed命令的使用
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)scrum常见工具列表
  • (转)大型网站架构演变和知识体系
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 8.0 发布到 IIS
  • .NET IoC 容器(三)Autofac
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @EnableConfigurationProperties注解使用
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [Android] Amazon 的 android 音视频开发文档
  • [Angular] 笔记 20:NgContent
  • [Angular] 笔记 7:模块
  • [C#]winform部署官方yolov10目标检测的onnx模型
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [CF407E]k-d-sequence
  • [DevOps云实践] 彻底删除AWS云资源