NetworkStream / stream.write , hexa values.
Hello,
After tcpclient is connected i must send this packet for login.:
HEXA ASCII
00 33 00 07 00 00 03 B7-24 15 00 00 00 20 66 63 .3.....·$.... fc
66 38 36 34 63 39 61 37-34 39 33 38 39 65 30 39 f864c9a749389e09
63 65 37 39 34 63 62 65-66 39 61 66 30 61 00 05 ce794cbef9af0a..
35 2E 34 2E 34 00 09 00-01 00 00 00 03 50 4E 47 5.4.4........PNG
i sniffed this packet, after i logged manually.
OK. here is my code
int userid = 62333973;
string userid_hex_form = Convert.ToString(userid, 16); \\<---- this will be: 3B72415
string a = "0033000700000";
string b = "00000020";
string c = a + userid_hex_form + b; \\ <---- all this should be: 00 33 00 07 00 00 03 B7-24 15 00 00 00 20
string d = "0005352E342E340009000100000003504E47";
string f = HexAsciiConvert(c);
string g = HexAsciiConvert(d);
try
{
string szData = (f + sSID + g); \\ sSID (sessionid) is the green code, this code changes on every login
byte[] byData = System.Text.Encoding.ASCII.GetBytes(szData);
Int32 port = 8080;
TcpClient client = new TcpClient(sGameServerIp, port);
NetworkStream stream = client.GetStream();
stream.Write(byData, 0, byData.Length);
byData = new Byte[1024];
String responseData = String.Empty;
Int32 bytes = stream.Read(byData, 0, byData.Length);
responseData = System.Text.Encoding.ASCII.GetString(byData, 0, bytes);
}
catch (SocketException e)
{
}
static string HexAsciiConvert(string hex)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= hex.Length - 2; i += 2)
{
sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hex.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber))));
}
return sb.ToString();
}
but my packet looks like:
00 33 00 07 00 00 03 3F-24 15 00 00 00 20 37 64 .3.....?$.... 7d
65 39 63 37 32 36 62 30-36 34 39 61 63 34 65 37 e9c726b0649ac4e7
65 30 38 32 64 32 37 35-33 62 63 63 33 64 00 05 e082d2753bcc3d..
35 2E 34 2E 34 00 09 00-01 00 00 00 03 50 4E 47 5.4.4........PNG
any ideas?
thx