예제 #1
0
        protected override void ParseBody()
        {
            Decrypt(_secretKey);
            VerifyType = reader.ReadByte();
            reader.BEReadChar();
            Status = reader.ReadByte();
            reader.ReadBytes(4);
            user.QQ_PACKET_00BAVerifyToken = reader.ReadBytes(reader.BEReadChar());
            VerifyCode    = reader.ReadBytes(reader.BEReadChar());
            VerifyCommand = reader.ReadByte();
            if (VerifyCommand == 0x00)
            {
                VerifyCommand = reader.ReadByte();
            }

            reader.ReadByte();
            if (user.QQ_PACKET_00BAVerifyCode?.Length == 0 || user.QQ_PACKET_00BAVerifyCode == null)
            {
                user.QQ_PACKET_00BAVerifyCode = VerifyCode;
            }
            else
            {
                var resultArr = new byte[user.QQ_PACKET_00BAVerifyCode.Length + VerifyCode.Length];
                user.QQ_PACKET_00BAVerifyCode.CopyTo(resultArr, 0);
                VerifyCode.CopyTo(resultArr, user.QQ_PACKET_00BAVerifyCode.Length);
                user.QQ_PACKET_00BAVerifyCode = resultArr;
            }

            user.QQ_PACKET_00BAToken = reader.ReadBytes(reader.BEReadChar());
            reader.ReadBytes(reader.BEReadChar());
        }
예제 #2
0
        protected override void ParseBody(ByteBuffer byteBuffer)
        {
            //密文
            byte[] CipherText = byteBuffer.ToByteArray();
            //明文
            bodyDecrypted = QQTea.Decrypt(CipherText, byteBuffer.Position, CipherText.Length - byteBuffer.Position - 1, _secretKey);
            //提取数据
            ByteBuffer buf = new ByteBuffer(bodyDecrypted);

            VerifyType = buf.Get();
            buf.GetChar();
            Status = buf.Get();
            buf.GetByteArray(4);
            user.QQ_PACKET_00BAVerifyToken = buf.GetByteArray(buf.GetChar());
            VerifyCode    = buf.GetByteArray(buf.GetChar());
            VerifyCommand = buf.Get();
            if (VerifyCommand == 0x00)
            {
                VerifyCommand = buf.Get();
            }
            buf.Get();
            if (user.QQ_PACKET_00BAVerifyCode?.Length == 0 || user.QQ_PACKET_00BAVerifyCode == null)
            {
                user.QQ_PACKET_00BAVerifyCode = VerifyCode;
            }
            else
            {
                byte[] resultArr = new byte[user.QQ_PACKET_00BAVerifyCode.Length + VerifyCode.Length];
                user.QQ_PACKET_00BAVerifyCode.CopyTo(resultArr, 0);
                VerifyCode.CopyTo(resultArr, user.QQ_PACKET_00BAVerifyCode.Length);
                user.QQ_PACKET_00BAVerifyCode = resultArr;
            }
            user.QQ_PACKET_00BAToken = buf.GetByteArray(buf.GetChar());
            buf.GetByteArray(buf.GetChar());
        }
예제 #3
0
        protected override void ParseBody()
        {
            Decrypt(SecretKey);
            VerifyType = Reader.ReadByte();
            Reader.BeReadChar();
            Status = Reader.ReadByte();
            Reader.ReadBytes(4);
            User.TXProtocol.BufSigPic = Reader.ReadBytes(Reader.BeReadChar());
            if (VerifyType == 0x13)
            {
                VerifyCode    = Reader.ReadBytes(Reader.BeReadChar());
                VerifyCommand = Reader.ReadByte();
                if (VerifyCommand == 0x00)
                {
                    VerifyCommand = Reader.ReadByte();
                }
                else
                {
                    Reader.ReadByte();
                }

                if (User.QQPacket00BaVerifyCode?.Length == 0 || User.QQPacket00BaVerifyCode == null)
                {
                    User.QQPacket00BaVerifyCode = VerifyCode;
                }
                else
                {
                    var resultArr = new byte[User.QQPacket00BaVerifyCode.Length + VerifyCode.Length];
                    User.QQPacket00BaVerifyCode.CopyTo(resultArr, 0);
                    VerifyCode.CopyTo(resultArr, User.QQPacket00BaVerifyCode.Length);
                    User.QQPacket00BaVerifyCode = resultArr;
                }

                User.TXProtocol.PngToken = Reader.ReadBytes(Reader.BeReadChar());
                Reader.ReadBytes(Reader.BeReadChar());
            }
        }