当前位置: 首页 > news >正文

17.第二阶段x86游戏实战2-线程发包和明文包

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

本次游戏没法给

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

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

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

提取码:6tw3

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

上一个内容:16.第二阶段x86游戏实战2-发包函数和怎么去找改写过的发包函数

上一个内容中写了send、sendto、WSASend、WSPSend发包函数和逆向的时候怎么找它们,本次就开始找此游戏明文发包位置

打开游戏打开OD,OD并附加到游戏

OD附加到游戏之后按CTRL+G,输入下图红框的内容 ws2_32.send,然后点OK跳转到send函数中,OD第一个打开需要CTRL+G两次

然后就跳转到了下图位置,send函数开始的位置

然后在游戏聊天框里输入一段内容

然后单击下图红框位置,也就是send函数的第一行

然后游戏中会有很多数据包,为了避免被干扰,有一个技巧,鼠标移动到游戏中发送消息的按钮上,然后按F2,F2是OD的打断点快捷键,按了F2打了断点之后鼠标快速点击游戏中发送消息按钮,这样可以0失误的通过发送聊天数据断在send函数上,如下图,下图红框是聊天内容数据,31是Unicode编码它表示数字1,可以看到这个游戏给服务器发送的数据没有加密(调用了send函数数据就会通过网络发送出去所以一般加密是在调用send函数之前)

然后使用Send函数一般会配合多线程使用,不要管什么意思记着就行,使用了多线程在send函数中打断点按CTRL+F9是无法找到功能的,比如上方是通过发送聊天数据触发的断点,在send函数中打断点然后按CTRL+F9是无法找到发送聊天数据的这个功能的代码的

然后下图红框位置是send函数要发送的数据,也就是数据包(封包),它是一个内存地址,可以看到不管怎么运行这个内存地址都不会变,这是因为它有两个线程,一个线程用来给这个内存地址里写数据,一个线程用来从这个内存地址里读数据发送数据,所以我们找的应该是给内存地址写数据的那个线程里的代码

然后选择数据窗口跟随

然后下一个硬件写入断点

然后它就会断下来,现在断下来的位置就是给内存地址写数据的地方

然后点击下图红框位置删除断点,如果下了硬件写入断点没有反应那就检查下图绿框里的地址是否正确,如果不正确删除断点重新打硬件写入断点

删除之后按CTRL+F9,如下图第一层

CTRL+F9,如下图第二层

CTRL+F9,如下图第三层

CTRL+F9,如下图第四层

CTRL+F9,如下图第五层

CTRL+F9,如下图第六层,按六层左右或按到CTRL+F9没反应了位置就不要按了

然后来到第三层,按键盘上的-(减号)就可以恢复按CTRL+F9之前的位置,来到第三层

来到第三层之后打断点,打了断点之后回到游戏做一个会发送数据包的事,比如走路、发送聊天数据,然后发现下图断点位置不管走路还是发送聊天数据都会断下来,所以再来到第四层

怎么回到第四层?如下图红框,如果写了内容

选择用户自定义的注释

然后根据注释列选择,找到那一行直接用鼠标双击就可以跳转过去了

在第四层打断点,然后会发现走路、发送聊天数据不会断下来了,所以0x00CA8B90函数是游戏写数据包内容的函数,也就是第三层才是我们要找的游戏发送数据包函数

然后这个游戏重启内存地址会变化,所以这里要计算一下偏移,这个函数在Game模块中

它的偏移,公式 Game模块基址+0x288B90的位置是发送数据包函数


img

相关文章:

  • GWAS分析中PCA分层不明显怎么办?你秀什么优越感?
  • 2024年国外优质API:情绪识别口碑佳
  • 【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
  • MATLAB GUI设计原则与实践
  • 【Mybatis-plus】【MybatisX】:Mybatis-plus快速上手 and MybatisX插件的使用——加强开发效率
  • 电磁铁选用和设计需要考虑的哪些方面
  • Meta Orion 原型的生产成本约为 10,000 美元
  • 美国惊曝超大规模信息泄露事件!超1亿人受到影响
  • 【高阶数据结构】平衡二叉树(AVL)的插入(4种旋转方法+精美图解+完整代码)
  • windows10录屏工具,四款新手必备软件!
  • Springboot Mybatis XML配置文件
  • 【计算机网络 - 基础问题】每日 3 题(二十八)
  • Qualcomm AI Hub模型优化1: Whisper-Base-En导出及问题解决
  • c++模拟真人鼠标轨迹算法
  • Python项目Flask框架整合Redis
  • 【Leetcode】101. 对称二叉树
  • 收藏网友的 源程序下载网
  • [译] React v16.8: 含有Hooks的版本
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • angular学习第一篇-----环境搭建
  • Hibernate最全面试题
  • js如何打印object对象
  • leetcode388. Longest Absolute File Path
  • node学习系列之简单文件上传
  • opencv python Meanshift 和 Camshift
  • PAT A1120
  • React Native移动开发实战-3-实现页面间的数据传递
  • spring boot 整合mybatis 无法输出sql的问题
  • sublime配置文件
  • Vue2.x学习三:事件处理生命周期钩子
  • 搭建gitbook 和 访问权限认证
  • 后端_ThinkPHP5
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 我看到的前端
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 扩展资源服务器解决oauth2 性能瓶颈
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #define 用法
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • $L^p$ 调和函数恒为零
  • (03)光刻——半导体电路的绘制
  • (04)odoo视图操作
  • (3)llvm ir转换过程
  • (备份) esp32 GPIO
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)SvelteKit教程:hello world
  • (转)JAVA中的堆栈
  • (转)winform之ListView
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .Net Winform开发笔记(一)
  • .NET 动态调用WebService + WSE + UsernameToken