コード例 #1
0
ファイル: Vip72.cs プロジェクト: thankhuong/autolead_pc
        // Token: 0x0600059D RID: 1437 RVA: 0x000340C8 File Offset: 0x000322C8
        public bool getip(string country)
        {
            byte[] array  = new byte[1];
            int[]  array2 = new int[]
            {
                0
            };
            byte code = RunData.getInstance().listCountryCode.FirstOrDefault((countrycode x) => x.country == country).code;

            array[0] = code;
            int num = 4482683;

            if (Vip72.Vip72Process != null && !Vip72.Vip72Process.HasExited)
            {
                IntPtr parentHandle = Vip72.FindWindowInProcess(Vip72.Vip72Process, (string s) => s.StartsWith("VIP72 Socks Client"));
                IntPtr value        = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                int    num2         = 0;
                Vip72.WriteProcessMemory((int)value, num, array, 1, ref num2);
                array2[0] = 0;
                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "citycode\\" + code.ToString() + ".dat"))
                {
                    string[] array3 = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "citycode\\" + code.ToString() + ".dat");
                    Random   random = new Random();
                    int      num3   = Convert.ToInt32(array3[random.Next(0, array3.Count <string>())].Split(new string[]
                    {
                        "|"
                    }, StringSplitOptions.None)[1]);
                    array2[0] = num3;
                }
                Vip72.WriteProcessMemory((int)value, num + 1, array2, 4, ref num2);
                IntPtr intPtr = Vip72.ControlGetHandle(parentHandle, "Button", 127);
                Vip72.ControlClick(intPtr);
                Vip72.ControlGetHandle(parentHandle, "Edit", 131);
                DateTime now = DateTime.Now;
                while (Vip72.ControlGetState(intPtr, 134217728))
                {
                    Thread.Sleep(100);
                    if (Vip72.Vip72Process.HasExited)
                    {
                        return(false);
                    }
                    if (!Vip72.Vip72Process.Responding || (DateTime.Now - now).TotalSeconds > 30.0)
                    {
                        try
                        {
                            if (!Vip72.Vip72Process.HasExited)
                            {
                                Vip72.Vip72Process.Kill();
                            }
                        }
                        catch (Exception)
                        {
                        }
                        return(false);
                    }
                }
            }
            return(true);
        }
コード例 #2
0
        public bool getip(byte countryindex)
        {
            bool flag;

            byte[] numArray  = new byte[1];
            int[]  numArray1 = new int[1];
            numArray[0] = countryindex;
            int num = 4482683;

            if ((Vip72.Vip72Process == null ? false : !Vip72.Vip72Process.HasExited))
            {
                IntPtr intPtr  = Vip72.FindWindowInProcess(Vip72.Vip72Process, (string s) => s.StartsWith("VIP72 Socks Client"));
                IntPtr intPtr1 = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                int    num1    = 0;
                Vip72.WriteProcessMemory((int)intPtr1, num, numArray, 1, ref num1);
                numArray1[0] = 0;
                if (File.Exists(string.Concat(AppDomain.CurrentDomain.BaseDirectory, "citycode\\", countryindex.ToString(), ".dat")))
                {
                    string[] strArrays = File.ReadAllLines(string.Concat(AppDomain.CurrentDomain.BaseDirectory, "citycode\\", countryindex.ToString(), ".dat"));
                    Random   random    = new Random();
                    string   str       = strArrays[random.Next(0, strArrays.Count <string>())];
                    int      num2      = Convert.ToInt32(str.Split(new string[] { "|" }, StringSplitOptions.None)[1]);
                    numArray1[0] = num2;
                }
                Vip72.WriteProcessMemory((int)intPtr1, num + 1, numArray1, 4, ref num1);
                IntPtr intPtr2 = Vip72.ControlGetHandle(intPtr, "Button", 127);
                Vip72.ControlClick(intPtr2);
                Vip72.ControlGetHandle(intPtr, "Edit", 131);
                DateTime now = DateTime.Now;
                while (Vip72.ControlGetState(intPtr2, 134217728))
                {
                    Thread.Sleep(100);
                    if (Vip72.Vip72Process.HasExited)
                    {
                        flag = false;
                        return(flag);
                    }
                    else if ((!Vip72.Vip72Process.Responding ? true : (DateTime.Now - now).TotalSeconds > 30))
                    {
                        try
                        {
                            if (!Vip72.Vip72Process.HasExited)
                            {
                                Vip72.Vip72Process.Kill();
                            }
                        }
                        catch (Exception exception)
                        {
                        }
                        flag = false;
                        return(flag);
                    }
                }
            }
            flag = true;
            return(flag);
        }
コード例 #3
0
        // Token: 0x06000448 RID: 1096 RVA: 0x0002914C File Offset: 0x0002734C
        public bool getip(byte countryindex)
        {
            byte[] array  = new byte[1];
            int[]  array2 = new int[1];
            array[0] = countryindex;
            int  num  = 4482683;
            bool flag = Vip72.Vip72Process != null && !Vip72.Vip72Process.HasExited;
            bool result;

            if (flag)
            {
                Process             arg_5C_0 = Vip72.Vip72Process;
                Func <string, bool> arg_5C_1;
                if ((arg_5C_1 = Vip72.< > c.< > 9__38_0) == null)
                {
                    arg_5C_1 = (Vip72.< > c.< > 9__38_0 = new Func <string, bool>(Vip72.< > c.< > 9. < getip > b__38_0));
                }
                IntPtr parentHandle = Vip72.FindWindowInProcess(arg_5C_0, arg_5C_1);
                IntPtr value        = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                int    num2         = 0;
                Vip72.WriteProcessMemory((int)value, num, array, 1, ref num2);
                array2[0] = 0;
                bool flag2 = File.Exists(AppDomain.CurrentDomain.BaseDirectory + "citycode\\" + countryindex.ToString() + ".dat");
                if (flag2)
                {
                    string[] array3 = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "citycode\\" + countryindex.ToString() + ".dat");
                    Random   random = new Random();
                    string   text   = array3[random.Next(0, array3.Count <string>())];
                    int      num3   = Convert.ToInt32(text.Split(new string[]
                    {
                        "|"
                    }, StringSplitOptions.None)[1]);
                    array2[0] = num3;
                }
                Vip72.WriteProcessMemory((int)value, num + 1, array2, 4, ref num2);
                IntPtr intPtr = Vip72.ControlGetHandle(parentHandle, "Button", 127);
                Vip72.ControlClick(intPtr);
                IntPtr   intPtr2 = Vip72.ControlGetHandle(parentHandle, "Edit", 131);
                DateTime now     = DateTime.Now;
                while (Vip72.ControlGetState(intPtr, 134217728))
                {
                    Thread.Sleep(100);
                    bool hasExited = Vip72.Vip72Process.HasExited;
                    if (hasExited)
                    {
                        result = false;
                        return(result);
                    }
                    bool flag3 = !Vip72.Vip72Process.Responding || (DateTime.Now - now).TotalSeconds > 30.0;
                    if (flag3)
                    {
                        try
                        {
                            bool flag4 = !Vip72.Vip72Process.HasExited;
                            if (flag4)
                            {
                                Vip72.Vip72Process.Kill();
                            }
                        }
                        catch (Exception)
                        {
                        }
                        result = false;
                        return(result);
                    }
                }
            }
            result = true;
            return(result);
        }
コード例 #4
0
        // Token: 0x06000446 RID: 1094 RVA: 0x00028C54 File Offset: 0x00026E54
        public string clickip(int port)
        {
            bool   hasExited = Vip72.Vip72Process.HasExited;
            string result;

            if (hasExited)
            {
                result = "not running";
            }
            else
            {
                Process             arg_41_0 = Vip72.Vip72Process;
                Func <string, bool> arg_41_1;
                if ((arg_41_1 = Vip72.< > c.< > 9__36_0) == null)
                {
                    arg_41_1 = (Vip72.< > c.< > 9__36_0 = new Func <string, bool>(Vip72.< > c.< > 9. < clickip > b__36_0));
                }
                IntPtr parentHandle  = Vip72.FindWindowInProcess(arg_41_0, arg_41_1);
                int    value         = 4328465;
                int    lpBaseAddress = 4324304;
                IntPtr intPtr        = Vip72.ControlGetHandle(parentHandle, "Button", 7817);
                bool   flag          = Vip72.ControlGetCheck(intPtr);
                if (flag)
                {
                    Vip72.ControlClick(intPtr);
                }
                IntPtr intPtr2  = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                int    num      = 0;
                IntPtr lpBuffer = IntPtr.Zero;
                lpBuffer = Marshal.AllocHGlobal(4);
                Vip72.ReadProcessMemory(intPtr2, (IntPtr)value, lpBuffer, 4, out num);
                Random random  = new Random();
                uint   id      = (uint)Vip72.Vip72Process.Id;
                IntPtr intPtr3 = Vip72.ControlGetHandle(parentHandle, "SysListView32", 117);
                int    num2    = 0;
                while (ListViewItem1.GetListViewItem(intPtr3, id, num2, 4) != "")
                {
                    string listViewItem = ListViewItem1.GetListViewItem(intPtr3, id, num2, 4);
                    bool   flag2        = listViewItem.Contains(port.ToString()) || listViewItem.Contains("main stream");
                    if (flag2)
                    {
                        ListViewItem1.SelectListViewItem(intPtr3, id, num2);
                        int num3 = 0;
                        Vip72.SendMessageTimeout(intPtr3, 256, (IntPtr)46, IntPtr.Zero, 2, 5000, out num3);
                    }
                    else
                    {
                        num2++;
                    }
                }
                num2 = 0;
                IntPtr hwnd = Vip72.ControlGetHandle(parentHandle, "SysListView32", 116);
                while (ListViewItem1.GetListViewItem(hwnd, id, num2, 0) != "")
                {
                    num2++;
                }
                int  num4  = num2;
                bool flag3 = num4 == 0;
                if (flag3)
                {
                    result = "no IP";
                }
                else
                {
                    num2 = 0;
                    int num5 = -1;
                    while (ListViewItem1.GetListViewItem(hwnd, id, num2, 0) != "")
                    {
                        string listViewItem2 = ListViewItem1.GetListViewItem(hwnd, id, num2, 0);
                        bool   flag4         = listViewItem2.Contains(".**");
                        if (flag4)
                        {
                            num5 = random.Next(0, num4);
                            while (!ListViewItem1.GetListViewItem(hwnd, id, num5, 0).Contains(".**"))
                            {
                                num5 = random.Next(0, num4);
                            }
                            break;
                        }
                        num2++;
                    }
                    bool flag5 = num5 == -1;
                    if (flag5)
                    {
                        result = "no IP";
                    }
                    else
                    {
                        int[] lpBuffer2 = new int[]
                        {
                            num5
                        };
                        int num6 = 0;
                        Vip72.WriteProcessMemory((int)intPtr2, lpBaseAddress, lpBuffer2, 4, ref num6);
                        ListViewItem1.SelectListViewItem(hwnd, id, num5);
                        Vip72.ControlDoubleClick(hwnd);
                        Thread.Sleep(500);
                        IntPtr   controlhand = Vip72.ControlGetHandle(parentHandle, "Button", 7303);
                        IntPtr   hwnd2       = Vip72.ControlGetHandle(parentHandle, "Edit", 131);
                        DateTime now         = DateTime.Now;
                        while (!Vip72.ControlGetCheck(controlhand))
                        {
                            bool flag6 = Vip72.ControlGetText(hwnd2).Contains("ffline");
                            if (flag6)
                            {
                                result = "dead";
                                return(result);
                            }
                            bool flag7 = Vip72.ControlGetText(hwnd2).Contains("limit");
                            if (flag7)
                            {
                                try
                                {
                                    bool flag8 = !Vip72.Vip72Process.HasExited;
                                    if (flag8)
                                    {
                                        Vip72.Vip72Process.Kill();
                                    }
                                }
                                catch (Exception)
                                {
                                }
                                result = "limited";
                                return(result);
                            }
                            bool flag9 = Vip72.ControlGetText(hwnd2).Contains("can't");
                            if (flag9)
                            {
                                result = "dead";
                                return(result);
                            }
                            bool flag10 = Vip72.ControlGetText(hwnd2).Contains("disconnect");
                            if (flag10)
                            {
                                result = "dead";
                                return(result);
                            }
                            bool flag11 = Vip72.ControlGetText(hwnd2).Contains("aximum");
                            if (flag11)
                            {
                                result = "maximum";
                                return(result);
                            }
                            bool flag12 = (DateTime.Now - now).TotalSeconds > 15.0;
                            if (flag12)
                            {
                                result = "timeout";
                                return(result);
                            }
                        }
                        Thread.Sleep(500);
                        intPtr3 = Vip72.ControlGetHandle(parentHandle, "SysListView32", 117);
                        num2    = 0;
                        while (ListViewItem1.GetListViewItem(intPtr3, id, num2, 4) != "")
                        {
                            string listViewItem3 = ListViewItem1.GetListViewItem(intPtr3, id, num2, 4);
                            bool   flag13        = listViewItem3.Contains("main stream");
                            if (flag13)
                            {
                                result = ListViewItem1.GetListViewItem(intPtr3, id, num2, 0);
                                return(result);
                            }
                            num2++;
                        }
                        result = "limited";
                    }
                }
            }
            return(result);
        }
コード例 #5
0
        // Token: 0x06000442 RID: 1090 RVA: 0x000286E0 File Offset: 0x000268E0
        public bool vip72login(string username, string password, int mainPort)
        {
            Thread.Sleep(1000);
            Process[] processByName = this.GetProcessByName("vip72socks");
            Process[] array         = processByName;
            for (int i = 0; i < array.Length; i++)
            {
                Process             process  = array[i];
                Process             arg_4A_0 = process;
                Func <string, bool> arg_4A_1;
                if ((arg_4A_1 = Vip72.< > c.< > 9__32_0) == null)
                {
                    arg_4A_1 = (Vip72.< > c.< > 9__32_0 = new Func <string, bool>(Vip72.< > c.< > 9. < vip72login > b__32_0));
                }
                IntPtr parentHandle = Vip72.FindWindowInProcess(arg_4A_0, arg_4A_1);
                IntPtr hwnd         = Vip72.ControlGetHandle(parentHandle, "Static", 7955);
                bool   flag         = Vip72.ControlGetText(hwnd).EndsWith(":" + mainPort.ToString());
                if (flag)
                {
                    Vip72.Vip72Process = process;
                    break;
                }
            }
            bool flag2 = Vip72.Vip72Process != null && !Vip72.Vip72Process.HasExited && Vip72.Vip72Process.Responding;

            if (flag2)
            {
                Process             arg_EE_0 = Vip72.Vip72Process;
                Func <string, bool> arg_EE_1;
                if ((arg_EE_1 = Vip72.< > c.< > 9__32_1) == null)
                {
                    arg_EE_1 = (Vip72.< > c.< > 9__32_1 = new Func <string, bool>(Vip72.< > c.< > 9. < vip72login > b__32_1));
                }
                IntPtr parentHandle2 = Vip72.FindWindowInProcess(arg_EE_0, arg_EE_1);
                IntPtr hwnd2         = Vip72.ControlGetHandle(parentHandle2, "Static", 7955);
                bool   flag3         = !Vip72.ControlGetText(hwnd2).EndsWith(":" + mainPort.ToString());
                if (flag3)
                {
                    bool flag4 = !Vip72.Vip72Process.HasExited;
                    if (flag4)
                    {
                        Vip72.Vip72Process.Kill();
                    }
                    Vip72.Vip72Process = null;
                }
            }
            else
            {
                bool flag5 = Vip72.Vip72Process != null && !Vip72.Vip72Process.Responding;
                if (flag5)
                {
                    bool flag6 = !Vip72.Vip72Process.HasExited;
                    if (flag6)
                    {
                        Vip72.Vip72Process.Kill();
                    }
                    Vip72.Vip72Process = null;
                }
            }
            bool flag7 = Vip72.Vip72Process == null || Vip72.Vip72Process.HasExited;

            if (flag7)
            {
                Vip72.Vip72Process = Process.Start(new ProcessStartInfo
                {
                    FileName         = "vip72socks.exe",
                    WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory + "vip72",
                    Arguments        = "-mp:" + mainPort.ToString()
                });
                IntPtr value    = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                byte[] lpBuffer = new byte[]
                {
                    235
                };
                int num           = 0;
                int lpBaseAddress = 4234074;
                Vip72.WriteProcessMemory((int)value, lpBaseAddress, lpBuffer, 1, ref num);
            }
            Thread.Sleep(500);
            Process             arg_285_0 = Vip72.Vip72Process;
            Func <string, bool> arg_285_1;

            if ((arg_285_1 = Vip72.< > c.< > 9__32_2) == null)
            {
                arg_285_1 = (Vip72.< > c.< > 9__32_2 = new Func <string, bool>(Vip72.< > c.< > 9. < vip72login > b__32_2));
            }
            IntPtr parentHandle3 = Vip72.FindWindowInProcess(arg_285_0, arg_285_1);
            IntPtr intPtr        = Vip72.ControlGetHandle(parentHandle3, "Button", 119);
            IntPtr hwnd3         = Vip72.ControlGetHandle(parentHandle3, "Static", 7955);
            bool   flag8         = intPtr != IntPtr.Zero;
            bool   result;

            if (flag8)
            {
                Vip72.ControlSetText(hwnd3, "Port mac dinh:" + mainPort.ToString());
                bool flag9 = !Vip72.ControlGetState(intPtr, 134217728);
                if (flag9)
                {
                    IntPtr hwnd4 = Vip72.ControlGetHandle(parentHandle3, "Edit", 303);
                    Vip72.ControlSetText(hwnd4, username);
                    IntPtr hwnd5 = Vip72.ControlGetHandle(parentHandle3, "Edit", 301);
                    Vip72.ControlSetText(hwnd5, password);
                    Vip72.ControlClick(intPtr);
                    IntPtr   hwnd6 = Vip72.ControlGetHandle(parentHandle3, "Edit", 131);
                    DateTime now   = DateTime.Now;
                    while (Vip72.ControlGetText(hwnd6) != "System ready")
                    {
                        bool flag10 = Vip72.ControlGetText(hwnd6) == "ERROR!Login and Password is incorrect";
                        if (flag10)
                        {
                            result = false;
                            return(result);
                        }
                        bool flag11 = !Vip72.ControlGetState(intPtr, 134217728);
                        if (flag11)
                        {
                            result = false;
                            return(result);
                        }
                        Thread.Sleep(100);
                        bool flag12 = (DateTime.Now - now).Seconds > 20;
                        if (flag12)
                        {
                            result = false;
                            return(result);
                        }
                    }
                    Thread.Sleep(3000);
                }
                result = true;
            }
            else
            {
                result = this.vip72login(username, password, mainPort);
            }
            return(result);
        }
コード例 #6
0
        public string clickip(int port)
        {
            string listViewItem;

            if (!Vip72.Vip72Process.HasExited)
            {
                IntPtr intPtr  = Vip72.FindWindowInProcess(Vip72.Vip72Process, (string s) => s.StartsWith("VIP72 Socks Client"));
                int    num     = 4328465;
                int    num1    = 4324304;
                IntPtr intPtr1 = Vip72.ControlGetHandle(intPtr, "Button", 7817);
                if (Vip72.ControlGetCheck(intPtr1))
                {
                    Vip72.ControlClick(intPtr1);
                }
                IntPtr intPtr2 = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                int    num2    = 0;
                IntPtr zero    = IntPtr.Zero;
                zero = Marshal.AllocHGlobal(4);
                Vip72.ReadProcessMemory(intPtr2, (IntPtr)num, zero, 4, out num2);
                Random random  = new Random();
                uint   id      = (uint)Vip72.Vip72Process.Id;
                IntPtr intPtr3 = Vip72.ControlGetHandle(intPtr, "SysListView32", 117);
                int    num3    = 0;
                while (ListViewItem1.GetListViewItem(intPtr3, id, num3, 4) != "")
                {
                    string str = ListViewItem1.GetListViewItem(intPtr3, id, num3, 4);
                    if ((str.Contains(port.ToString()) ? false : !str.Contains("main stream")))
                    {
                        num3++;
                    }
                    else
                    {
                        ListViewItem1.SelectListViewItem(intPtr3, id, num3);
                        int num4 = 0;
                        Vip72.SendMessageTimeout(intPtr3, 256, (IntPtr)46, IntPtr.Zero, 2, 5000, out num4);
                    }
                }
                num3 = 0;
                int    num5    = -1;
                IntPtr intPtr4 = Vip72.ControlGetHandle(intPtr, "SysListView32", 116);
                while (ListViewItem1.GetListViewItem(intPtr4, id, num3, 0) != "")
                {
                    num3++;
                }
                int num6 = num3;
                if (num6 != 0)
                {
                    num3 = 0;
                    num5 = -1;
                    while (ListViewItem1.GetListViewItem(intPtr4, id, num3, 0) != "")
                    {
                        if (!ListViewItem1.GetListViewItem(intPtr4, id, num3, 0).Contains(".**"))
                        {
                            num3++;
                        }
                        else
                        {
                            num5 = random.Next(0, num6);
                            while (!ListViewItem1.GetListViewItem(intPtr4, id, num5, 0).Contains(".**"))
                            {
                                num5 = random.Next(0, num6);
                            }
                            break;
                        }
                    }
                    if (num5 != -1)
                    {
                        int[] numArray = new int[] { num5 };
                        int   num7     = 0;
                        Vip72.WriteProcessMemory((int)intPtr2, num1, numArray, 4, ref num7);
                        ListViewItem1.SelectListViewItem(intPtr4, id, num5);
                        Vip72.ControlDoubleClick(intPtr4);
                        Thread.Sleep(500);
                        IntPtr   intPtr5 = Vip72.ControlGetHandle(intPtr, "Button", 7303);
                        IntPtr   intPtr6 = Vip72.ControlGetHandle(intPtr, "Edit", 131);
                        DateTime now     = DateTime.Now;
                        while (!Vip72.ControlGetCheck(intPtr5))
                        {
                            if (Vip72.ControlGetText(intPtr6).Contains("ffline"))
                            {
                                listViewItem = "dead";
                                return(listViewItem);
                            }
                            else if (Vip72.ControlGetText(intPtr6).Contains("limit"))
                            {
                                try
                                {
                                    if (!Vip72.Vip72Process.HasExited)
                                    {
                                        Vip72.Vip72Process.Kill();
                                    }
                                }
                                catch (Exception exception)
                                {
                                }
                                listViewItem = "limited";
                                return(listViewItem);
                            }
                            else if (Vip72.ControlGetText(intPtr6).Contains("can't"))
                            {
                                listViewItem = "dead";
                                return(listViewItem);
                            }
                            else if (Vip72.ControlGetText(intPtr6).Contains("disconnect"))
                            {
                                listViewItem = "dead";
                                return(listViewItem);
                            }
                            else if (Vip72.ControlGetText(intPtr6).Contains("aximum"))
                            {
                                listViewItem = "maximum";
                                return(listViewItem);
                            }
                            else if ((DateTime.Now - now).TotalSeconds > 15)
                            {
                                listViewItem = "timeout";
                                return(listViewItem);
                            }
                        }
                        Thread.Sleep(500);
                        intPtr3 = Vip72.ControlGetHandle(intPtr, "SysListView32", 117);
                        num3    = 0;
                        while (ListViewItem1.GetListViewItem(intPtr3, id, num3, 4) != "")
                        {
                            if (!ListViewItem1.GetListViewItem(intPtr3, id, num3, 4).Contains("main stream"))
                            {
                                num3++;
                            }
                            else
                            {
                                listViewItem = ListViewItem1.GetListViewItem(intPtr3, id, num3, 0);
                                return(listViewItem);
                            }
                        }
                        listViewItem = "limited";
                    }
                    else
                    {
                        listViewItem = "no IP";
                    }
                }
                else
                {
                    listViewItem = "no IP";
                }
            }
            else
            {
                listViewItem = "not running";
            }
            return(listViewItem);
        }
コード例 #7
0
        public bool vip72login(string username, string password, int mainPort)
        {
            bool flag;

            Thread.Sleep(1000);
            Process[] processByName = this.GetProcessByName("vip72socks");
            int       num           = 0;

            while (num < (int)processByName.Length)
            {
                Process process = processByName[num];
                if (!Vip72.ControlGetText(Vip72.ControlGetHandle(Vip72.FindWindowInProcess(process, (string s) => s.StartsWith("VIP72 Socks Client")), "Static", 7955)).EndsWith(string.Concat(":", mainPort.ToString())))
                {
                    num++;
                }
                else
                {
                    Vip72.Vip72Process = process;
                    break;
                }
            }
            if ((Vip72.Vip72Process == null || Vip72.Vip72Process.HasExited ? false : Vip72.Vip72Process.Responding))
            {
                if (!Vip72.ControlGetText(Vip72.ControlGetHandle(Vip72.FindWindowInProcess(Vip72.Vip72Process, (string s) => s.StartsWith("VIP72 Socks Client")), "Static", 7955)).EndsWith(string.Concat(":", mainPort.ToString())))
                {
                    if (!Vip72.Vip72Process.HasExited)
                    {
                        Vip72.Vip72Process.Kill();
                    }
                    Vip72.Vip72Process = null;
                }
            }
            else if ((Vip72.Vip72Process == null ? false : !Vip72.Vip72Process.Responding))
            {
                if (!Vip72.Vip72Process.HasExited)
                {
                    Vip72.Vip72Process.Kill();
                }
                Vip72.Vip72Process = null;
            }
            if ((Vip72.Vip72Process == null ? true : Vip72.Vip72Process.HasExited))
            {
                ProcessStartInfo processStartInfo = new ProcessStartInfo()
                {
                    FileName         = "vip72socks.exe",
                    WorkingDirectory = string.Concat(AppDomain.CurrentDomain.BaseDirectory, "vip72"),
                    Arguments        = string.Concat("-mp:", mainPort.ToString())
                };
                Vip72.Vip72Process = Process.Start(processStartInfo);
                IntPtr intPtr   = Vip72.OpenProcess(2035711, false, Vip72.Vip72Process.Id);
                byte[] numArray = new byte[] { 235 };
                int    num1     = 0;
                int    num2     = 4234074;
                Vip72.WriteProcessMemory((int)intPtr, num2, numArray, 1, ref num1);
            }
            Thread.Sleep(500);
            IntPtr intPtr1 = Vip72.FindWindowInProcess(Vip72.Vip72Process, (string s) => s.StartsWith("VIP72 Socks Client"));
            IntPtr intPtr2 = Vip72.ControlGetHandle(intPtr1, "Button", 119);
            IntPtr intPtr3 = Vip72.ControlGetHandle(intPtr1, "Static", 7955);

            if (intPtr2 == IntPtr.Zero)
            {
                flag = this.vip72login(username, password, mainPort);
            }
            else
            {
                Vip72.ControlSetText(intPtr3, string.Concat("Port mac dinh:", mainPort.ToString()));
                if (!Vip72.ControlGetState(intPtr2, 134217728))
                {
                    IntPtr intPtr4 = Vip72.ControlGetHandle(intPtr1, "Edit", 303);
                    Vip72.ControlSetText(intPtr4, username);
                    IntPtr intPtr5 = Vip72.ControlGetHandle(intPtr1, "Edit", 301);
                    Vip72.ControlSetText(intPtr5, password);
                    Vip72.ControlClick(intPtr2);
                    IntPtr   intPtr6 = Vip72.ControlGetHandle(intPtr1, "Edit", 131);
                    DateTime now     = DateTime.Now;
                    while (Vip72.ControlGetText(intPtr6) != "System ready")
                    {
                        if (Vip72.ControlGetText(intPtr6) == "ERROR!Login and Password is incorrect")
                        {
                            flag = false;
                            return(flag);
                        }
                        else if (Vip72.ControlGetState(intPtr2, 134217728))
                        {
                            Thread.Sleep(100);
                            if ((DateTime.Now - now).Seconds > 20)
                            {
                                flag = false;
                                return(flag);
                            }
                        }
                        else
                        {
                            flag = false;
                            return(flag);
                        }
                    }
                    Thread.Sleep(3000);
                }
                flag = true;
            }
            return(flag);
        }