Пример #1
0
        public void addItemsMethod(string packetInfo, byte[] PayLoadData)
        {
            bool isToClient = false;

            string[]      sData = packetInfo.Split(new char[] { ',' });
            List <byte[]> data  = new List <byte[]>();

            byte[]       useIv = new byte[4];
            ListViewItem lvi   = new ListViewItem((listView1.Items.Count + 1).ToString());

            foreach (string s in sData)
            {
                if (s.Contains("ToClient"))
                {
                    isToClient    = true;
                    lvi.BackColor = Color.FromArgb(229, 235, 224);
                }
                lvi.SubItems.Add(s);
            }
            if (PayLoadData[0] != 0x0F)
            {
                byte[] decryptData = new byte[PayLoadData.Length - 4];

                Buffer.BlockCopy(PayLoadData, 4, decryptData, 0, PayLoadData.Length - 4);

                byte[] tempData;
                if (isToClient)
                {
                    useIv    = clientRecv.getIv();
                    tempData = clientRecv.crypt(decryptData);
                    Console.WriteLine(BitTools.GetHexString(tempData));
                    if (tempData[0] == 0x6D)//如果是验证账号密码的封包 接受的时候需要再换一次iv才能正确解包
                    {
                        clientRecv.updateIv();
                        needUpdateIv = true;
                    }
                }
                else
                {
                    useIv    = clientSend.getIv();
                    tempData = clientSend.crypt(decryptData);
                }

                data.Add(PayLoadData);
                data.Add(tempData);
            }
            else
            {
                data.Add(PayLoadData);
            }

            lvi.SubItems[5].Text = BitTools.GetHexString(useIv);

            lvi.Tag = data;
            listView1.Items.Add(lvi);
        }
Пример #2
0
 private void listView1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listView1.SelectedIndices != null && listView1.SelectedIndices.Count > 0)
     {
         ListView.SelectedIndexCollection c = listView1.SelectedIndices;
         ListViewItem  selectItem           = listView1.Items[c[0]];
         List <byte[]> data = (List <byte[]>)selectItem.Tag;
         if (data.Count == 2)
         {
             richTextBox1.Text = string.Format("[原始数据 长度:{0}]\n{1} \n[解密数据 长度:{2}]\n{3} \n[Ascii]\n{4}",
                                               data[0].Length, BitTools.GetHexString(data[0]),
                                               data[1].Length, BitTools.GetHexString(data[1]),
                                               Encoding.ASCII.GetString(data[1]));
         }
         else
         {
             richTextBox1.Text = string.Format("[原始数据 长度:{0}]\n{1} ", data[0].Length, BitTools.GetHexString(data[0]));
         }
     }
 }
Пример #3
0
 public override string ToString()
 {
     return("IV: " + BitTools.GetHexString(this.iv));
 }