![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏相关
文章平均质量分 61
游戏相关内容,辅助,咨询
douluo998
这个作者很懒,什么都没留下…
展开
-
某游戏平台检测加速辅助案例分析
如果ebx小于等于 eax 就跳转到 300134E进行判断[edi+0x10]是否等于0 检测开始的情况下他是等于1的 所以进入call 30012B9到达我们刚开始下硬件断点的位置,完成一次检测 ebx就+1,edi+14 检测的API的数量一共是0x34个,[edi+10]对应每个API检测的开关,这时我们只需把每个[edi+10]的值写为0就可以过掉这个游戏对API HOOK的检测了。[0x3000113D]保存的是VirtualProtect的地址,call esi 两次调用这个API,原创 2024-04-19 11:03:57 · 756 阅读 · 0 评论 -
【游戏分析】《勇者大冒险》吸物
那么我们只要遍历出物品 把ID 传入封包是否就可以达到吸物 直接捡取的效果了呢?我们发现 我们没有动位置 直接发送捡取封包 传递的是地面药瓶的ID。如果我们没有各种算法或则很多底层数据是不可能自动捡取到的。如图 0x18的封包 当然我们要反复捡取 确定是该封包。我们在打副本的时候 地面上会掉落各种各样的物品。地面上的药瓶 (实际叫融合剂) 已经到我们背包里了。那么有一种变态类型的外挂 是可以自动吸物的。我们第一时间考虑是否可以修改 物品的坐标。又或则即使我们能自动捡取也是很慢的。翻译 2024-04-17 19:34:36 · 24 阅读 · 0 评论 -
【游戏逆向】逆向基础之发包函数和线程发包
还没有,这只是第一关,还有第二关,找到了发包函数,有时候我们发现,他并不能断到功能函数,无论什么动作,堆栈返回都是一样的,怎么也返回不到功能函数,这种情况往往就是线程发包。因为谁也不想干些徒劳的事情,但是正如之前所说,网游都需要发包,那么外挂制作者都知道这一点,只要对这三个发包函数下断,几乎可以拿到所有想要的功能函数,所以,现在的游戏公司大多都会重新实现发包函数。所以,我们的很多动作,都是要向服务器发包的,那么我们只要能够锁定正确的发包函数,就能很容易的通过调用关系找到该动作的函数,以实现调用的目的。原创 2024-04-05 09:35:27 · 673 阅读 · 6 评论 -
【游戏逆向】逆向基础之OD的使用和基础
内存访问和内存写入,对该处内存地址有访问或则写入,因为该处是代码段,正常是不存在访问和写入的,所以在该处下此类型断点一般是错误的做法,但是有一种情况是需要这样做的,就是如果你修改了该处代码,又想知道该处是否有CRC等检测的时候,就需要在该处下内存断点了,我们说正常情况下代码段是不会有内存访问和写入的,一旦有的话9层就是检测了。动态调试,最重要的是下断点,当程序执行到我们下断点的位置的时候,被暂停下来,此时我们可以分析内存和寄存器以对程序进行分析。我们点了F9,程序依然是卡住的,没有办法运行起来。原创 2024-04-03 08:57:48 · 838 阅读 · 3 评论 -
【游戏基础】安卓手游逆向必须基础
学习的前提是你已经掌握了一定的0x86汇编基础,掌握了一定的端游逆向基础,在0x86汇编基础和端游逆向基础上对比学习即可,如果没有一定的端游逆向基础,可以回去看看我之前的端游逆向基础。Thumb模式下等于当前指令地址加4,因为流水线优化,有3个过程,取指,译指,执行,PC指向取指的代 码,PC-4指向译指的代码,PC-8指向译指的代码。Thumb 指令可以看作是 ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率高。原创 2024-04-02 09:20:51 · 1291 阅读 · 0 评论 -
【游戏分析】FPS游戏狩猎百发百中
当然正常PFS游戏 一般朝向值是两个 即数学上常用 的 俯冲角和摇摆角 ,而旋转角对于 射击是不影响的,我们人物也不可能 头朝下脚朝天。首先 距离=sqrt((X人物-X怪物)*(X人物-X怪物)+(Y人物-Y怪物)*(Y人物-Y怪物)+(Z人物-Z怪物)*(Z人物-Z怪物))第二种 以自己为球心 画一个半径为1的球 我们和怪物连线和球的交点 即为这3个朝向值。3个朝向值表示3D朝向的话并且都是-1到1。那么这3个值不可能是X,Y,Z的3方向角度。都是浮点型的 都是-1 到1 的值。原创 2024-04-01 09:15:20 · 627 阅读 · 5 评论 -
雷电将军部分技能AOE范围测试
测认中发现存在很短的一小段距离可以使得雷神Q无法打中急冻树核心但刻晴Q可以打中(刻晴Q为8米,来自拆包),因此推测雷神Q拔刀为7.5米半径,作为参考,0命钟离Q的半径也是7.5米,不过不同的是钟离Q是中心向前偏移的圆形,雷神Q是无偏移的半圆形。雷神E的动画模型也有一定的误导性,其实际范围并非如同自半空中切下一刀那样而是类似阿贝多E的圆形范围,利用深渊地砖一格2.56米作为参照,E的伤害半径大约为1.5格地砖,推测为3.8米半径,圆心显然就在受伤害的怪物中心处。下图为三个技能的范围直观示意图。原创 2024-03-02 20:59:03 · 367 阅读 · 0 评论 -
老飞飞限制多开解决办法2024
把这个代码直接保存为bat文件。方法就是打开一个txt文件。然后把上面内容复制进去。当有些客户端只能开4个。会提示禁止多开什么的。如果去网上下载一个隐藏进程名称的软件。直接登录客户端即可。你们去照着下载就是了。修改txt结尾为bat文件。原创 2024-01-19 11:58:07 · 589 阅读 · 2 评论 -
【游戏逆向】《创世战车》玩家遍历分析
而继续分析edi的来源,在012FDE31 得到lea edx, [eax+eax*2],再经过add eax, 2AAD和and eax, 0FFF,就得到了数组序号的来源。对于这种FPS游戏来说,玩家的血量并不是很关键,不过想分析玩家对象内的其他信息,还是要从血量作为突破口的。[[Crossout.exe+0F876AC]+(ID&0FFF+2AAD)*C]+0C0 最大血量。下访问断点时,不同的访问代码返回的位置也不同,不过最终得到的遍历代码都是相同的。原创 2023-05-12 20:33:43 · 906 阅读 · 0 评论 -
爱玩飞飞加速实现与分析
这个地址是00cf2d6c。那么基址加0的地址是这个。那么移动速度的地址就比这个大。我们就去找00cf开头的数字。我们找到的数字是00cf3f2c这个就是移动速度的地址。我们这里是581,点首次扫描,然后输入581,然后扫描类型精确数值。然后我们已知道的是移动速度是基址+一个偏移得到的结果。直接用这个当基址也是可以的。那么这个基址加偏移就是【015b1d20】+790就是血的偏移。首先我们搜索0-100的值。这里可以看出来血量的偏移是790.然后随便点一个进去。下面我们找一个移动速度的方法。原创 2023-03-24 17:31:19 · 1028 阅读 · 3 评论 -
【游戏逆向】某某明月刀_技能冷却分析
我们在《天涯明月刀》游戏中找一个冷却时间适中的技能开始分析,通过搜索DWORD型,我们发现0和1为技能冷却的标志位,1代表冷却中,0代表已经冷却。然后我们可以通过技能ID和技能名字进行关联,在代码中对技能的冷却做判断,使智能战斗的效率得到有效的提高,同时也避免了重发协议带来的负面影响。[[[[基地址]]+2C]+edi*4]+28 技能当前冷却时间。[[[基地址]]+2C]+edi*4]+2C 技能冷却标志。[[[[基地址]]+2C]+edi*4]+3C 技能ID。原创 2023-03-21 21:20:09 · 611 阅读 · 0 评论 -
【游戏逆向】《某某仙侠传》验证码获取
游戏中的验证码图片多为了PNG和BMP格式的图片,那么我们只要了解这两种图片在内存中的存放格式和头部字节就可以轻松的扫描到游戏里的图片然后一一打印或则一一破坏头部字节等等方式来确认哪一段地址存放的是我们想要的图片字节集。第一,按键模拟截图,这种方式CPU占用大,效率低,如果外挂都采用这种方式,那么验证码就起到了他应有的作用,可以说有效的对外挂产生了影响。如果有的话说明找到的,原因是图片是一段连续的字节集如果变化一定是连续变化的,只有这样的才符合我们的要求。当然现在的游戏验证码五花八门什么样子的都有。原创 2023-03-21 10:38:56 · 572 阅读 · 0 评论 -
【游戏逆向】《某某仙侠传》《疾风之刃》秒分解
005F0C1B E8 F07E0D00 call 006C8B10-------------------------------------------分解CALL。如果读条函数在服务端,那么客户端向服务器发送分解请求,服务器进行读秒,然后返回分解结果给客户端,那么客户端就不能达到秒分解的效果了,这也是游戏设计导致的。分解大量的商店装备,获得分解材料,然后拍卖行出售,赚取成本装备和材料的差价。分解函数内层是有读条函数和更内层分解函数或则调用发包函数的。这层和更内层的都不读秒。原创 2023-03-20 15:06:21 · 491 阅读 · 0 评论 -
【游戏逆向】《**明月刀》BUFF及技能预判
为了提高游戏的可玩性,也为了提高外挂制作的难度,很多游戏对BOSS的技能伤害都设计的特别高,为了达到及时躲避的效果,我们需要对技能做预判。这个数组中出了ID,还有很多的未知数据,很有可能是当前释放技能的范围,目标,朝向,形状等信息,这需要通过大量的对比和分析来判断。[[[[[[BUFF基地址]+1144]+54]+n*4]+4]+4]+0 BUFF名字。[[[[[BUFF基地址]+1144]+54]+n*4]+4]+0 BUFFID。[[BUFF基地址]+1144]+68 BUFF名字遍历数组成员数量。原创 2023-03-20 15:04:34 · 556 阅读 · 0 评论 -
【游戏逆向】《某某仙侠传》跨图寻路功能分析
对这个函数下F2断点,我们发现函数的5个参数都很好分析,第二个和第三个参数很显然是我们传入的xy坐标,而第四个参数始终是0。大部分网络游戏都是有寻路功能的,只有个别的暗黑系列游戏和FPS游戏没有寻路。其实跨图寻路和本图寻路的功能是相似的,唯一不同的是传入了一个目的地图的ID,所以我们想分析跨图寻路,也要从本地寻路入手进行分析,否则操作起来还是比较麻烦的。通过对不同地图的寻路,我们发现第一个参数都会改变,那也就是说这个参数就是我们所说的地图ID,通过10进制进行观察,也恰好符合这款游戏对ID的设计(如图)原创 2023-03-19 20:38:08 · 257 阅读 · 0 评论 -
【游戏逆向】《天堂2》背包分析
背包分析大多是从物品数量入手的,但是有时候由于可叠加物品的数量较少,无法在耗尽之前得到物品数量的地址,这时就需要从物品名字作为突破口来进行分析。执行到返回后两次,继续分析第一个参数的来源,可以在0B6A7178处的函数中可以得到+0偏移,而在函数上面可以得到+18偏移(如图)首先通过CE对物品的名字进行扫描,可以得到较少的结果,对其进行修改后发现其中一个可以改变物品名字的本地显示(如图)但是经过对这个数组反复下断,发现数组的起始地址是变化的,这说明这个数组并不是物品数组而是物品对象下的属性数组。原创 2023-03-19 20:37:40 · 539 阅读 · 0 评论 -
【游戏逆向】《天堂2》send及喊话函数分析
我们想通过发包函数,来找到明文包,一般都是通过走路函数进行下断的,因为下F2断点之后直接点击游戏窗口可以让操作延时降到最低,但是有些游戏通过走路下断是无法得到与其他函数公用的带有明文的函数的。下面回到喊话函数处,对函数进行分析,发现这里的参数非常简单,其中的第一个参数来源于[engine.dll+BD6694]+48,第四个参数是存放喊话内容的结构体,编码方式是UNICODE型,第五个参数是喊话类型,其余两个函数是常量。这样我们就讲游戏的喊话函数分析完了,而在这里进行调用显然要比send处调用容易的多。原创 2023-03-19 20:32:11 · 531 阅读 · 0 评论 -
C++对象内存布局结构及虚函数调用实现分析(下)
从函数调用约定的声明上来看,int __cdecl TestFunctionC(int a, int b, int c, int d, int e, int f)的调用约定我们声明为__cdecl调用方式。另外在IDA中我们看到int TestFunctionA(int a, int b, int c, int d, int e, int f)的调用方式也符合该原则,这说明在c\c++写的函数中如果不是类的成员函数,没做特殊调用声明,那么默认采用 __cdecl调用约定。3、堆栈平衡有被调用者平衡。原创 2023-03-18 20:05:27 · 411 阅读 · 0 评论 -
C++对象内存布局结构及虚函数调用实现分析(上)
在windows平台,最常见的开发语言是c++语言。大部分游戏逻辑直接采用c++开发;或者采用脚本语言开发游戏逻辑,但是脚本解释引擎本身却采用c或者c++语言开发。如果能了解c++语言,并能把c++语言和其对应的汇编语言实现一一对应起来,那么在阅读游戏汇编代码的时候就能在大脑中把汇编语言反编译成高级语言去理解,这样可以很大程度上加快逆向效率。原创 2023-03-18 20:00:14 · 381 阅读 · 0 评论 -
【游戏逆向】一款单机游戏明文包分析
我们发现这个函数的参数是存放在ecx的结构体中的,以喊话功能为例,我们可以看到这里确实是由喊话明文的,而结构中的其他偏移则代表的是喊话的一些条件和玩家等等(如图)线程发包的应用非常广泛,往往用来防止分析明文包。而跳出线程发包的原理则是不断的在包的来源上下写入断点,就可以调到线程外的内存拷贝函数中。如果不想调用这里的函数,也可以选择执行到返回去调用外层的函数,一般来说外层的函数都要比明文包要容易分析的一些。到函数内部的头部进行观察发现这里可以断到游戏的大部分发包函数,并且其参数是明文的(如图)原创 2023-03-17 15:28:46 · 335 阅读 · 0 评论 -
【游戏逆向】《**沸腾单机版》角色分析
经过观察我们发现这个血量的附近并没有太多的角色属性,于是我们通过ce来对角色名字进行扫描,并得到了一个可以改变角色本地名字的地址(如图)角色属性的分析过程大多是比较简单的,但是对于一些老游戏的属性虽然分析过程很简单,但是其存放属性的位置比较分散,所以整理起来很麻烦。继续返回的话还可以分析好久,但是我们发现在1040偏移这里的ecx就已经是常量了,所以我们通过查找常量,找到了基地址的代码(如图)这是一个基地址,所以我们直接定位即可,接下来对角色的坐标进行扫描,发现同样可以得到一些基地址(如图)原创 2023-03-17 15:01:37 · 199 阅读 · 0 评论 -
【游戏逆向】某游戏球员价格列表分析
在对交易行的球员进行购买时,我们首先要对球员的价格进行分析,低买高卖才能获取利润。下面我们对其球员的价格列表进行分析。通过xdbg64对这个地址附近的代码进行观察,我们发现,其实这个价格是球员的最低价格,而在其+8 的位置则是这个球员的最高价格,在+10的位置我们可以看到一个2字节的数据,这代表的是当前球员有几种价格。我们在得到的结果出下访问断点,切换球员后我们发现游戏并没有断下,而之前的地址已经被清零,这说明我们访问的地址有可能是一个临时的地址,这就需要我们从新扫描,并通过CE得到这个地址所存放的位置。原创 2023-03-17 14:56:55 · 373 阅读 · 0 评论 -
网游变态功能实现原理详谈
这种方法,简单方便,不需要去分析封包协议,但是最终也是因为改变了封包而导致的效果,例如某个副本文件被替换成简单副本文件,整体的逻辑发生变化,但是往往这种能够实现的前提还是网络校验不严格,或则其实一个最后的副本通关封包就可以实现。是玩家A像服务器发送喊话封包,服务器收到请求,向玩家A周围一定范围内的其他玩家发送封包,其他玩家收到服务器的封包,就知道玩家A的喊话内容了这就是一种网络交互。还有就是大家会发现,欧美韩的网络游戏变态功能更多,根本原因不是没有反外挂思路,而是在于更在乎游戏体验和打击感不得已的选择,原创 2023-03-16 10:31:21 · 335 阅读 · 0 评论 -
【游戏逆向】游戏外挂开发技术《挖金子》
工欲善其事必先利其器,首先说说我们要使用的工具吧,对于刚入门的一来说首先掌握几款常用的工具即可,对于简单的游戏分析,调试工具使用CE即可,编程工具我们使用DELPHI7(当然也可以使用delphi2010,不过推荐使用delphi7,因为delphi7的绿色U盘版很好用、很方便哈),需要一个辅助工具SPY++,不过delphi7的绿色版已经集成了很多辅助工具,这也是我极力推荐的原因。分析游戏数据在内存中的地址是比较重要的,因为外挂的原理一般都是通过对游戏数据的操作来实现外挂功能的。首先说说基本思路吧。原创 2023-03-16 10:23:18 · 1300 阅读 · 1 评论 -
C++对象内存布局结构及虚函数调用实现分析(上)
在windows平台,最常见的开发语言是c++语言。大部分游戏逻辑直接采用c++开发;或者采用脚本语言开发游戏逻辑,但是脚本解释引擎本身却采用c或者c++语言开发。如果能了解c++语言,并能把c++语言和其对应的汇编语言实现一一对应起来,那么在阅读游戏汇编代码的时候就能在大脑中把汇编语言反编译成高级语言去理解,这样可以很大程度上加快逆向效率。原创 2023-03-14 19:12:19 · 458 阅读 · 0 评论 -
游戏逆向-跨图寻路功能分析
对这个函数下F2断点,我们发现函数的5个参数都很好分析,第二个和第三个参数很显然是我们传入的xy坐标,而第四个参数始终是0。大部分网络游戏都是有寻路功能的,只有个别的暗黑系列游戏和FPS游戏没有寻路。其实跨图寻路和本图寻路的功能是相似的,唯一不同的是传入了一个目的地图的ID,所以我们想分析跨图寻路,也要从本地寻路入手进行分析,否则操作起来还是比较麻烦的。通过对不同地图的寻路,我们发现第一个参数都会改变,那也就是说这个参数就是我们所说的地图ID,通过10进制进行观察,也恰好符合这款游戏对ID的设计(如图)原创 2023-03-13 19:28:10 · 631 阅读 · 0 评论 -
游戏逆向之角色对象分析
用OD对这三个地址下访问断点,发现其断下的条件各不相同,而其中的一个地址只有在角色血量改变的时候才会断点,其他两个地址则可以直接断下,这样的情况下大多数人都会选择对后着进行分析,而真正可以得到角色对象公式的则是前者,更换装备后游戏断下(如图)角色对象的分析通常都是游戏中最简单的数据,但是也有些游戏会在这数据上面做一些手脚,让我们无法很快得到正确的公式。经过分析可以得出角色对象为ebp,我们继续向上分析ebp的来源,执行到返回后可以得到+4偏移(如图)到函数内部可以得到基地址(如图)原创 2023-03-13 18:46:17 · 333 阅读 · 0 评论 -
技能打怪技能封包call分析
角色的当前技能列表往往都是从系统的技能库中进行筛选而组成的,而这个筛选的过程大多非常的复杂,经过的代码和临时结构体的传递也非常的多,所以在分析技能对象来源的时候常常要将OD和CE配合来使用。首先通过CE对技能的名字进行扫描,可以得到较多的UNICODE型结果,通过二分法对技能的名字进行修改,发现其中的一个地址可以改变技能的本地显示(这里要注意的是,只有重新开启技能栏以后显示的技能名字才是我们需要分析的)(如图)返回后分析esi的来源,得到+80偏移,继续向上分析,可以在执行到返回后得到+10偏移(如图)原创 2023-03-13 18:40:49 · 454 阅读 · 0 评论 -
某游戏秒怪秒杀分析
本地存放buff的游戏直接修改即可,不是本地的利用获得Buff的封包获取,发送给服务器实现增加Buff。60级的账号不可能超过xx秒,例如图中20级无装备小号,22秒通关天空之城是手动完全不可能实现的。例如游戏中有很多的增益型状态,这个方法相对比较隐蔽,很多大型游戏都在此处有相关的bug,外挂追求的是效率,然而手动速度是有极限的,例如50级的账号不可能超过xx秒,当然直接修改血量也可以实现秒怪,同样也是检测最多的,因为太直白。2.对血值,智力,力量,buff进行检测,防止篡改。如果是人物的不扣血。原创 2023-03-13 18:36:49 · 517 阅读 · 0 评论