예제 #1
0
 public byte[] hash_function(byte[] packet)
 {
     /* Hello Mr.Fourbasse :hap: */
     if (this._hashKey == null)
         return packet;
     using (BigEndianWriter writer = new BigEndianWriter())
     {
         writer.WriteBytes(packet);
         BigEndianWriter writer2 = new BigEndianWriter();
         writer2.WriteBytes(this.hash(packet));
         using (RijndaelManaged myRijndael = new RijndaelManaged())
         {
             myRijndael.GenerateIV();
             // Encrypt the string to an array of bytes.
             byte[] encrypted = EncryptStringToBytes(writer2.Content.ToString(), this._hashKey, myRijndael.IV);
         }
         writer.WriteBytes(writer2.Content);
         return writer.Content;
     }
 }
예제 #2
0
 public void ParseBuffer(byte[] data)
 {
     m_Reader.Add(data, 0, data.Length);
     if (m_Reader.BytesAvailable <= 0)
         return;
     while (m_Reader.BytesAvailable != 0)
     {
         if (Build())
         {
             if ((account.IsMITM) && (!ForbiddenHeaders.Contains((int)m_ProtocolID)))
             {
                 using (BigEndianWriter writer = new BigEndianWriter())
                 {
                     writer.WriteBytes(m_Data);
                     MessagePackaging pack = new MessagePackaging(writer);
                     pack.Pack((int)m_ProtocolID);
                     account.SocketManager.SendToDofusClient(pack.Writer.Content);
                     account.Log(new BotTextInformation("SND (-> Dof) " + m_ProtocolID), 0);
                 }
             }
             //using (
             // StreamWriter fileWriter =
             // new StreamWriter(
             // Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) +
             // @"\BlueSheep\Packets.txt", true))
             // fileWriter.WriteLine("[" + DateTime.Now.ToShortTimeString() + "] Paquet reçu : " + m_ProtocolID);
             Treatment.Treatment treatment = new Treatment.Treatment(account);
             if (m_ProtocolID == 6372)
             {
                 using (BigEndianWriter writer = new BigEndianWriter())
                 {
                     writer.WriteBytes(m_Data);
                     MessagePackaging pack = new MessagePackaging(writer);
                     pack.Pack(6372);
                     account.SocketManager.Send(pack.Writer.Content);
                 }
             }
             if (m_ProtocolID != null)
                 treatment.Treat(m_ProtocolID.Value, m_Data);
             m_Header = null;
             m_Length = null;
             m_Data = null;
             m_LenghtType = null;
             m_ProtocolID = null;
         }
         else
             break;
     }
 }