Example #1
0
    void Update()
    {
        UpdateRotation();


        if (lastCursorTool != currentCursorTool)
        {
            if (lastCursorTool != CursorTools.None)
            {
                Destroy(cursor.gameObject);
            }

            if (currentCursorTool != CursorTools.None)
            {
                cursor = DrawCursor(currentPrefabIndex);
            }
            lastCursorTool = currentCursorTool;
        }

        if (currentCursorTool == CursorTools.Rail)
        {
            if (lastCursorPrefabIndex != currentPrefabIndex)
            {
                Destroy(cursor.gameObject);
                cursor = DrawCursor(currentPrefabIndex);

                lastCursorPrefabIndex = currentPrefabIndex;
            }
        }
    }
Example #2
0
    void UpdateRotation()
    {
        if (Input.GetKey("1") && keyIsUp)
        {
            keyIsUp           = false;
            currentCursorTool = CursorTools.None;
        }
        if (Input.GetKey("2") && keyIsUp)
        {
            keyIsUp           = false;
            currentCursorTool = CursorTools.Rail;
        }
        if (Input.GetKey("3") && keyIsUp)
        {
            keyIsUp           = false;
            currentCursorTool = CursorTools.Bulldozer;
        }



        if (Input.GetKey("r") && keyIsUp)
        {
            keyIsUp = false;
            currentPrefabIndex++;
            if (currentPrefabIndex > 3)
            {
                currentPrefabIndex = 0;
            }
        }

        if (Input.GetKey("e") && keyIsUp)
        {
            keyIsUp = false;

            cursorRot--;
            if (cursorRot < 1)
            {
                cursorRot = 6;
            }
            SetCursorPos(cursorX, cursorY);
        }
        else if (Input.GetKey("q") && keyIsUp)
        {
            keyIsUp = false;

            cursorRot++;
            if (cursorRot > 6)
            {
                cursorRot = 1;
            }
            SetCursorPos(cursorX, cursorY);
        }

        if (!Input.GetKey("e") && !Input.GetKey("q") && !Input.GetKey("r") && !Input.GetKey("1") && !Input.GetKey("2") && !Input.GetKey("3"))
        {
            keyIsUp = true;
        }
    }
Example #3
0
        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);
        }
Example #4
0
        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;
        }
Example #5
0
        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());
        }
Example #6
0
        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;
        }
Example #7
0
 public void SetCursorType(int cursorType)
 {
     currentCursorTool = (CursorTools)cursorType;
 }