游戏线程发包原理

a.1 什么是线程循环发包

线程发包是指在游戏一个循环线程中进行发送函数的封包。
在分析不同游戏的时候发现有的游戏 bp sead进行发包函数断点后
OD中按下Alt+K健查看堆栈返回信息列表时,发现自己明明是进行不同的动作发包断点游戏被断下后,堆栈返回信息却发现每次都是一样的信息这种情况!

这是因为遇见的这种情况的游戏,它采用的发包方式,这种发包方式情况不像“流线型发包”方式,而是采用线程循环中发包。

一般的游戏发包过程大致如下

游戏线程发包原理

游戏采用这种线性发包方式,只需要先bp send 进行系统发包 断点 游戏里操作完断下后只需要ctrl+f9直接返回每一层即可到达想要找的关键动作 功能 CALL 。这种发包方式的游戏CALL很容易找,例如武林外传和诛仙2。

现在很多老游戏和新游戏都采用了一种新的发包方式“线程循环发包”,这种发包方式。用“线型发包”方式已经无法找到。

现在普遍很多新游戏发包过程大致如下

游戏线程发包原理
这种线程循环发包与真正的功能CALL是独立的,所以如果要分析这种方式发包的游戏就得从发包的数据跟随找数据来源。

a.2 线程发包CALL分析方法

先了解下系统ws2_32.dll 库里的 send 函数结构
游戏线程发包原理

再来看一下此函数在OD中的反汇编
游戏线程发包原理

再看看OD堆栈窗口
游戏线程发包原理

因为我们要从数据的来源分析,所以就需要跟着 send函数的data参数开始着手分析。

--------------------------------------------------------------------------
“天龙八部”就是采用这种线程循环发包方式的游戏。现在拿它演示一下。

喊话动作断下后的 堆栈 列表信息

游戏线程发包原理

选怪动作断下后的 堆栈 列表信息
游戏线程发包原理

亦行
  • 本文由 发表于 2018-03-2222:14:56
WindowsAPI易语言内介绍和使用 技术分享

WindowsAPI易语言内介绍和使用

引用百度百科介绍:Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到...
了解和掌握易语言面向对象 技术分享

了解和掌握易语言面向对象

许久许久,忙于工作和结婚无法更新一些实用的技术文章,趁女神节有点业余时间写下这篇“面向对象”技术分享文章 前言  希望你在看完这篇文章后能够了解 面向对象的含义,了解什么是面向对象 知道什么是类,了解...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • avatar itik 0

      学习一下