예제 #1
0
        private void sendToRecheck_Click(object sender, RoutedEventArgs e)
        {
            if (hitsListView.SelectedItems.Count == 0)
            {
                Globals.LogError(Components.HitsDB, "No hits selected!", true); return;
            }
            var first       = (Hit)hitsListView.SelectedItem;
            var partialName = "Recheck-" + BlockBase.MakeValidFileName(first.ConfigName);

            // Choose list name
            var fileName = BlockBase.GetFirstAvailableFileName("Wordlists\\", partialName, "txt");

            // Write to disk
            var path = $@"{Directory.GetCurrentDirectory()}\Wordlists\{fileName}";

            using (var sw = new StreamWriter(path))
            {
                foreach (Hit selected in hitsListView.SelectedItems)
                {
                    sw.WriteLine(selected.Data);
                }
            }

            // Import it
            var listName = fileName.Substring(0, fileName.Length - 4);
            var wordlist = new Wordlist(listName, path, Globals.environment.RecognizeWordlistType(first.Data), "");

            Globals.mainWindow.WordlistManagerPage.AddWordlist(wordlist);

            var runner = Globals.mainWindow.CurrentRunnerPage;

            if (runner == null)
            {
                MessageBox.Show("Please select a Runner from the manager first!");
                return;
            }
            else if (runner.vm.Busy)
            {
                MessageBox.Show("The selected Runner is busy, please choose another one!");
                return;
            }

            try
            {
                runner.vm.SetWordlist(Globals.mainWindow.WordlistManagerPage.GetList(listName));
            }
            catch { }

            // Try to select the config referring to the first selected hit
            try
            {
                var cfg = Globals.mainWindow.ConfigsPage.ConfigManagerPage.vm.ConfigsList.First(c => c.Name == first.ConfigName).Config;
                runner.vm.SetConfig(cfg, false);
                runner.vm.BotsNumber = Math.Min(cfg.Settings.SuggestedBots, hitsListView.SelectedItems.Count);
            }
            catch { }

            // Switch to Runner
            Globals.mainWindow.menuOptionRunner_MouseDown(this, null);
        }
        private void acceptButton_Click(object sender, RoutedEventArgs e)
        {
            if (Caller.GetType() == typeof(ConfigManager))
            {
                // Check if name is ok
                if (nameTextbox.Text.Trim() == "")
                {
                    MessageBox.Show("The name cannot be blank"); return;
                }
                else if (nameTextbox.Text != BlockBase.MakeValidFileName(nameTextbox.Text))
                {
                    MessageBox.Show("The name contains invalid characters"); return;
                }

                // Check if category is ok
                if (categoryCombobox.Text.Trim() == "")
                {
                    categoryCombobox.Text = "Default";
                }
                else if (categoryCombobox.Text != BlockBase.MakeValidFileName(categoryCombobox.Text))
                {
                    MessageBox.Show("The category contains invalid characters"); return;
                }

                ((ConfigManager)Caller).CreateConfig(nameTextbox.Text, categoryCombobox.Text, authorTextbox.Text);
            }
            ((MainDialog)Parent).Close();
        }