Exemple #1
0
        /// <summary>
        ///     初始化包体
        /// </summary>
        protected override void PutBody()
        {
            var pic      = new Bitmap(FileName);
            var width    = pic.Size.Width;  // 图片的宽度
            var height   = pic.Size.Height; // 图片的高度
            var picBytes = ImageHelper.ImageToBytes(pic);
            var md5      = QQTea.MD5(picBytes);

            var data = new BinaryWriter(new MemoryStream());

            data.Write(new byte[]
            {
                0x01, 0x08, 0x01, 0x12
            });
            data.Write((byte)0x5A);
            data.Write((byte)0x08);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ)));
            data.Write((byte)0x10);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(ToQQ)));
            data.BeWrite((ushort)0x1800);
            data.Write((byte)0x22);
            data.Write((byte)0x10);
            data.Write(md5);
            data.Write((byte)0x28);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length)));
            data.Write((byte)0x32);
            data.Write((byte)0x1A);
            data.Write(new byte[]
            {
                0x57, 0x00, 0x53, 0x00, 0x4E, 0x00, 0x53, 0x00, 0x4C, 0x00, 0x54, 0x00,
                0x31, 0x00, 0x36, 0x00, 0x47, 0x00, 0x45, 0x00, 0x4F, 0x00, 0x5B, 0x00,
                0x5F, 0x00
            });
            data.BeWrite((ushort)0x3801);
            data.BeWrite((ushort)0x4801);
            data.Write((byte)0x70);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(width)));
            data.Write((byte)0x78);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(height)));

            BodyWriter.Write(new byte[]
            {
                0x00, 0x00, 0x00, 0x07
            });
            //数据长度
            BodyWriter.BeWrite(data.BaseStream.Length);
            BodyWriter.Write(new byte[]
            {
                0x08, 0x01, 0x12, 0x03, 0x98, 0x01
            });
            //数据
            BodyWriter.Write(data.BaseStream.ToBytesArray());
        }
Exemple #2
0
        /// <summary>
        ///     初始化包体
        /// </summary>
        protected override void PutBody()
        {
            var pic    = new Bitmap(FileName);
            var width  = pic.Size.Width;  // 图片的宽度
            var height = pic.Size.Height; // 图片的高度
            //var Md5 = Util.GetMD5ToGuidHashFromFile(fileName);
            var picBytes = ImageHelper.ImageToBytes(pic);
            var md5      = QQTea.MD5(picBytes);

            BodyWriter.Write(new byte[]
            {
                0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5E, 0x08,
                0x01, 0x12, 0x03, 0x98, 0x01, 0x01, 0x10, 0x01, 0x1A
            });
            BodyWriter.Write((byte)0x5A);
            BodyWriter.Write((byte)0x08);
            BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(Group)));
            BodyWriter.Write((byte)0x10);
            BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ)));
            BodyWriter.BeWrite((ushort)0x1800);
            BodyWriter.Write((byte)0x22);
            BodyWriter.Write((byte)0x10);
            BodyWriter.Write(md5);
            BodyWriter.Write((byte)0x28);
            BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length))); //TODO:
            BodyWriter.Write((byte)0x32);
            BodyWriter.Write((byte)0x1A);
            BodyWriter.Write(new byte[]
            {
                0x37, 0x00, 0x4D, 0x00, 0x32, 0x00, 0x25, 0x00, 0x4C,
                0x00, 0x31, 0x00, 0x56, 0x00, 0x32, 0x00, 0x7B, 0x00,
                0x39, 0x00, 0x30, 0x00, 0x29, 0x00, 0x52, 0x00
            });
            BodyWriter.BeWrite((ushort)0x3801);
            BodyWriter.BeWrite((ushort)0x4801);
            BodyWriter.Write((byte)0x50);
            BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(width)));  //TODO:
            BodyWriter.Write((byte)0x58);
            BodyWriter.Write(Util.HexStringToByteArray(Util.PB_toLength(height))); //TODO:
            BodyWriter.BeWrite((ushort)0x6004);
            BodyWriter.BeWrite((ushort)0x6A05);
            BodyWriter.Write(new byte[]
            {
                0x32, 0x36, 0x36, 0x35, 0x36
            });
            BodyWriter.BeWrite((ushort)0x7000);
            BodyWriter.BeWrite((ushort)0x7803);
            BodyWriter.BeWrite((ushort)0x8001);
            BodyWriter.Write((byte)0x00);
        }
Exemple #3
0
        /// <summary>
        ///     初始化包体
        /// </summary>
        protected override void PutBody()
        {
            Bitmap pic    = new Bitmap(fileName);
            int    Width  = pic.Size.Width;  // 图片的宽度
            int    Height = pic.Size.Height; // 图片的高度
            //var Md5 = Util.GetMD5ToGuidHashFromFile(fileName);
            var picBytes = ImageHelper.ImageToBytes(pic);
            var Md5      = QQTea.MD5(picBytes);

            bodyWriter.Write(new byte[] {
                0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x5E, 0x08,
                0x01, 0x12, 0x03, 0x98, 0x01, 0x01, 0x10, 0x01, 0x1A
            });
            bodyWriter.BEWrite((char)0x5A);
            bodyWriter.Write((byte)0x08);
            bodyWriter.BEWrite(user.QQ);
            bodyWriter.Write((byte)0x10);
            bodyWriter.BEWrite(user.QQ);
            bodyWriter.BEWrite((char)0x1800);
            bodyWriter.Write((byte)0x22);
            bodyWriter.BEWrite((char)0x10);
            bodyWriter.Write(Md5);
            bodyWriter.Write((byte)0x28);
            bodyWriter.BEWrite(picBytes.Length);
            bodyWriter.Write((byte)0x32);
            bodyWriter.BEWrite((char)0x1A);
            bodyWriter.Write(new byte[] {
                0x37, 0x00, 0x4D, 0x00, 0x32, 0x00, 0x25, 0x00, 0x4C,
                0x00, 0x31, 0x00, 0x56, 0x00, 0x32, 0x00, 0x7B, 0x00,
                0x39, 0x00, 0x30, 0x00, 0x29, 0x00, 0x52, 0x00
            });
            bodyWriter.BEWrite((char)0x3801);
            bodyWriter.BEWrite((char)0x4801);
            bodyWriter.Write((byte)0x50);
            bodyWriter.BEWrite(Width);
            bodyWriter.Write((byte)0x58);
            bodyWriter.BEWrite(Height);
            bodyWriter.BEWrite((char)0x6004);
            bodyWriter.BEWrite((char)0x6A05);
            bodyWriter.Write(new byte[] {
                0x32, 0x36, 0x36, 0x35, 0x36
            });
            bodyWriter.BEWrite((char)0x7000);
            bodyWriter.BEWrite((char)0x7803);
            bodyWriter.BEWrite((char)0x8001);
            bodyWriter.Write((byte)0x00);
        }
Exemple #4
0
        /// <summary>
        ///     初始化包体
        /// </summary>
        protected override void PutBody()
        {
            var pic      = new Bitmap(FileName.Content);
            var width    = pic.Size.Width;  // 图片的宽度
            var height   = pic.Size.Height; // 图片的高度
            var picBytes = ImageHelper.ImageToBytes(pic);

            _md5 = QQTea.MD5(picBytes);

            FileName.Set("Md5", Md5);

            BodyWriter.Write(new byte[] { 0x00, 0x00, 0x00, 0x07 });
            var data = new BinaryWriter(new MemoryStream());

            data.Write(new byte[] { 0x10, 0x01, 0x1A, 0x5A, 0x08 });
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(Group)));
            data.Write((byte)0x10);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(User.QQ)));
            data.Write(new byte[] { 0x18, 0x00, 0x22, 0x10 });
            data.Write(_md5);
            data.Write((byte)0x28);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(picBytes.Length)));
            data.Write(new byte[] { 0x32, 0x1a });
            data.Write(new byte[] { 0x50, 0x00, 0x42, 0x00, 0x41, 0x00, 0x42, 0x00, 0x52, 0x00, 0x24, 0x00, 0x4d, 0x00, 0x36, 0x00, 0x5f, 0x00, 0x5a, 0x00, 0x32, 0x00, 0x25, 0x00, 0x39, 0x00 });
            data.Write(new byte[] { 0x38, 0x01, 0x48, 0x01 });
            data.Write((byte)0x50);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(width)));
            data.Write((byte)0x58);
            data.Write(Util.HexStringToByteArray(Util.PB_toLength(height)));
            data.Write(new byte[] { 0x60, 0x04, 0x6a, 0x05 });
            data.Write(new byte[] { 0x32, 0x36, 0x36, 0x35, 0x32 });
            data.Write(new byte[] { 0x70, 0x00, 0x78, 0x03, 0x80, 0x01, 0x00 });

            //数据长度
            BodyWriter.BeWrite(data.BaseStream.Length);
            BodyWriter.Write(new byte[] { 0x08, 0x01, 0x12, 0x03, 0x98, 0x01, 0x01 });
            //数据
            BodyWriter.Write(data.BaseStream.ToBytesArray());

            //使用之后释放文件
            pic.Dispose();
        }
Exemple #5
0
 /// <summary>
 ///     设置用户的密码,不会保存明文形式的密码,立刻用Double MD5算法加密
 /// </summary>
 /// <param name="pwd">明文形式的密码</param>
 public void SetPassword(string pwd)
 {
     MD51 = QQTea.MD5(Util.GetBytes(pwd));
 }
Exemple #6
0
 public void SetPassword(String pwd)
 {
     this.MD51 = QQTea.MD5(ByteHelper.GetBytes(pwd));
 }