最近,闲来无事,研究了一下魔域游戏的封包发送与接收,下面,就把分包发送部分的一些东西与大家分享。
相信对游戏进行过逆向分析的人都比较清楚,发送封包能够完成很多意想不到的功能,而这些功能如果通过调用游戏本身的call的话,操是非常繁杂的。所以,可以这么说,发送封包简化了对游戏逆向的步骤。发送分包是控制游戏的万能钥匙。
寻找魔域封包发送的函数并不复杂,复杂的是,怎样去找封包数据的明文,也就是找到封包数据的加密函数。其实,这也不难。只要按照正规方法,耐心寻找,最终,游戏就会像被你扒光衣服的姑娘,呈现在你面。废话不说。步骤如下:
- 在封包发送函数send处下断点。做一个动作,如卖物品,这是,游戏就会断在封包发送的地方。如果你看一下发送数据缓冲区,你会发现,里边全部是密文,相同动作,封包数据完全不同。所以我们必须找到封包加密的函数。
- 在密文封包处下硬件写入断点。这是再卖物品,你会发现,游戏断在了另一个地方。取消硬件断点。返回函数上一级。你会发现,函数的一个参数就是send函数的封包发送缓冲区,很明显,这个函数就是封包加密函数,汇编代码如下:
加密:
00DC0630 55 push ebp
00DC0631 8B6C24 0C mov ebp, dword ptr [esp+C]
00DC0635 56 push esi
00DC0636 33F6 xor esi, esi
0