游戏安全实验室 首页 游戏漏洞 查看内容

【游戏分析】《灵山奇缘》发包函数

发布于:2018-9-27 10:11   |    111925次阅读 作者: 外部投稿    |   原作者: 通化程序员

一个游戏我们拿来以后第一件事肯定是要去分析发包函数。

因为发包函数可以给我们很多有用的信息。

第一,所有的功能都可以通过发包实现。

第二,发包中的参数可以获悉游戏中的数据形式,例如某些参数是类型,ID是什么样的值。

第三,通过发包可以得知游戏的通讯方式是否存在漏洞,例如怪物如果死亡的时候发包,那么就有秒怪封包,秒怪功能。

 

首先我们分别到send,sendto,WSASend 三个发包函数上下断,看是否是发包函数。

send

 

 

sendto

 

 

WSASend

 

分别下断以后,发现都不断

偶尔会断下,经过分析以后发现和我们做的发包动作无关。

那么不是这3个发包函数发的包,这个游戏自己实现了发包函数。

 

通过其他send发包的游戏

我们在send内部调用更内层发包函数WSPSend的位置下断

找到更内层的发包函数

WSPSend

 

71384405    6A 44           push    44

71384407    68 80453871     push    71384580

7138440C    E8 7FCFFFFF     call    71381390

71384411    33FF            xor     edi, edi

71384413    897D E0         mov     dword ptr [ebp-20], edi

71384416    803D B8643B71 0>cmp     byte ptr [713B64B8], 0

7138441D    0F85 04240000   jnz     71386827

71384423    393D 5C603B71   cmp     dword ptr [713B605C], edi

71384429    0F86 F8230000   jbe     71386827

7138442F    FF35 88603B71   push    dword ptr [713B6088]

71384435    FF15 D0123871   call    dword ptr [<&API-MS-Win-Core-Pro>; kernel32.TlsGetValue

7138443B    8945 D4         mov     dword ptr [ebp-2C], eax

7138443E    3BC7            cmp     eax, edi

71384440    0F84 E1230000   je      71386827

 

当然每台电脑的地址是不同的

只有在本台电脑是相同的

我们重新附加灵山奇缘,跳到该地址下断  

CTRL+F9返回到真正的发包函数

 

 

通过分析

根据参数的 性质我们分析出来

这是重新实现的WSASend

 

 

此时再做任何发包动作都会断下了,当然也有心跳包。





来源:通化程序员—投稿

GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

上一篇:【游戏分析】《天涯明月刀》控件点击函数分析

下一篇:【游戏分析】《灵山奇缘》加密坐标

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部