private string ReadString(BinaryReader reader) { List<byte> bytes = new List<byte>(); while (true) { var b = reader.ReadByte(); if (b != 0) { bytes.Add(b); } else { break; } } return Encoding.UTF8.GetString(bytes.ToArray()); } }