/// <summary>
 /// Метод решения ImagesCaptcha
 /// </summary>
 /// <param name="URLToCaptcha">Ссылка на Captcha</param>
 /// <param name="account">Аккаунт</param>
 /// <returns></returns>
 public static string GetImagesCaptcha(string URLToCaptcha, CookieDictionary cookieDictionary, string account)
 {
     try
     {
         SaveData.WriteToLog(account, "Решаем ImagesCaptcha");
         using (HttpRequest request = new HttpRequest())
         {
             request.Cookies = cookieDictionary;
             var    base64 = Convert.ToBase64String(request.Get(URLToCaptcha).ToBytes());
             string json   = $"{{\"clientKey\":\"{ClientKey}\",\"task\":{{\"type\":\"ImageToTextTask\",\"body\":\"{base64}\",\"phrase\":false,\"case\":false,\"numeric\":false,\"math\":0,\"minLength\":0,\"maxLength\":0}}}}";
             string taskID = request.Post("https://api.anti-captcha.com/createTask ", json, "application/json").ToString();
             taskID = taskID.Substring("\"taskId\":", "}");
             for (int i = 0; i < 50; i++)
             {
                 Thread.Sleep(5000);
                 string result = request.Post("https://api.anti-captcha.com/getTaskResult", $"{{\"clientKey\": \"{ClientKey}\",\"taskId\": {taskID}}}", "application/json").ToString();
                 if (result.Contains("\"errorId\":0,\"status\":\"ready\""))
                 {
                     SaveData.WriteToLog(account, "ImagesCaptcha решена.");
                     return(result.Substring("\"text\":\"", "\""));
                 }
             }
         }
     }
     catch (Exception exception) { MessageBox.Show(exception.Message); }
     SaveData.WriteToLog("Captcha", "Не смогли решить ImagesCaptcha");
     return("");
 }
 public static void StartThread()
 {
     try
     {
         SaveData.WriteToLog("SYSTEM", $"Начало работы программы. Режим {WorkWithAccount.OperatingMode}");
         Threads.Clear();
         SaveData.WriteToLog("SYSTEM", $"Создаем потоки");
         for (int i = 0; i < countThread; i++)
         {
             Thread thread = new Thread(() => WorkWithAccount.StartWork())
             {
                 IsBackground = true
             };
             thread.Name = $"Поток {i}";
             Threads.Add(thread);
             Threads[i].Start();
         }
         SaveData.WriteToLog("SYSTEM", $"Создано {Threads.Count.ToString()} потоков");
         new Thread(() => CheckCompletion())
         {
             IsBackground = true
         }.Start();
     }
     catch (Exception exception) { MessageBox.Show(exception.Message); }
 }
 /// <summary>
 /// Метод решения ReCaptcha
 /// </summary>
 /// <param name="websiteURL">Ссылка на сайт, на котором решаем ReCaptcha</param>
 /// <param name="websiteKey">SiteKey</param>
 /// <param name="account">Аккаунт</param>
 /// <returns></returns>
 public static string GetRecaptcha(string websiteURL, string websiteKey, string account)
 {
     try
     {
         SaveData.WriteToLog(account, "Решаем ReCaptcha");
         using (HttpRequest request = new HttpRequest())
         {
             string json   = $"{{\"clientKey\":\"{ClientKey}\",\"task\":{{\"type\":\"RecaptchaV2TaskProxyless\",\"websiteURL\":\"{websiteURL}\",\"websiteKey\":\"{websiteKey}\"}},\"softId\":0,\"languagePool\":\"en\"}}";
             string taskID = request.Post("https://api.anti-captcha.com/createTask ", json, "application/json").ToString();
             taskID = taskID.Substring("\"taskId\":", "}");
             for (int i = 0; i < 50; i++)
             {
                 Thread.Sleep(5000);
                 string result = request.Post("https://api.anti-captcha.com/getTaskResult", $"{{\"clientKey\": \"{ClientKey}\",\"taskId\": {taskID}}}", "application/json").ToString();
                 if (result.Contains("\"errorId\":0,\"status\":\"ready\""))
                 {
                     SaveData.WriteToLog(account, "ReCaptcha решена.");
                     return(result.Substring("\"gRecaptchaResponse\":\"", "\""));
                 }
             }
         }
     }
     catch (Exception exception) { MessageBox.Show(exception.Message); }
     SaveData.WriteToLog("Captcha", "Не смогли решить ReCaptcha");
     return("");
 }
예제 #4
0
 public static void StartWork()
 {
     try
     {
         SaveData.WriteToLog(null, "Начал свою работу");
         if (OperatingMode == "Регистратор")
         {
             RegistrationAccount();
         }
     }
     catch (Exception exception) { MessageBox.Show(exception.Message); }
 }
        public static string GetResult(string tzid, string option)
        {
            for (int i = 0; i < 85; i++)
            {
                try
                {
                    using (var request = new HttpRequest())
                    {
                        request.UserAgent             = Http.ChromeUserAgent();
                        request.EnableEncodingContent = true;

                        string Response = request.Get("api.sms-reg.com/getState.php", new RequestParams()
                        {
                            ["tzid"] = tzid, ["apikey"] = APIKey
                        }).ToString();

                        // Ожидаем выдачу номера/получение смс.
                        if (Response.Contains("TZ_INPOOL") || Response.Contains("TZ_NUM_WAIT"))
                        {
                            Thread.Sleep(10000);
                            continue;
                        }
                        // Нету подходящих номеров
                        if (Response.Contains("WARNING_NO_NUMS"))
                        {
                            SaveData.WriteToLog("Sms-Reg", "Не нашелся подходящий номер");
                            return(null);
                        }
                        // Номер успешно выдан / Пришел код
                        if (Response.Contains("TZ_NUM_PREPARE") || Response.Contains("TZ_NUM_ANSWER"))
                        {
                            return(Response.BetweenOrEmpty(option, "\""));
                        }
                        if (Response.Contains("TZ_OVER_OK") || Response.Contains("TZ_OVER_EMPTY") || Response.Contains("TZ_OVER_NR") || Response.Contains("TZ_DELETED"))
                        {
                            return(null);
                        }

                        if (Response.Contains("WARNING_TOO_MANY_REQUESTS"))
                        {
                            SaveData.WriteToLog("Sms-Reg", "WARNING_TOO_MANY_REQUESTS");
                            Thread.Sleep(60000);
                        }
                    }
                }
                catch (Exception exception) { MessageBox.Show(exception.Message); }
            }
            return(null);
        }
        public static (string tzid, string number) GetNumber()
        {
            string Response;

            try
            {
                for (int i = 0; i < 20; i++)
                {
                    using (var request = new HttpRequest())
                    {
                        request.UserAgent             = Http.ChromeUserAgent();
                        request.EnableEncodingContent = true;

                        var UrlParams = new RequestParams
                        {
                            ["country"] = Country,
                            ["service"] = Service,
                            ["apikey"]  = APIKey
                        };
                        lock (locker)
                        {
                            Response = request.Get("api.sms-reg.com/getNum.php", UrlParams).ToString();

                            if (Response.Contains("WARNING_WAIT15MIN"))
                            {
                                SaveData.WriteToLog("Sms-Reg", "Ждем 15 минут, на получение номера");
                                Thread.Sleep(901000);
                            }
                        }

                        if (Response.Contains("response\":\"1\""))
                        {
                            string tzid = Response.BetweenOrEmpty("tzid\":\"", "\"");
                            return(tzid, GetResult(tzid, "number\":\""));
                        }
                        else
                        {
                            Thread.Sleep(5000);
                        }
                    }
                }
            }
            catch (Exception exception) { MessageBox.Show(exception.Message); }
            return(null, null);
        }
 public static void CheckCompletion()
 {
     try
     {
         while (true)
         {
             Thread.Sleep(500);
             if (!IsAlive())
             {
                 MessageBox.Show("Программа закончила свою работу");
                 SaveData.WriteToLog("SYSTEM", $"Программа закончила свою работу");
                 isAliveTimer = false;
                 return;
             }
         }
     }
     catch (Exception exception)
     { MessageBox.Show(exception.Message); }
 }
예제 #8
0
        public static void RegistrationAccount()
        {
            try
            {
                string      Password, UserAgent, NameSurname;
                string      proxyLog = "";
                ProxyClient proxyClient;
                while (true)
                {
                    SaveData.WriteToLog($"System", "Попытка получить номер");
                    (string tzid, string number)number = GetSmsReg.GetNumber();
                    #region Выдача аккаунтов
                    lock (locker)
                    {
                        if (SaveData.UsedRegistration < CountAccountForRegistration)
                        {
                            (string NameSurname, string Password)DataForRegistration = GetNameSurnamePassword.Get();

                            if (String.IsNullOrEmpty(DataForRegistration.NameSurname) || String.IsNullOrEmpty(DataForRegistration.Password) || string.IsNullOrEmpty(number.number))
                            {
                                continue;
                            }

                            NameSurname = DataForRegistration.NameSurname;
                            Password    = DataForRegistration.Password;
                            SaveData.UsedRegistration++;
                            SaveData.SaveAccount($"{number.number}:{Password}", SaveData.ProcessedRegistrationList);
                        }
                        else
                        {
                            break;
                        }
                        UserAgent   = GetUserAgent.get();
                        proxyClient = GetProxy.get();
                        proxyLog    = proxyClient == null ? "" : $";{proxyClient.ToString()}";
                    }
                    #endregion

                    #region Вызов метода регистрации, и проверка результата
                    SaveData.WriteToLog($"{number.number}:{Password}", "Попытка зарегестрировать аккаунт");

                    (Status status, CookieStorage cookie)Data;
                    for (int i = 0; i < countRequest; i++)
                    {
                        Data = GoRegistrationAccount(NameSurname, number, Password, UserAgent, proxyClient);
                        switch (Data.status)
                        {
                        case Status.True:
                            SaveData.GoodRegistration++;
                            SaveData.WriteToLog($"{number.number}:{Password}", "Аккаунт успешно зарегестрирован");
                            SaveData.SaveAccount($"{number.number}:{Password}{proxyLog}|{UserAgent}", SaveData.GoodRegistrationList);
                            Data.cookie.SaveToFile($"out/cookies/{number.number}.jar", true);
                            break;

                        case Status.False:
                            SaveData.InvalidRegistration++;
                            SaveData.WriteToLog($"{number.number}:{Password}", "Аккаунт не зарегестрирован");
                            SaveData.SaveAccount($"{number.number}:{Password}{proxyLog}|{UserAgent}", SaveData.InvalidRegistrationList);
                            break;

                        default:
                            SaveData.WriteToLog($"{number.number}:{Password}", "Неизвестная ошибка, повторяем.");
                            UserAgent   = GetUserAgent.get();
                            proxyClient = GetProxy.get();
                            continue;
                        }
                        break;
                    }
                    int sleep = rand.Next(minPauseRegistration, maxPauseRegistration);
                    SaveData.WriteToLog($"System", $"Засыпаем на {sleep/60000} минут");
                    Thread.Sleep(sleep);
                    #endregion
                }
            }
            catch (Exception exception) { MessageBox.Show(exception.Message); }
        }