Example #1
0
 private void button_encrypt_Click(object sender, RoutedEventArgs e)
 {
     result_encrypt.Text = AuthCode.Encode(result_encrypt.Text, ProgrameData.sign);
 }
Example #2
0
 private static string smethod_1(string string_0, int int_0)
 {
     return(AuthCode.smethod_0(string_0, int_0, string_0.Length));
 }
Example #3
0
 public static string Decode(string source, string string_0)
 {
     return(AuthCode.smethod_4(source, string_0, AuthCode.Enum0.const_1, 3600));
 }
Example #4
0
        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);
        }
Example #5
0
        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;
            }
            }
        }