【游戏逆向】逆向基础之发包函数和线程发包

网络游戏是需要服务器的,这样才能玩家之间,服务器和玩家之间进行通信。

所以,我们的很多动作,都是要向服务器发包的,那么我们只要能够锁定正确的发包函数,就能很容易的通过调用关系找到该动作的函数,以实现调用的目的。

当然并不是所有动作都会发包,例如打开包裹,这样动作只要我们自己知道就可以了,不需要其他玩家或则服务器知道,那么就不需要发包。

API中有三大发包函数分别是

send sendto和WSASend

如果我们是游戏开发者,不考虑破解风险以及外挂风险的话,我们会毫不犹豫的选择其中之一使用。

因为谁也不想干些徒劳的事情,但是正如之前所说,网游都需要发包,那么外挂制作者都知道这一点,只要对这三个发包函数下断,几乎可以拿到所有想要的功能函数,所以,现在的游戏公司大多都会重新实现发包函数。

那么,重新实现的发包函数又怎么查找呢?其实并不困难

方法一,无论发包函数怎么重新实现,结构,特征都是不会发生太大的变化的,只要搜索其特征码即可,当然这样的工作量并不小,一是我们并不确定其所在的模块是什么?那么挨个实验?太苦恼了。二是我们不知道,他用的这三个中的哪一个,那么挨个实验?苦恼*2!

方法二,send sendto和WSASend三个函数内部都会调用更内层的系统函数WSPSend,那么我们只要找到WSPSend 就可以对其下断,然后返回到真正的发包函数了,WSPSend怎么找呢?我们可以找一个简单的程序,例如直接用send发包的函数,在send函数内的第一个虚表函数上下断,断下以后F7进去就是WSPSend了,是不是很简单呢?当然,这个函数也有可能被破坏或则下钩子之类的,那么特征吧。。。更内层函数吧。。。没有他法了。

方法三,通过人物喊话等频繁拷贝内存的动作,找到一些关键的缓冲区,而实现直接找到明文发包函数的位置,如果得到明文发包函数还是不够,通过明文发包正向追踪发包函数还是比较麻烦的,这个以后会专题讲解。

找到了发包函数,就万事大吉了吗?还没有,这只是第一关,还有第二关,找到了发包函数,有时候我们发现,他并不能断到功能函数,无论什么动作,堆栈返回都是一样的,怎么也返回不到功能函数,这种情况往往就是线程发包。

那么我们来看看线程发包又是怎样的情况

以图来说明

知道原理,处理方法就很简单了。

追踪包内容的来源或则改写发包标志位的位置即可,

因为标志位的改写和包内容的来源一定是线程以外的,只要找到这些位置,那么我们也必然是跳出了线程。那么所有功能函数唾手可得。

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

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

相关文章

【GEE实践应用】GEE下载遥感数据以及下载后在ArcGIS中的常见显示问题处理(以下载哨兵2号数据为例)

本期内容我们使用GEE进行遥感数据的下载,使用的相关代码如下所示,其中table是我们提前导入的下载遥感数据的研究区域的矢量边界数据。 var district table;var dsize district.size(); print(dsize);var district_geometry district.geometry();Map.…

基于卷积神经网络的中药识别(pytorch框架)【python源码+UI界面+前端界面+功能源码详解】

原作者链接:基于卷积神经网络的中药识别(pytorch框架)【python源码UI界面前端界面功能源码详解】_识别中药python-CSDN博客 //gitcode,gitee,飞桨,csdn,bilibili。几个有用网站,直接搜索即可,平…

软件质量保证计划书

1 概述 2 质量目标 3 项目基本情况 4 资源 4.1 人员 4.1.1 组织结构 4.1.2 职责 4.2 工具及设施 5 质量保证的主要工作 6 质量保证工作量估算 7 质量保证工作提交的产物 8 变更管理 9 评价标准 10 形成的记录 软件全资料获取进主页或者本文末个人名片直接获取。

keycloak - 鉴权VUE

目录 一、前言 1、背景 2、实验版本 二、开始干活 1、keycloak配置 a、创建领域(realms) b、创建客户端 c、创建用户、角色 2、vue代码 a、依赖 b、main.js 三、未解决的问题 目录 一、前言 1、背景 2、实验版本 二、开始干活 1、keycloak配置 a、创建领域(r…

大模型生成RAG评估数据集并计算hit_rate 和 mrr

文章目录 背景简介代码实现公开参考资料 背景 最近在做RAG评估的实验,需要一个RAG问答对的评估数据集。在网上没有找到好用的,于是便打算自己构建一个数据集。 简介 本文使用大模型自动生成RAG 问答数据集。使用BM25关键词作为检索器,然后…

WPS 不登录无法使用基本功能的解决办法

使用wps时,常常有个比较让人烦恼的事,在不登录的情况下,新建或者打开文档时,wps不让你使用其基本的功能,如设置字体等,相关界面变成灰色,这时Wps提示用户登录注册或登录,但我又不想登…

UTONMOS:AI+Web3+元宇宙数字化“三位一体”将触发经济新爆点

人工智能、元宇宙、Web3,被称为数字化的“三位一体”,如何看待这三大技术所扮演的角色? 3月24日,2024全球开发者先锋大会“数字化的三位一体——人工智能、元宇宙、Web3.0”论坛在上海漕河泾开发区举行,首次提出&…

【性能测试】接口测试各知识第2篇:学习目标,1. 理解接口的概念【附代码文档】

接口测试完整教程(附代码资料)主要内容讲述:接口测试,学习目标学习目标,2. 接口测试课程大纲,3. 接口学完样品,4. 学完课程,学到什么,5. 参考:,1. 理解接口的概念。学习目标,RESTFUL1. 理解接口的概念,2.什么是接口测试…

Mybatis plue(二) 扩展功能、插件功能

扩展功能 P12 扩展功能-代码生成器 方法一:mybatisplus官方文档中的代码生成配置 方法二:插件mybatsx 方法三:插件mybatisplus P13 DB静态工具 iservice中的方法是非静态的,db方法是静态的。 静态方法无法读取到类的泛型的…

2024年DeFi的四大主导趋势:Restaking、Layer3、AI和DePin

DeFi(去中心化金融)行业在2024年将继续呈现快速增长的势头,驱动这一增长的主要因素将是四大主导趋势:Restaking、Layer3、AI和DePin。这些趋势将推动DeFi生态系统的发展,为用户提供更多的机会和创新。 趋势1&#xff…

【Linux】第二个小程序--简易shell

请看上面的shell,其本质就是一个字符串,我们知道bash本质上就是一个进程,只不过命令行就是一个输出的字符串, 我们输入的命令“ls -a -l”实际上是我们在输入行输入的字符串,所以,如果我们想要做一个简易的…

Redis从入门到精通(五)Redis实战(二)商户查询缓存

↑↑↑请在文章头部下载测试项目原代码↑↑↑ 文章目录 前言4.2 商户查询缓存4.2.1 缓存介绍4.2.2 查询商户信息的传统做法4.2.2.1 接口文档4.2.2.2 代码实现4.2.2.3 功能测试 4.2.3 查询商户信息添加Redis缓存4.2.3.1 逻辑分析4.2.3.2 代码实现4.2.3.3 功能测试 4.2.3 数据一致…