1

所以我试图通过 LAN 解构一个相当古老的 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。

4

2 回答 2

0

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

于 2013-08-19T09:14:14.057 回答
0

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

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

Greetz 碎片整理程序

于 2013-08-14T07:54:10.803 回答