某游戏平台检测加速辅助案例分析

news2024/12/25 2:20:15

加速类辅助会对游戏平衡造成极大的破坏,这类辅助会通过HOOK api的方式来达到修改游戏对时间判断的目的,一般情况下,在R3层,这类辅助会在 QueryPerformanceCounter TimeGetTime GettickCount这三个API上HOOK,修改他们的返回值,本文章讲解一下某游戏平台对此类加速辅助的检测方法。
首先用pchunter看下游戏是否在以上三个API挂钩。

在这里插入图片描述
在该游戏中我们发现只对QueryPerformanceCounter进行了HOOK,我们用OD来看下他的代码(该游戏有简单的反调试,从上图可以看到DbgUiremoteBreakin 被挂钩。
在这里插入图片描述
函数头部被跳转到了游戏的检测DLL,跟随看看
在这里插入图片描述
Push esi是对esi压栈进行保存,与后面的pop esi对应
进入第一个call
在这里插入图片描述
头五个字节是对被HOOK的API头部进行还原,这个call其实就是对QueryPerformanceCounter的正常调用,
在这里插入图片描述
然后返回值给esi 再call 300E3BE 这个call应该是对数据的一系列检测,由于代码被VM导致无法正常阅读,这个问题不大,我们只需对原API头部进行还原就可以过掉这个检测,整个过程类似于传说中的CALL检测通过HOOK,检测调用数据判断是否合法。
当然单单还原API头部并不能完全过掉检测,为防止我们还原头部或者加速辅助HOOK该API,游戏对API头部做了字节校验,字节的改动会被检测到。
那么我们可以在API的头部下硬件访问断点,
在这里插入图片描述
下面有很多跳转,现在是没有改动头部的字节所以检测是按照正常流程走的,如果改动字节的话应该会跳到其他分支,我们F8往下走
在这里插入图片描述
可以看到周围有很多相似的代码,我们正常走下来的是3002B1B0与上个图一样,如果改动了字节则会跳转到周围的那些地方,
在这里插入图片描述
那个call ebx调用的是VirtualProtect 参数edi就是他检测的那个地址,往下走F7进入到call 30010FA的内部
在这里插入图片描述
[0x3000113D]保存的是VirtualProtect的地址,call esi 两次调用这个API,
在这里插入图片描述
Ebx是第一个参数的值,给eax,通过下面一个小循环依次把API前五个字节放到第一个参数的那个地址中,然后调用两次VirtualProtect 然后return
在这里插入图片描述
继续单步走
在这里插入图片描述
下面movzx eax, word ptr [esi] 后eax值始终是0x34,上面push edi 上面那句是xor ebx,ebx 对ebx清零,后面有 inc ebx 和cmp ebx,eax 很明显我可以得到
如果ebx小于等于 eax 就跳转到 300134E进行判断[edi+0x10]是否等于0 检测开始的情况下他是等于1的 所以进入call 30012B9到达我们刚开始下硬件断点的位置,完成一次检测 ebx就+1,edi+14 检测的API的数量一共是0x34个,[edi+10]对应每个API检测的开关,这时我们只需把每个[edi+10]的值写为0就可以过掉这个游戏对API HOOK的检测了。简单点也可以把这个je直接改成jmp,不过这么做会被游戏另外一个内存检测检测到。

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

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

相关文章

Java-黑马Java学习作业-day15面向对象进阶(抽象类接口内部类)

学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao 文章目录第一题:(抽象类求面积和周长)第二题:(接口实现新旧手机功能)第三题:(使用子类和匿名内部类调用接口…

大厂高薪测试在线讲解Jmeter全套性能测试

Jmeter进行性能测试基本包含如下基本过程:1)新增线程组创建测试线程组,并设置线程数量及线程初始化启动方式。2)新增 JMeter 元组创建各种默认元组及测试元组,填入目标测试静态资源请求和动态资源请求参数及数据。3&am…

Task9:Excel数据透视表

文章目录一 Excel数据透视表1 数据透视表2 切片器3 数据透视的注意事项4 透视表常用法二 Excel数据透视图一 Excel数据透视表 1 数据透视表 什么是透视表:把明细表分类汇总的过程,可以按照不同的组合方式进行数据计算使用场景: 1.大量数据&…

QT入门Buttons之QCheckBox

目录 一、界面布局介绍 1、布局器中的位置及使用 2、常用属性 二、属性功能介绍 1、常用信号 2、测试信号stateChanged(int) 3、组合框效果 三、Demo展示 此文为作者原创,转载标明出处! 一、界面布局介绍 1、布局器中的位置及使用 QCheckBox复选…

除了console.log,你还用过console其它的属性么?

目录前言console.infoconsole.debugconsole.errorconsole.warnconsole.time 和 console.timeEndconsole.group 和 console.groupEndconsole.table前言 刚学习前端的时候,vue还没用vue-devtools,react还没用 React Developer Tools,我们经常通…

fastjson 1.2.47 RCE漏洞保姆级复现

1.漏洞概述 Fastjson提供了autotype功能,允许用户在反序列化数据中通过“type”指定反序列化的类型,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时&…

Sklearn中的算法效果评估手段

我们曾在《算法效果评估:均方根误差(RMSE)/ 标准误差》一文中介绍过评估算法效果使用的主要方法:均方根误差(RMSE),但在实际应用中,评估算法效果还有更多内容,本文我们以…

VsCode安装及修改插件存储位置

【官网】: https://code.visualstudio.com/ 【修改插件仓库】: 创建名为VSCODE_EXTENSIONS的环境变量,内容指向自定义的文件夹即可(位置无需限制)。 【需要安装的插件】:

SBOM的介绍与syft和grype的使用

文章目录SBOM介绍工具syftgrypeSBOM介绍 SBOM(软件物料清单)是给定产品的中所有软件组件(专有和开源代码)、开源许可证和依赖项的清单。它提供了对软件供应链以及可能存在的任何许可证合规性、安全性和质量风险的可见性。 SBOM可…

Hystrix如何达到高可用

小型电商网站的页面展示采用页面全量静态化的思想。数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入Nginx服务器。用户浏览网站页面时,取用一个已经静态化好的html页面,直接返回回去,不涉及任何的业务逻辑处理。 用户每次浏览…

python输出不重复的字符

项目场景: 输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来。 如不重复的字符不到10个,则按实际数目输出。问题描述 输出一个字符串,包含字符串s最左边10个不重复的字符。不到10个…

Canal与Kafka数据传输协议protocol buffer

1.写在前面 实时数仓开发中,利用Canal伪装slave获取MySQL的增量数据,获取后的数据由Kafka生产者接收,交由Flink实时流计算。传输数据量较大时,会占用内存及带宽,所以考虑将数据序列化和反序列化操作,这里介…

KNN(K-近邻)算法

1、概述 KNN(K−NearestNeighbor)KNN \left( K-Nearest Neighbor \right)KNN(K−NearestNeighbor)是机器学习中最基础的算法之一。既可以用于分类也可以用于回归,KNNKNNKNN通过测量不同特征值之间的距离来进行分类。 2、实例理解 如果k3k 3k3,绿色圆点…

【Cocos新手入门】使用 cocos creator 创建单行文本输入框及多行文本输入框

本篇文章主要讲解使用 cocos creator 创建单行文本输入框及多行文本输入框,并绑定文本框获取文本输入数据的方法。 作者:任聪聪 日期:2023年2月2日 cocos引擎版本2.4.3 实际效果 单行文本效果、多行文本效果 说明:如果不清楚按钮…

jquery:表单请求、序列化+案例

表单请求提交原则name相同的表单提交,name出现多次,对应不同表单的值没有name,含有disabled(禁用)禁止提交多选单选下拉列表需要设置value属性才能取值表单提交事件名称写法描述提交方式method“get”get不安全取数据&…

30. 面向对象高级编程

1. __solts__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。 from types import MethodTypeclass Student:def __init__(self):passdef set_num(sel…

OSCP_VULHUB_Matrix3

文章目录简介扫描ida汇编ssh登录/提权简介 下载地址: https://download.vulnhub.com/matrix/Machine_Matrix_v3.ova 环境: VMware 16虚拟机软件 Matrix3靶机IP地址:192.168.132.145 Kali的IP地址:192.168.132.139 Matrix3靶机与…

Shiro基础知识与集成应用

1、Shiro可以完成: 【认证、授权、加密、会话管理】、与Web集成、缓存等2、特点: 易于使用、全面、灵活、强力支持Web、兼容性强、社区支持 外部观看内部观看3、 登录认证:1)身份验证:一般需要提供如身份ID等一些标识信息来表明登录者的身份,如提供email…

Druid(德鲁伊)数据库连接池

文章目录一.数据库连接池的必要性(一).传统数据库连接模式的的步骤(二).传统数据库连接模式存在的问题二.数据库连接池技术(一).数据连接池的思想:(二).数据库连接池的任务:(三).数据库连接池的规模:(四).工作原理:(五).数据库连接…

5 -【Faster R-CNN】之 AnchorGenerator 代码精读

【Faster R-CNN】之 AnchorGenerator 代码精读1、anchor 的 size 和 aspect_ratios2、计算以中心坐标为 (0, 0) 的 anchor3、将 anchor 映射到原图上4、代码汇总anchor 的作用:anchor 是用来做辅助计算的,用于和 (上节课说的,由RP…