Exemple #1
0
        public string clickip(int port)
        {
            string str;

            if (Vip72Rieng.Vip72RiengProcess.HasExited)
            {
                str = "not running";
            }
            else
            {
                IntPtr windowInProcess = Vip72Rieng.FindWindowInProcess(Vip72Rieng.Vip72RiengProcess, (Func <string, bool>)(s => s.StartsWith("VIP72 Socks Client")));
                int    num1            = 4328465;
                int    lpBaseAddress   = 4324304;
                IntPtr handle1         = Vip72Rieng.ControlGetHandle(windowInProcess, "Button", 7817);
                if (Vip72Rieng.ControlGetCheck(handle1))
                {
                    Vip72Rieng.ControlClick(handle1);
                }
                IntPtr hProcess            = Vip72Rieng.OpenProcess(2035711, false, Vip72Rieng.Vip72RiengProcess.Id);
                int    lpNumberOfBytesRead = 0;
                IntPtr zero      = IntPtr.Zero;
                IntPtr lpBuffer1 = Marshal.AllocHGlobal(4);
                Vip72Rieng.ReadProcessMemory(hProcess, (IntPtr)num1, lpBuffer1, 4, out lpNumberOfBytesRead);
                Random random  = new Random();
                uint   id      = (uint)Vip72Rieng.Vip72RiengProcess.Id;
                IntPtr handle2 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 117);
                int    num2    = 0;
                while (ListViewItem1.GetListViewItem(handle2, id, num2, 4) != "")
                {
                    string listViewItem = ListViewItem1.GetListViewItem(handle2, id, num2, 4);
                    if ((listViewItem.Contains(port.ToString()) ? 1U : (listViewItem.Contains("main stream") ? 1U : 0U)) > 0U)
                    {
                        ListViewItem1.SelectListViewItem(handle2, id, num2);
                        int lpdwResult = 0;
                        Vip72Rieng.SendMessageTimeout(handle2, 256, (IntPtr)46, IntPtr.Zero, 2, 5000, out lpdwResult);
                    }
                    else
                    {
                        ++num2;
                    }
                }
                int    num3    = 0;
                IntPtr handle3 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 116);
                while (ListViewItem1.GetListViewItem(handle3, id, num3, 0) != "")
                {
                    ++num3;
                }
                int maxValue = num3;
                if (maxValue == 0)
                {
                    str = "no IP";
                }
                else
                {
                    int num4 = 0;
                    int num5 = -1;
                    for (; ListViewItem1.GetListViewItem(handle3, id, num4, 0) != ""; ++num4)
                    {
                        if (ListViewItem1.GetListViewItem(handle3, id, num4, 0).Contains(".**"))
                        {
                            num5 = random.Next(0, maxValue);
                            while (!ListViewItem1.GetListViewItem(handle3, id, num5, 0).Contains(".**"))
                            {
                                num5 = random.Next(0, maxValue);
                            }
                            break;
                        }
                    }
                    if (num5 == -1)
                    {
                        str = "no IP";
                    }
                    else
                    {
                        int[] lpBuffer2 = new int[1] {
                            num5
                        };
                        int lpNumberOfBytesWritten = 0;
                        Vip72Rieng.WriteProcessMemory((int)hProcess, lpBaseAddress, lpBuffer2, 4, ref lpNumberOfBytesWritten);
                        ListViewItem1.SelectListViewItem(handle3, id, num5);
                        Vip72Rieng.ControlDoubleClick(handle3);
                        Thread.Sleep(500);
                        IntPtr   handle4 = Vip72Rieng.ControlGetHandle(windowInProcess, "Button", 7303);
                        IntPtr   handle5 = Vip72Rieng.ControlGetHandle(windowInProcess, "Edit", 131);
                        DateTime now     = DateTime.Now;
                        while (!Vip72Rieng.ControlGetCheck(handle4))
                        {
                            if (!Vip72Rieng.ControlGetText(handle5).Contains("ffline"))
                            {
                                if (!Vip72Rieng.ControlGetText(handle5).Contains("limit"))
                                {
                                    if (!Vip72Rieng.ControlGetText(handle5).Contains("can't"))
                                    {
                                        if (!Vip72Rieng.ControlGetText(handle5).Contains("disconnect"))
                                        {
                                            if (!Vip72Rieng.ControlGetText(handle5).Contains("aximum"))
                                            {
                                                if ((DateTime.Now - now).TotalSeconds > 15.0)
                                                {
                                                    str = "timeout";
                                                    goto label_49;
                                                }
                                            }
                                            else
                                            {
                                                str = "maximum";
                                                goto label_49;
                                            }
                                        }
                                        else
                                        {
                                            str = "dead";
                                            goto label_49;
                                        }
                                    }
                                    else
                                    {
                                        str = "dead";
                                        goto label_49;
                                    }
                                }
                                else
                                {
                                    try
                                    {
                                        if (!Vip72Rieng.Vip72RiengProcess.HasExited)
                                        {
                                            Vip72Rieng.Vip72RiengProcess.Kill();
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                    str = "limited";
                                    goto label_49;
                                }
                            }
                            else
                            {
                                str = "dead";
                                goto label_49;
                            }
                        }
                        Thread.Sleep(500);
                        IntPtr handle6 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 117);
                        for (int index = 0; ListViewItem1.GetListViewItem(handle6, id, index, 4) != ""; ++index)
                        {
                            if (ListViewItem1.GetListViewItem(handle6, id, index, 4).Contains("main stream"))
                            {
                                str = ListViewItem1.GetListViewItem(handle6, id, index, 0);
                                goto label_49;
                            }
                        }
                        str = "limited";
                    }
                }
            }
label_49:
            return(str);
        }