public static string FromStream(Stream srcStream) { using (var zipStream = new GZipStream(srcStream, CompressionMode.Decompress)) { var streamReader = new BigEndianReader(zipStream); return(streamReader.ReadString()); } }
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 } }
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(); }
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(); }
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); }