예제 #1
0
 private void toolStripButton1_Click(object sender, EventArgs e)
 {
     try
     {
         string s = richTextBox1.Text.Trim();
         while (s.Contains(" "))
         {
             s = s.Replace(" ", "");
         }
         if ((s.Length % 2) != 0)
         {
             return;
         }
         byte[] data = ToBuff(s);
         data = Helper.Decrypt("CD&ML", data);
         MemoryStream m = new MemoryStream();
         m.Write(data, 1, data.Length - 1);
         data = Helper.Decompress(m.ToArray());
         StringBuilder sb = new StringBuilder();
         foreach (byte b in data)
         {
             sb.Append(b.ToString("X2"));
         }
         richTextBox2.Text = sb.ToString();
     }
     catch { richTextBox2.Text = "ERROR"; }
 }
예제 #2
0
        public QPacket(byte[] data)
        {
            MemoryStream m = new MemoryStream(data);

            m_oSourceVPort      = new VPort(Helper.ReadU8(m));
            m_oDestinationVPort = new VPort(Helper.ReadU8(m));
            m_byPacketTypeFlags = Helper.ReadU8(m);
            type  = (PACKETTYPE)(m_byPacketTypeFlags & 0x7);
            flags = new List <PACKETFLAG>();
            ExtractFlags();
            m_bySessionID = Helper.ReadU8(m);
            m_uiSignature = Helper.ReadU32(m);
            uiSeqId       = Helper.ReadU16(m);
            if (type == PACKETTYPE.SYN || type == PACKETTYPE.CONNECT)
            {
                m_uiConnectionSignature = Helper.ReadU32(m);
            }
            if (type == PACKETTYPE.DATA)
            {
                m_byPartNumber = Helper.ReadU8(m);
            }
            if (flags.Contains(PACKETFLAG.FLAG_HAS_SIZE))
            {
                payloadSize = Helper.ReadU16(m);
            }
            MemoryStream pl = new MemoryStream();

            for (int i = (int)m.Position; i < m.Length - 1; i++)
            {
                pl.WriteByte(Helper.ReadU8(m));
            }
            payload     = pl.ToArray();
            payloadSize = (ushort)payload.Length;
            if (payload != null && payload.Length > 0)
            {
                payload         = Helper.Decrypt(Global.keyDATA, payload);
                usesCompression = payload[0] != 0;
                if (usesCompression)
                {
                    MemoryStream m2 = new MemoryStream();
                    m2.Write(payload, 1, payload.Length - 1);
                    payload = Helper.Decompress(m2.ToArray());
                }
                else
                {
                    MemoryStream m2 = new MemoryStream();
                    m2.Write(payload, 1, payload.Length - 1);
                    payload = m2.ToArray();
                }
                payloadSize = (ushort)payload.Length;
            }
            checkSum = Helper.ReadU8(m);
        }