private void button_encrypt_Click(object sender, RoutedEventArgs e) { result_encrypt.Text = AuthCode.Encode(result_encrypt.Text, ProgrameData.sign); }
private static string smethod_1(string string_0, int int_0) { return(AuthCode.smethod_0(string_0, int_0, string_0.Length)); }
public static string Decode(string source, string string_0) { return(AuthCode.smethod_4(source, string_0, AuthCode.Enum0.const_1, 3600)); }
private static string smethod_4(string string_0, string string_1, AuthCode.Enum0 enum0_0, int int_0) { if (string_0 == null || string_1 == null) { return(string.Empty); } int int_ = 0; string_1 = AuthCode.MD5(string_1); string text = AuthCode.MD5(AuthCode.smethod_0(string_1, 16, 16)); string text2 = AuthCode.MD5(AuthCode.smethod_0(string_1, 0, 16)); string empty = string.Empty; string string_2 = text + AuthCode.MD5(text + empty); if (enum0_0 != AuthCode.Enum0.const_1) { string_0 = ((int_0 != 0) ? ((long)int_0 + AuthCode.UnixTimestamp()).ToString() : "0000000000") + AuthCode.smethod_0(AuthCode.MD5(string_0 + text2), 0, 16) + string_0; byte[] array = AuthCode.smethod_5(AuthCode.encoding_0.GetBytes(string_0), string_2); return(empty + Convert.ToBase64String(array)); } byte[] byte_; string empty2; try { byte_ = Convert.FromBase64String(AuthCode.smethod_1(string_0, int_)); goto IL_B7; } catch { try { byte_ = Convert.FromBase64String(AuthCode.smethod_1(string_0 + "=", int_)); } catch { try { byte_ = Convert.FromBase64String(AuthCode.smethod_1(string_0 + "==", int_)); } catch { empty2 = string.Empty; return(empty2); } } goto IL_B7; } return(empty2); IL_B7: string @string = AuthCode.encoding_0.GetString(AuthCode.smethod_5(byte_, string_2)); long num = long.Parse(AuthCode.smethod_0(@string, 0, 10)); if ((num == 0L || num - AuthCode.UnixTimestamp() > 0L) && AuthCode.smethod_0(@string, 10, 16) == AuthCode.smethod_0(AuthCode.MD5(AuthCode.smethod_1(@string, 26) + text2), 0, 16)) { return(AuthCode.smethod_1(@string, 26)); } return(string.Empty); }
private void processData(Session obj) { string host = obj.Request.Headers.Host; KeyValuePair <string, string> server = im.serverHelper.getServerFromDictionary(host); if (server.Key == "" && server.Value == "") { return; } string api = obj.Request.RequestLine.URI.Substring(server.Key.Length - ("http://" + host).Length); Console.WriteLine(api); switch (api) { case RequestUrls.GetDigitalUid: { string data = obj.Response.BodyAsString; string decoded = AuthCode.Decode(data, "yundoudou"); Console.WriteLine(decoded); dynamic jsonobj = DynamicJson.Parse(decoded); token = jsonobj.sign; uid = jsonobj.uid; //wtf? Models.SimpleUserInfo.sign = token; Models.SimpleUserInfo.uid = uid; im.uiHelper.setStatusBarText_InThread(String.Format("已登录服务器: {0},token: {1},uid: {2}", server.Value, token, uid)); Models.SimpleUserInfo.host = server.Key; break; } case RequestUrls.GetServerTime: //同步服务器时间 { if (String.IsNullOrEmpty(token) || String.IsNullOrEmpty(uid)) { im.uiHelper.setStatusBarText_InThread("未获取到token!请重新登录游戏以使本工具正常工作!"); break; } if (String.IsNullOrEmpty(token)) { break; } string decoded = AuthCode.Decode(obj.Response.BodyAsString, token); dynamic jsonobj = DynamicJson.Parse(decoded); Console.WriteLine("Server: " + jsonobj.now + " \nClient: " + CommonHelper.ConvertDateTimeInt(DateTime.Now)); SimpleUserInfo.timeoffset = Convert.ToInt32(jsonobj.now) - CommonHelper.ConvertDateTimeInt(DateTime.Now); //server = local + offset Console.WriteLine("Set timeoffset: " + SimpleUserInfo.timeoffset); break; } default: { if (String.IsNullOrEmpty(token) || String.IsNullOrEmpty(uid)) { im.uiHelper.setStatusBarText_InThread("未获取到token!请重新登录游戏以使本工具正常工作!"); } else { try { StringBuilder sb = new StringBuilder(); sb.Append("api: " + api + "\n"); NameValueCollection clientdata = new NameValueCollection(); string serverdata = AuthCode.Decode(obj.Response.BodyAsString, token); if (String.IsNullOrEmpty(serverdata)) //没有加密 { serverdata = obj.Response.BodyAsString; } if (!String.IsNullOrEmpty(obj.Response.BodyAsString)) { clientdata = HttpUtility.ParseQueryString(obj.Request.BodyAsString); if (clientdata.AllKeys.Contains("outdatacode")) { clientdata["outdatacode"] = AuthCode.Decode(clientdata["outdatacode"], token, SimpleUserInfo.timeoffset); Console.WriteLine("outdatacode: " + clientdata["outdatacode"]); sb.Append("client: " + clientdata["outdatacode"] + "\n"); } else { clientdata["outdatacode"] = "[]"; } sb.Append("server: " + serverdata); im.logger.Log(sb.ToString()); } if (serverdata.Length < 100) { Console.WriteLine("Serverdata: " + serverdata); } processMainData(api, clientdata, serverdata); } catch (Exception e) { Console.WriteLine(e); } } break; } } }