45.x86游戏实战-XXX封包组包拼包详解

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:44.x86游戏实战-C++实现吸怪加秒杀

想分析发包,那就要尽量的排除干扰,想排除干扰就要从发包少的地方入手,发包少的地方比如登录游戏时选择游戏频道或选择角色这样的地方发包才少,因为这种地方没有进游戏所以发包肯定会特别少。

首先来到游戏选择频道的位置

然后打开OD并附加到游戏,然后来到公共call位置(找公共call看29.x86游戏实战-XXX发包函数),如下图,

然后在公共call位置打断点

然后打完断点来到游戏,点击选择频道,通过选择频道断下来

然后取消断点

然后按CTRL+F9,然后就会来到下图位置

然后在桌面新建一个文本文档(.txt文件),新建完从下图红框位置,也就是按完CTRL+F9之后的位置开始

使用鼠标滚轮往上滑,选中代码(按着shift键然后鼠标左键单机代码就可以选中多行了),最好一直选中到函数头部,有些函数很长就尽量多选中一点

然后鼠标右击选中的部分,然后选择复制到剪切板

然后粘贴到新建的文本文件中

然后回到OD按F9,让游戏运行起来,然后来到游戏选择角色界面,然后再次在公共call位置打断点,让它通过选择角色断下来,下图是通过选择角色触发的断点

然后取消断点

然后按CTRL+F9

这里还是新创建一个文本文档(.txt后缀的文件),然后复制选择角色的代码

然后粘贴到刚刚创建的文本文档中

然后再找个喊话(还是在公共call打断点,让它通过喊话断下来,然后取消断点,然后按CTRL+F9,然后多选中几行代码,然后复制到剪贴板,然后粘贴到创建的文本文档中)

然后对比它们三个共同点

然后看到下图相同颜色框起来的地址挨得很近,但是也看不出什么来,然后感觉选择角色比较全,所以接下来让选择频道和喊话分别与选择角色做对比

然后来到OD,然后CTRL+G到选择频道

上图弹框点击了确定之后来到选择角色的函数里

然后开始对比,首先选择角色调用了0x1127D60和0x1128550,接下开始在选择频道函数里往上翻,要时刻注意里面有没有 0x1127D60和0x1128550 这俩东西

然后看到选择频道里也调用了0x1128550

然后往上翻了一会,看到选择频道也调用了0x1127D60,然后0x1127D60也是跟选择角色一样,在0x1128550之前调用的

然后选择角色再与喊话做比较,然后看到喊话也调用了0x1128550函数

然后喊话也调用了0x1127D60,0x1127D60在0x1128550之前调用,现在猜测0x1127D60是一个构建数据包头的函数

然后0x1127D60就一个参数

然后喊话给它传的参数是0x11

选择频道给它传的是1

选择角色给它传的是4

然后现在也看不出什么别的了,选择角色、选择频道、喊话还是比较复杂的,还要找一找有没有简单点的

然后发现游戏里有个决斗场的按钮,点击决斗场触发的公共call,CTRL+F9之后回来到下图位置,它还是0x1127D60,但是比上面三个位置少调用了函数,所以下图位置就很简单

然后写汇编代码进行测试,然后发现它可以正常打开决斗场,现在就可以确定0x1127D60就是得到一个数据包的

然后带着这个思路去尝试选择角色,选择角色多调用了一个0x1128550,这应该是获取选择角色的信息,并且拼接数据包,拼接到从0x1127D60里得到的数据包头

接下来看看0x1128550的入参是什么,也就是esi的值是什么,来到OD然后CTRL+G跳转到选择角色的函数里,打断点,如下图

然后游戏来到选择角色界面,然后选择一个角色触发上方的断点,然后看esi的值是什么,如下图esi的值是1,刚刚选择的角色是角色列表中的第二个角色,现在猜测esi是角色在列表中的位置,列表序号从0开始

然后接下来选择第一个角色触发断点,如下图它确实是0了

然后写代码测试,执行之后可以正常进入游戏

pushad
push 4
mov ecx,0x1AEB6E4
mov ecx,[ecx]
mov eax,0x1127D60
call eax
mov ecx,0x1AEB6E4
mov ecx,[ecx]
push 1
mov eax,0x1128550
call eax
mov eax,0x1127EC0
call eax
popad

其它的(选择频道、喊话)后面在搞,比较复杂后面在搞


img

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

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

相关文章

提车后遇大降价被指“背刺”车主,方程豹的口碑问题何解?

进入8月下旬,汽车市场“金九银十”的销售旺季即将到来,将行业“内卷”推向新高峰。即便有宝马等高端豪华品牌退出“价格战”的先例,但为刺激销量,不少车企依旧推出了各式各样的价格优惠政策,行业内部价格竞争狼烟四起。…

Kotlin 流flow、ShareFlow、StateFlow、Channel的解释与使用

一、介绍 随着Android接入kotlin开发,Android之前好多模式也渐渐被kotlin替代。开发模式也在做渐进的转型,从MVC到MVP在到MVVP以及现在的MVI等。 流IO在java中和kotlin中使用率都是比较高的,场景很多。如Java的IO和NIO,再到我们现…

Java、python、php版的高校失物招领平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

kali网络代理设置

首先主机必须有自己的代理。记住主机的ip和代理端口。 在kali中打开终端: vim /etc/proxychains4.conf输入代理进行更改 把这行注释掉,在下一行输入 socks5 主机ip 代理端口 点击esc,在:wq退出保存。 配置完成。

Salesforce 发布开源大模型 xGen-MM

xGen-MM 论文 在当今 AI 技术飞速发展的时代,一个新的多模态 AI 模型悄然崛起,引起了业界的广泛关注。这个由 Salesforce 推出的开源模型—— xGen-MM,正以其惊人的全能特性和独特优势,在 AI 领域掀起一阵旋风。那么,x…

Why Does ChatGPT Fall Short in Providing Truthful Answers?

文章目录 题目摘要简介相关工作模型和数据集结果事实性背后的能力提高 QA 的事实性结论 题目 为什么 ChatGPT 无法提供真实的答案? 论文地址:https://arxiv.org/abs/2304.10513 摘要 ChatGPT 等大型语言模型的最新进展已显示出影响人类生活各个方面的巨大潜力。然而…

数据库学习(进阶)

数据库学习(进阶) Mysql结构:连接层:服务层(核心层):存储引擎层:系统文件层: 存储引擎(概述):存储引擎特点:InnoDB存储引擎:(为并发条…

【C++ 面试 - 面向对象】每日 3 题(二)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

C语言钥匙迷宫2.0

目录 开头程序程序的流程图程序游玩的效果结尾 开头 大家好&#xff0c;我叫这是我58。废话不多说&#xff0c;咱们直接开始。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <Windows.h> enum color {Y,B,R …

裸金属服务器和裸金属云服务器:区别、优势与选择

首先&#xff0c;必须肯定的是&#xff1a;裸金属服务器和裸金属云服务器是有区别的。 ‌ 二者的概述 裸金属服务器&#xff08;‌Bare Metal Server&#xff09;‌是一种物理服务器&#xff0c;‌它直接在硬件上运行&#xff0c;‌没有额外的虚拟化层。‌这意味着每个应用程…

ChatGLM-4-9b-chat本地化|天翼云GPU上vLLM本地部署开源模型完整攻略

“ 拥有一个私有化的领先国产开源大模型&#xff1f;本文详细介绍了如何在天翼云GPU上使用vLLM部署ChatGLM-4-9b-chat本地化模型的完整攻略&#xff0c;助您快速上手。” 01 — vLLM 本来打算用ollama在GPU服务器上部署开源模型GLM4&#xff0c;在之前文章有部署教程&#xff1…

刷题篇 - 03

题目一&#xff1a; 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; public ListNode removeElements(ListNode head, int val) {//1. 如果链表为null&#xff0c;直接返回headif (head null) {return head;}//2. 定义快慢指针ListNode pre head;ListNode del …

Tomcat:Web 领域的闪耀明珠,魅力何在?

一、Web技术 HTTP 协议&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网上应用最为广泛的一种网络协议。它的主要作用是在客户端和服务器之间传输超文本数据&#xff0c;如网页、图片、视频等。 HTTP 协议的特点 无状态性 HTTP 协议是…

STM32H7双路CAN踩坑记录

STM32H7双路CAN踩坑记录 目录 STM32H7双路CAN踩坑记录1 问题描述2 原因分析3 解决办法4 CAN配置参考代码 1 问题描述 STM32的CAN1和CAN2无法同时使用。 注&#xff1a;MCU使用的是STM32H743&#xff0c;其他型号不确定是否一样&#xff0c;本文只以STM32H743举例说明。 2 原因…

了解同步带选择同步带

同步带和轮选型 同步带传动属于皮带传动&#xff0c;但是改进了传统皮带传动无法保持严格的传动比的打滑问题&#xff0c;传统皮带传动依靠皮带和皮带轮张紧时产生的摩擦力传输动力&#xff0c;但是从动轮遇到障碍或超载荷时&#xff0c;皮带会在皮带轮产生滑动。 解决打滑问题…

项目1 物流仓库管理系统

一、项目概述 本项目旨在开发一个功能全面的物流仓库管理系统&#xff0c;以数字化手段优化仓库作业流程&#xff0c;提高管理效率。系统集成了前端用户交互界面与后端数据处理逻辑&#xff0c;涵盖了从用户注册登录、订单管理、货单跟踪到用户信息维护等多个核心业务模块。通…

前端3d动画-----平移 transform: translate3d()

必须加这个属性&#xff1a;transform-style: preserve-3d; perspective: 900px; 设置了景深才能感到近大远小的感觉 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

分享一个基于python爬虫的“今日头条”新闻数据分析可视化系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

AI赋能软件测试:从自动化到智能化,让测试工作事半功倍

引言 在当今这个日新月异的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;正以不可阻挡之势渗透并重塑着各行各业&#xff0c;其中&#xff0c;软件开发与测试领域更是迎来了前所未有的变革。随着软件系统的复杂性日益增加&#xff0c;用户对软件质量、性能及安全性的…