<?xml version="1.0"?> <mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <database name="serverdat"> <table_structure name="outenserver"> <field Field="id" Type="int(10) unsigned" Null="NO" Key="PRI" Default="" Extra="" /> <field Field="ServerName" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="ServerIP" Type="varchar(128)" Null="NO" Key="" Default="0" Extra="" /> <field Field="ServerPort" Type="int(10) unsigned" Null="NO" Key="" Default="0" Extra="" /> <field Field="FlashName" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="FlashIcon" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="FlashHint" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="Child" Type="int(10) unsigned" Null="NO" Key="" Default="0" Extra="" /> <field Field="PicServerIP" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="PicServerPort" Type="int(10) unsigned" Null="NO" Key="" Default="0" Extra="" /> <field Field="BindServerIP" Type="varchar(50)" Null="NO" Key="" Default="0" Extra="" /> <field Field="BindServerPort" Type="int(10) unsigned" Null="NO" Key="" Default="0" Extra="" /> <field Field="Charges" Type="int(10) unsigned" Null="NO" Key="" Default="0" Extra="" /> <key Table="outenserver" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="id" Collation="A" Cardinality="165" Null="" Index_type="BTREE" Comment="" /> <options Name="outenserver" Engine="MyISAM" Version="10" Row_format="Dynamic" Rows="165" Avg_row_length="80" Data_length="13316" Max_data_length="281474976710655" Index_length="4096" Data_free="0" Create_time="2016-05-09 06:42:48" Update_time="2017-05-18 02:21:22" Collation="utf8_general_ci" Create_options="" Comment="" /> </table_structure> <table_data name="outenserver"> <row> <field name="id">0</field> <field name="ServerName"></field> <field name="ServerIP"></field> <field name="ServerPort">0</field> <field name="FlashName"></field> <field name="FlashIcon"></field> <field name="FlashHint"></field> <field name="Child">17</field> <field name="PicServerIP">0</field> <field name="PicServerPort">0</field> <field name="BindServerIP">0</field> <field name="BindServerPort">0</field> <field name="Charges">0</field> </row> <row> <field name="id">1</field> <field name="ServerName"></field> <field name="ServerIP"></field> <field name="ServerPort">0</field> <field name="FlashName">Group17</field> <field name="FlashIcon">Group18.swf</field> <field name="FlashHint"></field> <field name="Child">1</field> <field name="PicServerIP">0</field> <field name="PicServerPort">0</field> <field name="BindServerIP">0</field> <field name="BindServerPort">0</field> <field name="Charges">0</field> </row> <row> <field name="id">101</field> <field name="ServerName">VikingConquer</field> <field name="ServerIP">192.168.1.3</field> <field name="ServerPort">9960</field> <field name="FlashName">VikingConquer</field> <field name="FlashIcon">Group13/server1.swf</field> <field name="FlashHint"></field> <field name="Child">0</field> <field name="PicServerIP">0</field> <field name="PicServerPort">0</field> <field name="BindServerIP">0</field> <field name="BindServerPort">0</field> <field name="Charges">0</field> </row> </table_data> </database> </mysqldump>
public unsafe static void CreateDHKey
public unsafe static void CreateDHKey(ServerSockets.SecuritySocket obj, ServerSockets.Packet Stream) { try { byte[] buffer = new byte[36]; bool extra = false; string text = System.Text.ASCIIEncoding.ASCII.GetString(obj.DHKeyBuffer.buffer, 0, obj.DHKeyBuffer.Length()); if (!text.EndsWith("TQClient")) { System.Buffer.BlockCopy(obj.EncryptedDHKeyBuffer.buffer, obj.EncryptedDHKeyBuffer.Length() - 36, buffer, 0, 36); extra = true; } // MyConsole.PrintPacketAdvanced(Stream.Memory, Stream.Size); string key; if (Stream.GetHandshakeReplyKey(out key)) { obj.SetDHKey = true; obj.Game.DHKey.HandleResponse(key); var compute_key = obj.Game.DHKeyExchance.PostProcessDHKey(obj.Game.DHKey.ToBytes()); //obj.Game.Crypto.SetIVs(new byte[8], new byte[8]); obj.Game.Crypto.GenerateKey(compute_key); obj.Game.Crypto.Reset(); } else { obj.Disconnect(); return; } if (extra) { Stream.Seek(0); obj.Game.Crypto.Decrypt(buffer, 0, Stream.Memory, 0, 36); Stream.Size = buffer.Length; Stream.Size = buffer.Length; Stream.Seek(2); ushort PacketID = Stream.ReadUInt16(); Action<Client.GameClient, ServerSockets.Packet> hinvoker; if (MsgInvoker.TryGetInvoker(PacketID, out hinvoker)) { hinvoker(obj.Game, Stream); } else { obj.Disconnect(); MyConsole.WriteLine("DH KEY Not found the packet ----> " + PacketID); } } } catch (Exception e) { MyConsole.WriteException(e); } }