public static string FromStream(Stream srcStream)
 {
     using (var zipStream = new GZipStream(srcStream, CompressionMode.Decompress)) {
         var streamReader = new BigEndianReader(zipStream);
         return(streamReader.ReadString());
     }
 }
Example #2
0
        public static void Decode(Message msg, AuthClient client)
        {
            BigEndianReader packet = msg.Content.Data;
            ulong           salt   = packet.ReadULong();
            string          user   = packet.ReadString();
            string          pass   = packet.ReadString();

            Console.WriteLine($"Client - Authentication User: {user} Pass: {pass} Salt: ");
            if (user == "test" && pass == "test")
            {
                Connection.SerializeState(client, 0, true, 0, false);
            }
            else
            {
                Connection.SerializeState(client, 2, false, 0, false);//0 OK //2 Error log 5//Ban //8Compte sous protection
            }
        }
Example #3
0
 public virtual void Read(BigEndianReader reader)
 {
     this._tag = reader.ReadString(4);
     //this._tag = new string(tag);
     this._checksum = reader.ReadUInt32();
     this._offset   = reader.ReadUInt32();
     this._len      = reader.ReadUInt32();
 }
Example #4
0
 public override void Read(BigEndianReader reader)
 {
     this.Tag              = reader.ReadString(4);
     this.Offset           = reader.ReadUInt32();
     this.CompressedLength = reader.ReadUInt32();
     this.Length           = reader.ReadUInt32();
     this.CheckSum         = reader.ReadUInt32();
 }
Example #5
0
        public static void Decode(Message msg, AuthClient client)
        {
            BigEndianReader data = msg.Content.Data;

            Console.Write("Client - Version du client: ");
            byte   version  = data.ReadByte();
            ushort revision = data.ReadUShort();
            byte   change   = data.ReadByte();
            string build    = data.ReadString();

            Config.VERSION = new object[] { version, revision, change, build };
            Console.WriteLine($"{version}.{revision}.{change}.{build}");
            Serialize(client);
        }
        public override void Read(BigEndianReader reader)
        {
            byte   tableFlags = 0;
            uint   origLen    = 0;
            byte   preprocess = 0;
            string tag;

            tableFlags = reader.ReadByte();
            //First 7 bits for a known table
            KnownTableIndex known = (KnownTableIndex)(tableFlags & 0x1F);

            if (known < KnownTableIndex.UNKN)
            {
                tag = GetKnownTable(known);
            }
            else //not known so read the next tag.
            {
                tag = reader.ReadString(4);
            }


            //Get the pre-processing transformation value
            //from bits 6 and 7 to versions 0-3.
            preprocess = (byte)((tableFlags >> 5) & 0x3);

            origLen = reader.ReadUIntBase128();

            if (IsTransformedTable(tag) && preprocess == 0)
            {
                this.HasTransformation = true;
                this.TransformedLength = reader.ReadUIntBase128();
            }

            this.Tag    = tag;
            this.Length = origLen;
        }
        private TrueTypeFontTable ReadOS2Table(uint length, TrueTypeTableEntryList list, BigEndianReader reader)
        {
            OS2Table os2 = new OS2Table(reader.Position);

            os2.Version           = (OS2TableVersion)reader.ReadUInt16();
            os2.XAverageCharWidth = reader.ReadInt16();
            os2.WeightClass       = (WeightClass)reader.ReadUInt16();
            os2.WidthClass        = (WidthClass)reader.ReadUInt16();
            os2.FSType            = (FontRestrictions)reader.ReadUInt16();

            os2.SubscriptXSize   = reader.ReadInt16();
            os2.SubscriptYSize   = reader.ReadInt16();
            os2.SubscriptXOffset = reader.ReadInt16();
            os2.SubscriptYOffset = reader.ReadInt16();

            os2.SuperScriptXSize   = reader.ReadInt16();
            os2.SuperScriptYSize   = reader.ReadInt16();
            os2.SuperscriptXOffset = reader.ReadInt16();
            os2.SuperscriptYOffset = reader.ReadInt16();

            os2.StrikeoutSize     = reader.ReadInt16();
            os2.StrikeoutPosition = reader.ReadInt16();

            byte hi = reader.ReadByte();
            byte lo = reader.ReadByte();

            os2.FamilyClass = new IBMFontClass(hi, lo);

            byte[] data = reader.Read(10);
            os2.Panose = new PanoseArray(data);

            uint zero  = reader.ReadUInt32();
            uint one   = reader.ReadUInt32();
            uint two   = reader.ReadUInt32();
            uint three = reader.ReadUInt32();

            os2.UnicodeRanges = new UnicodeRanges(zero, one, two, three);

            os2.VendorID  = reader.ReadString(4);
            os2.Selection = (FontSelection)reader.ReadUInt16();

            os2.FirstCharIndex = reader.ReadUInt16();
            os2.LastCharIndex  = reader.ReadUInt16();
            os2.TypoAscender   = reader.ReadInt16();
            os2.TypoDescender  = reader.ReadInt16();
            os2.TypoLineGap    = reader.ReadInt16();
            os2.WinAscent      = reader.ReadUInt16();
            os2.WinDescent     = reader.ReadUInt16();

            if (os2.Version >= OS2TableVersion.TrueType166)
            {
                zero = reader.ReadUInt32();
                one  = reader.ReadUInt32();
                os2.CodePageRanges = new CodePageRange(zero, one);

                if (os2.Version >= OS2TableVersion.OpenType12)
                {
                    os2.Height      = reader.ReadInt16();
                    os2.CapHeight   = reader.ReadInt16();
                    os2.DefaultChar = reader.ReadUInt16();
                    os2.BreakChar   = reader.ReadUInt16();
                    os2.MaxContext  = reader.ReadUInt16();
                }
            }

            return(os2);
        }
        private TrueTypeFontTable ReadNameTable(uint length, TrueTypeTableEntryList list, BigEndianReader reader)
        {
            NamingTable nt = new NamingTable(reader.Position);

            nt.Format       = reader.ReadUInt16();
            nt.Count        = reader.ReadUInt16();
            nt.StringOffset = reader.ReadUInt16();

            nt.Names = new NameEntryList();
            List <NameRecord> records = new List <NameRecord>();
            NameEntry         entry;

            if (nt.Count > 0)
            {
                for (int i = 0; i < nt.Count; i++)
                {
                    NameRecord rec = new NameRecord();
                    rec.PlatformID       = reader.ReadUInt16();
                    rec.EncodingID       = reader.ReadUInt16();
                    rec.LanguageID       = reader.ReadUInt16();
                    rec.NameID           = reader.ReadUInt16();
                    rec.StringLength     = reader.ReadUInt16();
                    rec.StringDataOffset = reader.ReadUInt16();

                    records.Add(rec);
                }

                long startStore = nt.FileOffset + nt.StringOffset;

                int currlang   = System.Globalization.CultureInfo.CurrentCulture.LCID;
                int parentlang = System.Globalization.CultureInfo.CurrentCulture.Parent != null ?
                                 System.Globalization.CultureInfo.CurrentCulture.Parent.LCID : 0;

                foreach (NameRecord rec in records)
                {
                    reader.Position = startStore + (long)rec.StringDataOffset;

                    if (rec.PlatformID == 0 || rec.PlatformID == 3)
                    {
                        rec.Value = reader.ReadUnicodeString(rec.StringLength);
                    }
                    else
                    {
                        rec.Value = reader.ReadString(rec.StringLength);
                    }

                    if (nt.Names.TryGetEntry(rec.NameID, out entry) == false)
                    {
                        entry        = new NameEntry();
                        entry.NameID = rec.NameID;
                        nt.Names.Add(entry);
                    }
                    entry.NameItems.Add(rec);

                    if (rec.LanguageID == 0)
                    {
                        entry.InvariantName = rec.Value;
                    }
                    else if (rec.LanguageID == currlang)
                    {
                        entry.LocalName = rec.Value;
                    }
                    else if (rec.LanguageID == parentlang && string.IsNullOrEmpty(entry.LocalName))
                    {
                        entry.LocalName = rec.Value;
                    }
                }
            }
            return(nt);
        }