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]; }
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); } }
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; }