博客网 >

一个网络封包加密算法
作者:分类:默认分类标签:

一个封包加密算法
By David.Zhu 2007/11/5

参考了Isaiah对X舞团某外挂简单分析

该封包加密算法采用了两层加密,首先用Packet Key对Packet Data进行异或,每次将Packet Key减1; 然后用预存的多个加密Keys对Packet Keys和Packet Data进行循环加密.封包结构如下图所示:


下面是加密后封包的解密算法:
byte[] RawPacketBuffer={xxxxx}//这个就是send的数据.

int KeyLength=RawPacketBuffer[2]=Convert.ToByte((~((RawPacketBuffer[2]>>7&0xFF)|(RawPacketBuffer[2]<<1&0xFF)))&0xFF);
int i,KeyIndex,DataIndex;
for (i = RawPacketBuffer.Length - KeyLength-3,KeyIndex=0,DataIndex=KeyLength+3; i > 0; --i)
{
    RawPacketBuffer[DataIndex] ^= RawPacketBuffer[KeyIndex+3];
    KeyIndex++;
    if (KeyIndex == KeyLength)
        KeyIndex = 0;
    DataIndex++;
}

           
byte GameDataKey = Convert.ToByte( RawPacketBuffer[KeyLength + 4] - 1);
for (i = RawPacketBuffer.Length - KeyLength - 5, DataIndex = KeyLength + 5; i > 0; --i)
{
    RawPacketBuffer[DataIndex] ^=GameDataKey;
    DataIndex++;
    GameDataKey--;
}
<< 转载:迅雷协议分析 ------... / 迅雷工作原理研究(2) >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

David.Zhu

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档