コード例 #1
0
        private void BtnStartClick(object sender, EventArgs e)
        {
            _watch.Start();
            timer1.Enabled = true;
            if (string.IsNullOrEmpty(Globals.ActiveProject))
            {
                return;
            }
            //Check for unpause
            if (Globals.Pause)
            {
                Globals.Pause  = false;
                BtnStart.Text  = @"Start";
                LblStatus.Text = @"Working. . . ";// +uri.Split('|')[1];
                return;
            }

            _threads = new Thread[_currentProject.ThreadCount];
            //Log.AddToLog("Starting project: " + _currentProject.ProjectName, _currentProject.ProjectName);
            LblStatus.Text = @"Work Starting . . ";
            LstResults.Items.Clear();
            for (var l = 1; l <= _currentProject.LoopCount; l++)
            {
                foreach (var domain in _currentProject.Sites)
                {
                    foreach (var keyword in domain.Keywords)
                    {
                        foreach (var engine in _currentProject.Engines)
                        {
                            PrgMain.Maximum++;
                            ThreadPool.Enqueue(domain.Site + "|" + engine.Split('|')[1] + keyword + "+" + domain.Site + "|" + keyword + "|" + engine.Split('|')[0]);
                        }
                    }
                }
            }


            for (var i = 0; i < _currentProject.ThreadCount; i++)
            {
                _threads[i] = new Thread(ThreadFunc)
                {
                    IsBackground = true,
                };
                _threads[i].Start();
            }
            Log.Add2Log("Project started: " + _currentProject.ProjectName, _currentProject.ProjectName);

            LblStatus.Text = @"Working. . . ";// +uri.Split('|')[1];
        }
コード例 #2
0
        private void LoadProject()
        {
            if (_threads != null)
            {
                foreach (var thread in _threads)
                {
                    thread.Abort();
                }
            }
            timer1.Enabled = false;
            LblTime.Text   = "";
            LblStatus.Text = @"Ready";
            Globals.Pause  = false;
            ThreadPool.Queue.Clear();
            BtnStart.Text   = @"Start";
            PrgMain.Maximum = 0;
            PrgMain.Value   = 0;
            LstResults.Items.Clear();
            Actions.Agents.Clear();
            //Load Project
            _currentProject = ObjectXmlSerializer <ProjectModel> .Load(DirStructure.ProjectsDir + Globals.ActiveProject + "\\" + Globals.ActiveProject + ".xml");

            Log.Add2Log("Project loaded: " + _currentProject.ProjectName, _currentProject.ProjectName);
            if (_currentProject.Sites.Count > 5)
            {
                MessageBox.Show(@"Project has been deleted due to usage violation" +
                                Environment.NewLine + @"Only 5 domains allowed per project!" +
                                Environment.NewLine + @"Please don't alter the project file next time.",
                                @"Usage Violation", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                File.Delete(DirStructure.ProjectsDir + Globals.ActiveProject + "\\" + Globals.ActiveProject + ".xml");
                Directory.Delete(DirStructure.ProjectsDir + Globals.ActiveProject);
                Globals.ActiveProject    = "";
                BtnDeleteProject.Visible = false;
                Text = @"SeHydra";
                LoadProjectsList();
                return;
            }
            //Load Projects
            if (_currentProject.UsePremiumProxies)
            {
                Proxies.Actions.LoadProxyList();
            }
            if (!_currentProject.UsePremiumProxies && !string.IsNullOrEmpty(_currentProject.ProxyList))
            {
                Proxies.Actions.LoadProxyListFromFile(_currentProject.ProxyList);
            }
        }
コード例 #3
0
        private void ProcessSearch(string uri)
        {
            var searcher = new Actions();

            CheckForIllegalCrossThreadCalls = false;
            if (string.IsNullOrEmpty(uri))
            {
                return;
            }
            var rnd   = new Random();
            var sleep = rnd.Next(_currentProject.MaxWait * 30000);

            Thread.Sleep(sleep);

            var split = uri.Split('|');

            //MessageBox.Show(split[0]);

            var    domain = split[0];
            string proxy;
            string error;
            //check if we're using proxies
            var useProxies = false;

            if (_currentProject.UsePremiumProxies)
            {
                useProxies = true;
            }
            if (!string.IsNullOrEmpty(_currentProject.ProxyList))
            {
                useProxies = true;
            }
TryAgain:
            var result = searcher.GoSearch(split[0], split[1], useProxies, out proxy, out error, _currentProject.ClickLinks);

            if (!result && _currentProject.UsePremiumProxies)
            {
                ReportBadProxy(proxy);
                goto TryAgain;
            }
            //Log.AddToLog(split[1], _currentProject.ProjectName);
            var item = new ListViewItem(domain)
            {
                UseItemStyleForSubItems = false
            };

            proxy = "Proxy Used";
            if (_currentProject.UsePremiumProxies)
            {
                var prox2 = proxy.Substring(0, 5);
                proxy = proxy.Replace(prox2, "*****");
            }

            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, split[2], Color.Blue, Color.White, item.Font));
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "Proxy Used", Color.Green, Color.White, item.Font));
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, split[3], Color.DarkOrange, Color.White, item.Font));
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, "OK", Color.Green, Color.White, item.Font));
            item.SubItems.Add(error);
            LstResults.Items.Add(item);
            Log.Add2Log(string.Format("Executed: {0} with keyword {1} on engine: {2}", domain, split[2], split[3]), _currentProject.ProjectName);

            _count++;
            LblStatus.Text = @"Working on " + _count + @" of " + PrgMain.Maximum;
            PrgMain.Value++;
            if (PrgMain.Value < PrgMain.Maximum)
            {
                return;
            }
            _watch.Stop();
            timer1.Enabled  = false;
            LblStatus.Text  = @"Done";
            PrgMain.Value   = 0;
            PrgMain.Maximum = 0;
        }