逆向工程高科技游戏的网络流量

时间:2013-08-12 08:23:06

标签: reverse-engineering network-protocols

所以我试图通过局域网在一个相当古老的Halo游戏中解构服务器 - 客户端交互传递的消息。我一直在用Wireshark和大包进行测试。虽然我对应该分析哪种类型的数据感到困惑。在一个所有角色的聊天消息包中,我收到了:

fe:fe:00:03:3a:00:11:19:39:1a:28:0d:b9:20:9d:7b:b8:59:52:90:e3:3e:93:7b:b8:59:52:90:e3:3e:93:7b:b8:59:52:90:e3:3e:93: [SNIP]

在一条消息中,除了前3个字母之外的所有字母都是' a',我收到了这个:

fe:fe:00:21:64:00:68:8f:02:6d:5f:ab:a7:cb:d0:78:0f:e9:6d:55:89:13:72:7b:b8:59:52:90:e3:3e:93:7b:b8:59:52:90:e3:3e:93: [SNIP]

现在,我可以看到某些阶段(可能是a)的数据包之间有一些相似之处,我得出的结论是:

7b:b8:59:52:90:e3

可能是' a'字符。但无法证明这一点。如何将上述奇怪的字符串转换为可读字符,即返回' a'?可能吗?

感谢您查看此问题! 协议是UDP。

2 个答案:

答案 0 :(得分:0)

您只需将ollydbg附加到您尝试理解的过程,并在WSARecv(或recv)http://msdn.microsoft.com/de-de/library/windows/desktop/ms741688(v=vs.85).aspx设置断点 您收到的下一个数据包将到达您的断点,按照内存ptr在单独的窗口中查看它并跳过调用WSARecv。你现在应该看到一个填充的缓冲区,在新到达的数据的顶部设置一个内存断点,如果按下play,你应该进入crypt函数,如果它是加密的。 (可能的话,你必须扭转一点才能达到这一点)我希望它是你进入逆向工程装配的起点:)

也许我的tut会有所帮助,它可以用于另一场比赛,但我认为它应该显示一些想法: http://blog.praty.net/?p=315

Greetz defragger

答案 1 :(得分:0)

通过查看网络转储来猜测协议是非常低效的。我建议使用现代工具(如Hex-Rays Decompiler)反编译游戏,然后将网络模块中使用的数据结构知识与使用OllyDbg调试实时应用程序相结合。