예제 #1
0
        // update Port in proxy class
        private static void LoadHideMyAssCaptcha(HideMyAssProxyStruct proxy)
        {
            HttpClient connection = new HttpClient();

            string num = "";
            byte[] bitmapData = null;

            try
            {
                bitmapData = connection.DownloadData(proxy.PortImgURL);
            }
            catch (Exception e)
            {
                ConsoleLog.WriteLine("LoadHideMyAss: load 3 error. " + e.Message);
                return;
            }

            //Bitmap source = new Bitmap(new MemoryStream(bitmapData));
            //source.Save(@"C:\source" + count.ToString() + ".bmp");
            Bitmap captcha = LoadHideMyAssCaptchaCutSource(new Bitmap(new MemoryStream(bitmapData)), 0);
            //Bitmap captcha = CaptchaCutSource(new Bitmap(@"C:\source.bmp"));
            //captcha.Save(@"C:\cut" + count.ToString() + ".bmp");

            for (int captchaX = 0; captchaX < captcha.Width - hidemyassSamplesMaxWidth; captchaX++)
            {
                foreach (Bitmap trySample in hidemyassSamples)
                {
                    Bitmap lSample;
                    lock (locker)
                    {
                        lSample = new Bitmap(trySample);
                    }

                    if (LoadHideMyAssCaptchaCompareSamples(captcha, captchaX, lSample))
                    {
                        num += hidemyassSamples.IndexOf(trySample).ToString();
                        break;
                    }
                }
            }

            proxy.Port = num.ToString();

            return;
        }
예제 #2
0
 public Captcha(string Referer)
 {
     try
     {
         HttpClient client = new HttpClient();
         client.Referer = Referer;
         //Вытаскиваем токен каптчи
         string CaptchaData = client.DownloadString(Captcha.CaptchaAPIURL);
         CaptchaData = CaptchaData.Remove(0, CaptchaData.IndexOf(Captcha.ChallengeScanString) +
                                        ChallengeScanString.Length);
         CaptchaData = CaptchaData.Remove(0, CaptchaData.IndexOf(Captcha.ChallengeScanString2) +
                                        ChallengeScanString2.Length);
         CaptchaData = CaptchaData.Trim();
         if (CaptchaData[0] == '\'') CaptchaData = CaptchaData.Remove(0, 1);
         CaptchaData = CaptchaData.Remove(CaptchaData.IndexOf('\''));
         /*
         client.Referer=Referer;
         string CaptchaImageURL=client.DownloadString(Captcha.CaptchaGAPIURL);
         CaptchaImageURL=CaptchaImageURL.Substring(CaptchaImageURL.IndexOf('\'')+1);
         CaptchaImageURL=CaptchaImageURL.Remove(CaptchaImageURL.IndexOf('\''));
         */
         string CaptchaImageURL = Captcha.CaptchaURLBase + CaptchaData;
         //Грузим картинку с каптчей
         client.Referer = null;
         Image = client.DownloadData(CaptchaImageURL);
         ChallengeID = CaptchaData;
     }
     catch (Exception e)
     {
         ConsoleLog.WriteLine("Unable to load captcha: " + e.Message);
         throw e;
     }
 }