致力于分享游戏安全技术,提供专业的游戏安全资讯
首先我们先确定该游戏的发包函数
send,WSASsend,sendto三大发包函数分别下断,发现只有send函数会断下
而且通过包长和包内容的比较发现是真的发包。
然后我们尝试在send 头部下断,看是否可以返回到功能函数中,来了解该游戏发包的流程以及调用过程。
首先我们先来测试喊话
这是喊话堆栈中的调用
然后我们再来测试下走路
这是走路堆栈中的调用
发现什么没有?
是不是堆栈调用一模一样呢?
在代码中CTRL+F9 返回发现也是一样的效果。
那么得出结论
该游戏是线程发包,发包函数处在一个线程中循环,通过调用关系是没有办法返回到功能函数的。
那么,怎么才能跳出线程循环,来到功能函数以及明文包加密的线程呢?
我们知道这个线程循环只所以能够发包,一定是线程外面给予他要发送的内容才可以的,所以我们只要找包内容的来源即可。
对包内容下写入断。
继续返回
这样
我们就找到了
线程外部的明文封包函数
也可以正常的返回到功能函数了。
来源:通化程序员-公众号投稿
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
近期精品文章:
∨
投稿文章:[email protected]
原文始发于微信公众号(游戏安全实验室):【游戏漏洞】QQ西游发包分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论