public static ObjectStats Read(NReader rdr) { var ret = new ObjectStats(); ret.Id = rdr.ReadInt32(); ret.Position = Position.Read(rdr); ret.Stats = new KeyValuePair <StatsType, object> [rdr.ReadInt16()]; for (var i = 0; i < ret.Stats.Length; i++) { var type = (StatsType)rdr.ReadByte(); if (type == StatsType.Guild || type == StatsType.Name) { ret.Stats[i] = new KeyValuePair <StatsType, object>(type, rdr.ReadUTF()); } else { ret.Stats[i] = new KeyValuePair <StatsType, object>(type, rdr.ReadInt32()); } } return(ret); }
void ProcessCli() { try { var rdr = new NReader(new NetworkStream(skt)); var wtr = new NWriter(dest.GetStream()); while (true) { int len = rdr.ReadInt32(); byte id = rdr.ReadByte(); byte[] content = rdr.ReadBytes(len - 5); var state = ReceiveKey.SaveState(); content = ReceiveKey.Crypt(content); ReceiveKey.LoadState(state); //if (id == 17) //{ // MemoryStream ms = new MemoryStream(); // using (NWriter w = new NWriter(ms)) // using (NReader r = new NReader(new MemoryStream(content))) // { // w.WriteUTF(r.ReadUTF()); // Console.WriteLine(r.ReadInt32()); w.Write(-3); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.Write(r.ReadInt32()); // var c = r.ReadBytes(r.ReadInt16()); // w.Write((short)c.Length); // w.Write(c); // w.Write32UTF(r.Read32UTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // } // content = ms.ToArray(); //} if (id == 4) { using (NReader r = new NReader(new MemoryStream(content))) { var Name = rdr.ReadUTF(); var Host = rdr.ReadUTF(); var Port = rdr.ReadInt32(); var GameId = rdr.ReadInt32(); var KeyTime = rdr.ReadInt32(); var Key = rdr.ReadBytes(rdr.ReadInt16()); } } content = ReceiveKey.Crypt(content); ReceiveKey.LoadState(state); wtr.Write(len); wtr.Write((byte)id); wtr.Write(content); cliPkts.Add(new Packet() { id = id, content = ReceiveKey.Crypt(content) }); } } catch { } finally { skt.Close(); } for (var i = 0; i < cliPkts.Count; i++) File.WriteAllBytes("cli_pkt/" + i + "_" + cliPkts[i].id, cliPkts[i].content); }
void ProcessCli() { try { var rdr = new NReader(new NetworkStream(skt)); var wtr = new NWriter(dest.GetStream()); while (true) { int len = rdr.ReadInt32(); byte id = rdr.ReadByte(); byte[] content = rdr.ReadBytes(len - 5); var state = ReceiveKey.SaveState(); content = ReceiveKey.Crypt(content); ReceiveKey.LoadState(state); //if (id == 17) //{ // MemoryStream ms = new MemoryStream(); // using (NWriter w = new NWriter(ms)) // using (NReader r = new NReader(new MemoryStream(content))) // { // w.WriteUTF(r.ReadUTF()); // Console.WriteLine(r.ReadInt32()); w.Write(-3); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.Write(r.ReadInt32()); // var c = r.ReadBytes(r.ReadInt16()); // w.Write((short)c.Length); // w.Write(c); // w.Write32UTF(r.Read32UTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // w.WriteUTF(r.ReadUTF()); // } // content = ms.ToArray(); //} if (id == 4) { using (NReader r = new NReader(new MemoryStream(content))) { var Name = rdr.ReadUTF(); var Host = rdr.ReadUTF(); var Port = rdr.ReadInt32(); var GameId = rdr.ReadInt32(); var KeyTime = rdr.ReadInt32(); var Key = rdr.ReadBytes(rdr.ReadInt16()); } } content = ReceiveKey.Crypt(content); ReceiveKey.LoadState(state); wtr.Write(len); wtr.Write((byte)id); wtr.Write(content); cliPkts.Add(new Packet() { id = id, content = ReceiveKey.Crypt(content) }); } } catch { } finally { skt.Close(); } for (var i = 0; i < cliPkts.Count; i++) { File.WriteAllBytes("cli_pkt/" + i + "_" + cliPkts[i].id, cliPkts[i].content); } }
public static ObjectStats Read(NReader rdr) { ObjectStats ret = new ObjectStats(); ret.Id = rdr.ReadInt32(); ret.Position = Position.Read(rdr); ret.Stats = new KeyValuePair<StatsType, object>[rdr.ReadInt16()]; for (var i = 0; i < ret.Stats.Length; i++) { StatsType type = (StatsType)rdr.ReadByte(); if (type == StatsType.Guild || type == StatsType.Name) ret.Stats[i] = new KeyValuePair<StatsType, object>(type, rdr.ReadUTF()); else ret.Stats[i] = new KeyValuePair<StatsType, object>(type, rdr.ReadInt32()); } return ret; }