99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析

本文主要是介绍99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内容参考于:易道云信息技术研究院VIP课

上一个内容:定位明文发送数据的关键函数

首先来到下图位置,查看edi的值是怎样来的

然后使用高亮模式查看edi,看看谁给edi赋过值

首先是下图红框位置,mov ecx, edi也就是edi是一个类,这个类调用了它的成员函数,这个操作是可以修改edi的值的,所以需要记录一下0x914C1C

然后还有下图红框位置,0x914B96

然后下图红框位置,0x914B37

第一次修改edi,这个数据看不懂

第二个修改edi,这个数据相似,创建了一个数据包头,或者说一个空的数据包

它的参数是 7025 和 0,

移动时也会触发,它的参数是 7021 和 0,这个7021相似操作类型

在调用了下图红框位置的函数之后,我们聊天框输入的数据,写入了上方创建好的空数据包里

然后通过下图断点位置的函数,完成了明文数据组装过程,它的参数是,一个局部变量的控件 和 数据的长度

执行完它的数据,我们的消息数据写入到了,变量里

然后继续往下看,在调用第一次修改edi值的函数时,它的参数是刚刚的局部变量,和数据长度

这时的edi,还是一个空的数据包

执行完函数,消息数据写入到数据包,这里记录数据组装关键点,

如果分析要说话的数据,只要 HOOK 0x914C1E位置调用的0x47F550函数,在0x47F550函数里可以看出数据包结构很大

还有需要看一下数据包是否存在内存泄露问题:下图红框位置pop edi,很明显没有内存泄露问题,不需要管

总结:

三个重要的函数:第一个获取一个空数据包函数(0x914B8D位置调用的0x12A3AB0+0x24函数),第二个是我们要发送的数据组装到数据包的函数(0x914C1E位置调用的0x47F550函数),第三个是发送数据包函数(0x914C2F位置调用的0x12A3AB0+2C)

这篇关于99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706059

相关文章

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3