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

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

游戏逆向工具可以按照不同功能进行划分,如:动态调试注入工具 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、云手机等各类风险环境,并提供个性化闪退策略。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM的相关知识

一.JVM内存区域划分(JVM是一个Java进程) 一个进程运行过程中就需要重操作系统这里申请到一些内存资源 JVM也是如此,搞一大块内存,供Java代码执行时使用 JVM把这一大块内存又划分成不同的区域,分别代表不同的用途 各个…

Qt 5桌面APP开发实战

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 第一节:Qt 5桌面APP开发实战入门 Qt 5的跨平台特性 Qt 5的界面设计工具 Qt 5的…

Java基础语法规范

语法规范 public class HelloWorld{ //类名: 1. 首字母要大写 2. 源文件名与类名相同// 单行注释/* 多行注释除这两个之外还有文档注释。不重要* /public static void main (String[] args){ /* 1. main()⽅法是类体中的主⽅法,该⽅法从{开始到}结束…

商用未来何时来?软银揭示量子计算商业应用现状

内容来源:量子前哨(ID:Qforepost) 文丨沛贤/浪味仙 排版丨沛贤 深度好文:3000字丨10分钟阅读 摘要:软银(SoftBank)先进技术研究所正在积极推进量子计算商业应用,借助与…

在CentOS 8上卸载与安装MySQL 8的详细步骤

关键词:MySQL 8安装、CentOS 8、YUM源配置、卸载MySQL、MySQL残留文件删除、首次登录MySQL临时密码、服务状态检查、MySQL社区服务器 阅读建议:本文适合需要在CentOS 8操作系统上部署最新MySQL 8数据库的系统管理员或开发者阅读。文中步骤简洁清晰&#…

SpringBoot-世界杯足球赛网站-28567

Springboot世界杯足球赛网站 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对世界杯足球赛…

Pipecat: 创建语音对话agent的开源框架,支持多模态!

项目简介 pipecat 是用于构建语音(和多模态)对话代理的框架。诸如私人教练、会议助理、儿童讲故事玩具、客户支持机器人、摄入流程和尖刻的社交伙伴。 看看一些示例应用: 语音代理入门 您可以开始在本地计算机上运行 Pipecat,然…

Vue 菜单组件开发教程

在 Vue 项目中&#xff0c;我们常常需要构建各种菜单结构。下面就来详细介绍如何基于给定的代码来开发一个菜单组件。 组件部分 一、模板部分 <template> <template v-for"item in menuTree" :key"item._id"> <el-sub-menu v-if"i…

xss漏洞学习(题解)

1.简单知识点回顾 XSS允许恶意web用户将代码植入到提供给其它用户使用的页面中。 特点&#xff1a;能注入恶意的HTML/JavaScript代码到用户浏览器网址上&#xff0c;从而劫持会话 类型&#xff1a; DOM型&#xff1a;属于反射型的一种&#xff0c;利用非法输入来闭合对应的h…

胶原蛋白真的可以改善皮肤?

一、胶原蛋白与皮肤的关系 胶原蛋白&#xff0c;被誉为“骨中之骨&#xff0c;肤中之肤&#xff0c;肉中之肉”&#xff0c;是皮肤的重要组成部分。随着年龄的增长&#xff0c;人体内的胶原蛋白会逐渐流失&#xff0c;导致皮肤出现松弛、干燥、皱纹等问题。因此&#xff0c;补…

计算机tcp/ip网络通信过程

目录 &#xff08;1&#xff09;同一网段两台计算机通信过程 &#xff08;2&#xff09;不同网段的两台计算机通信过程 &#xff08;3&#xff09;目的主机收到数据包后的解包过程 &#xff08;1&#xff09;同一网段两台计算机通信过程 如果两台计算机在同一个局域网中的同…

便溏平衡的乐章:肾合指引出汗与便溏的微妙对话

平衡的乐章&#xff1a;肾合指引出汗与便溏的微妙对话 在人体的舞台上&#xff0c;汗水与大便扮演着不可或缺的角色。然而&#xff0c;当汗水如瀑布般倾泻&#xff0c;大便却变得稀软不成形&#xff0c;这背后或许隐藏着阳虚的密码。本文将带你探索这其中的奥秘&#xff0c;揭…

一个案例告诉你,MySQL如何查询今天、昨天、近7天、近30天、本月、上个月、本季度、上季度、本年、上一年数据

参考博客 mysql查询当天/昨天/近7天/近30天/本月/上个月/本季度/上季度/本年/上一年 数据 正文内容 创建测试案例&#xff08;也可直接使用附录MySQL脚本生成数据&#xff09; 1、新建测试表 CREATE TABLE example (id INT AUTO_INCREMENT PRIMARY KEY,date_column DATE,d…

C/C++开发,opencv-objdetect模块,CascadeClassifier人脸识别应用

目录 一、CascadeClassifier应用简介 1.1 objdetect模块 1.2 CascadeClassifier类 1.3 detectMultiScale函数详解 二、CascadeClassifier应用示例 2.1 模型及图片下载准备 2.2 程序代码 2.3 程序编译及运行 一、CascadeClassifier应用简介 1.1 objdetect模块 在OpenCV…

如何识别并选择正规、优质的外汇交易平台?

外汇市场的日益繁荣吸引了越来越多的投资者&#xff0c;但同时也带来了众多外汇平台的涌现。如何在这些平台中筛选出正规、可信的平台&#xff0c;成为了每位外汇交易者必须面对的首要问题。以下&#xff0c;我们将为您揭示如何鉴别外汇平台真伪的几个关键方法&#xff1a; 首先…

7个卖出信号出现,昂首资本立即盈利收场

在上篇文章中&#xff0c;我们和各位投资者讨论了如果使用匕首交易策略进行交易&#xff0c;但是如果只买进不卖出&#xff0c;是不是还是盈利不了&#xff1f;Anzo Capital昂首资本认为只有低买高卖才能盈利赚钱&#xff0c;只要发现盈利信号就要立即卖出盈利收场&#xff01;…

HTTP/超文本传输协议(Hypertext Transfer Protocol)及HTTP协议通信步骤介绍和请求、响应阶段详解;

目录 一、HTTP/超文本传输协议 特点和功能 请求-响应模型 版本和扩展 安全性和加密 二、HTTP协议通信步骤介绍 三、请求、响应阶段详解 HTTP请求 HTTP响应 示例 一、HTTP/超文本传输协议 HTTP/超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff09;是…

Spring Cache自定义序列化解决乱码问题

Spring Cache数据缓存到 Redis中的 value是乱码问题&#xff08;包含日期格式转换&#xff09;&#xff0c;主要是因为序列化方式导致的。 Spring Cache使用 Redis缓存管理器时&#xff0c;默认 value使用的是 JDK序列化值的方式&#xff0c;所以导致缓存的 value乱码的问题。 …

Java八股文面试全套真题

Java八股文面试全套真题 一、Redis1.1、你在最近的项目中哪些场景使用了redis呢&#xff1f;1.2、缓存穿透1.3、布隆过滤器1.4、缓存击穿1.5、缓存雪崩1.6、redis做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;&#xff08;双写一致性&#xff09;1.6.1、读…

nginx与nginx-rtmp-module安装

nginx与nginx-rtmp-module安装 画了好几天图&#xff0c;实在有些乏力&#xff0c;找点有意思的事情做做 觉得视频流传输挺有意思&#xff0c;B站找了些视频&#xff0c;但感觉有些大同小异&#xff0c;讲得不是很清楚 FFmpeg/RTMP/webRTC丨90分钟搞定直播逻辑-推流-流媒体服…