<?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); } }