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

news2024/11/28 0:46:41

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

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

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

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

send sendto和WSASend

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

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

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

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

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

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

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

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

以图来说明

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

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

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

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

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

相关文章

Springboot整合tess4j+tesseract实现OCR(文字识别),最新教程!

前言 不用引入什么dll,以及各种乱七八糟的东西。不废话,直接开始教程!没有过多讲解里面的知识点,如有需要详细了解请加Qq:1101165230 1、Linux下安装与使用 1.1 安装tesseract(复制粘贴敲回车,中间输入Y&…

王权与自由国际服测试资格申请 王权与自由steam国际服预约教程

《王权与自由》是一款由《剑灵》开发商NCsoft公开的旗下大型多人MMORPG新作游戏作品。攻城战,这是游戏中的一个重要玩法,主要分为攻城方和防守方。攻城方需要占领外城的遗址,并利用高轮(包括碎石机、跳跃者和战斗航母)…

JavaEE初阶之单例模式详解

目录 题外话 正题 单例模式 概念 优点 缺点 饿汉式单例模式 代码及详解 懒汉式单例模式 代码及详解 小结 题外话 昨天爬山去了,回来吃了个烧烤有点累,昨天旷了一天,每周稳定发个五篇文章是没什么太大问题的 正题 单例模式 概念 是一种常见的软件设计模式,确保一个类…

2024/4/2—力扣—栈的最小值

代码实现: typedef struct node {int val;struct node *next; } Node;typedef struct {struct node *top;int min; } MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj malloc(sizeof(*obj));obj->top NULL;ob…

ArcGIS Server 安装教程

​​​​​​​ 一、环境与文件准备 1.软件环境 已安装arcgis Desktop 10.2 2.安装及授权文件 二、安装步骤 1.下载安装包和授权文件,解压后打开ArcGIS Server10.2文件夹,打开ESRI.exe。 2.点击ArcGIS for Server后的Setup,开始安装。 3.…

scratch绘制六芒星图 2024年3月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

目录 scratch绘制六芒星图 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、实现流程 1、案例分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …

[C++][算法基础]模拟堆(堆)

维护一个集合,初始时集合为空,支持如下几种操作: I x,插入一个数 x;PM,输出当前集合中的最小值;DM,删除当前集合中的最小值(数据保证此时的最小值唯一)&…

基于springboot的充电桩管理系统 (含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的充电桩管理系统1拥有三种角色:管理员、用户和维修人员 管理员:用户管理、充电桩管理、报修管理、类别管理、充电常识管理等 维修人员&#xff…

网易邮箱删除指定邮箱

一、 背景: 我们平时经常会收到很多恶意或者一些不重要的邮件,并且经常会堆满邮箱,导致看邮箱的时间一堆未读邮件,手动删除一些不重要的邮件需要一个一个的去点击,并且还要去判断是指定的发件人的邮件,像…

解决Xshell连接不上虚拟机

相信有很多同学和我一样遇到这个问题,在网上看了很多教程基本上都先让在虚拟机输入ifconfig命令查看ip地址,弄来弄去最后还是解决不了😭😭,其实问题根本就不在命令上,很大概率是我们的虚拟机没有开启网卡&a…

2024/4/2—力扣—最小高度树

代码实现: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

【SpringBoot整合系列】SpringBoot整合FastDFS(一)

目录 FastDFSFastDFS特点相关概念的介绍Tracker ServerStorage Server FastDFS环境搭建【CentOS 7】环境准备安装gcc和libevent上传安装包安装libfastcommon安装FastDFS拷贝配置文件到指定位置tracker配置storage配置client测试上传文件安装fastdfs-nginx-module模块到nginx第一…

9.java openCV4.x 入门-特殊的Mat类汇总(一)

专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 🧭文…

dubbo知识点

为什么要用 Dubbo? 随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信…

嵌入式Linux驱动开发——汇编点灯

嵌入式Linux驱动开发——汇编点灯 本文章开始记录学习嵌入式Linux的过程,使用的开发板是正点原子的阿尔法,以及左老师的书籍和视频。然后这个系列不会介绍基础知识(书上都有),主要是记录思考过程以及需要注意的点。 代…

《深入浅出多模态》:多模态经典模型CLIP

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…

淘宝天猫详情接口API:打造个性化购物体验

在数字时代的购物领域,个性化体验成为了各大电商平台竞争的核心。随着互联网和大数据技术的快速发展,淘宝天猫作为中国最大的电商平台,不断推出创新的功能和工具,联讯数据为用户提供个性化购物服务。其中,淘宝天猫详情…

The Closest Pair Problem

Problem Let S be a set of n points ((xi,yi), 1≤i≤n) in the plane, finding a pair of points p and q in S whose mutual distance is minimum. Algorithm 1: Θ ( n 2 ) The brute-force algorithm simply examines all the possible n(n−1)/2 distances and returns t…

实战中内网穿透的打法

前言 在内网渗透时,一个WebShell或CobaltStrike、Metasploit上线等,只是开端,更多是要内网横向移动,扩大战果,打到核心区域。但后渗透的前提是需要搭建一条通向内网的“专属通道”,才能进一步攻击。可实战…

交易要想成功澳福总结几点

100%使用基本面分析的投资者能保证每次交易都能成功吗?100%使用技术分析的投资者能保证每次交易都能成功吗?在fpmarkets澳福看来无论是基本面分析还是技术分析都不能保证100%交易成功。 投资者不能只依赖一种分析进行投资交易。在fpmarkets澳福看来成功的…