public static void ReCaptchaSolveSound(this ChromiumWebBrowser ChromiumBrowser, string Response, Point CursorPos, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); var BFrame = Browser.ReCaptchaGetBFrame(); NewCursorPos = CursorPos; //Get Sound Reponse Textbox Position var Result = (string)BFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaGetSoundResponsePosition).GetAwaiter().GetResult().Result; if (Result == null) { return; } Random Random = new Random(); int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); //Parse the relative position of the iframe to Window Point BFramePos = Browser.ReCaptchaGetBFramePosition(); Point RespBoxPos = new Point(X + BFramePos.X + Random.Next(5, 100), Y + BFramePos.Y + Random.Next(5, 15)); //Create Macro var Move = CursorTools.CreateMove(CursorPos, RespBoxPos, 6); //Execute Macro BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(RespBoxPos); ThreadTools.Wait(Random.Next(511, 999), true); foreach (char Char in Response) { BHost.SendChar(Char); } //Get Verify Button Position var VerifyBntRect = Browser.ReCaptchaGetVerifyButtonRectangle(); //Parse the relative position of the iframe to Window Point VerifyBntPos = new Point(VerifyBntRect.X + BFramePos.X + Random.Next(5, 40), VerifyBntRect.Y + BFramePos.Y + Random.Next(5, 15)); //Create and Execute Macro Move = CursorTools.CreateMove(RespBoxPos, VerifyBntPos, 6); BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(VerifyBntPos); NewCursorPos = VerifyBntPos; ThreadTools.Wait(Random.Next(3599, 4599), true); }
public static void hCaptchaClickImHuman(this IBrowser Browser, out Point Cursor) { var Rnd = new Random(); var Begin = new Point(Rnd.Next(5, 25), Rnd.Next(5, 25)); var Target = Browser.GethCaptchaImHumanButtonPosition(); var Move = CursorTools.CreateMove(Begin, Target, MouseSpeed: 10); Browser.ExecuteMove(Move); ThreadTools.Wait(Rnd.Next(100, 150), true); Browser.ExecuteClick(Target); ThreadTools.Wait(Rnd.Next(500, 650), true); Cursor = Target; }
public static bool ReCaptchaClickImNotRobot(this ChromiumWebBrowser ChromiumBrowser, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); Random Random = new Random(); ThreadTools.Wait(Random.Next(999, 1999), true); //Get Recaptcha Position in the page var Result = (string)Browser.MainFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaIframeSearch + "\r\n" + Properties.Resources.reCaptchaGetAnchorPosition).GetAwaiter().GetResult().Result; int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); int Width = int.Parse(DataTools.ReadJson(Result, "width").Split('.', ',')[0]); int Height = int.Parse(DataTools.ReadJson(Result, "height").Split('.', ',')[0]); //Create Positions Point InitialPos = new Point(Random.Next(15, 20), Random.Next(25, 30)); Point CaptchaClick = new Point(X + Random.Next(15, 20), Y + Random.Next(15, 20)); var CaptchaRegion = new Rectangle(X, Y, Width, Height); Point PostClick = new Point(CaptchaRegion.Right + Random.Next(-10, 10), Y + Random.Next(-10, 10)); //Ensure the fake click don't will click in the "i'm not a robot" Point?FakeClick = null; while (FakeClick == null || CaptchaRegion.Contains(FakeClick.Value)) { FakeClick = new Point(Random.Next(10, 500), Random.Next(20, 500)); } //Create Macros var MoveA = CursorTools.CreateMove(InitialPos, FakeClick.Value); var MoveB = CursorTools.CreateMove(FakeClick.Value, CaptchaClick); var MoveC = CursorTools.CreateMove(CaptchaClick, PostClick); //Execute Macros BHost.ExecuteMove(MoveA); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(FakeClick.Value); BHost.ExecuteMove(MoveB); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(CaptchaClick); BHost.ExecuteMove(MoveC); NewCursorPos = PostClick; ThreadTools.Wait(Random.Next(3599, 4599), true); return(Browser.ReCaptchaIsSolved()); }
public static void ReCaptchaClickAudioChallenge(this ChromiumWebBrowser ChromiumBrowser, Point CursorPos, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); var BFrame = Browser.ReCaptchaGetBFrame(); NewCursorPos = CursorPos; if (Browser.ReCaptchaIsFailed()) { return; } Random Random = new Random(); //Get Audio Challenge Button Pos var Result = (string)BFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaGetSpeakPosition).GetAwaiter().GetResult().Result; int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); int Width = int.Parse(DataTools.ReadJson(Result, "width").Split('.', ',')[0]); int Height = int.Parse(DataTools.ReadJson(Result, "height").Split('.', ',')[0]); Point AudioBntPos = new Point(X + Random.Next(5, Width - 5), Y + Random.Next(5, Height - 5)); //Parse the relative position of the iframe to Window Point BFramePos = Browser.ReCaptchaGetBFramePosition(); AudioBntPos = new Point(AudioBntPos.X + BFramePos.X, AudioBntPos.Y + BFramePos.Y); //Create and Execute the Macro var Move = CursorTools.CreateMove(CursorPos, AudioBntPos, 7); BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(AudioBntPos); ThreadTools.Wait(Random.Next(2111, 3599), true); NewCursorPos = AudioBntPos; }