forked from serafim/dos
1
0
Fork 0
This commit is contained in:
tieshagr 2025-03-06 14:58:38 +03:00
parent 2b79163781
commit 0bc97e71fe
2 changed files with 22 additions and 22 deletions

Binary file not shown.

View File

@ -14,7 +14,8 @@
// -10 - Пользователь выбрал тип атаки порт сканнинг, но не ввел нужные параметры // -10 - Пользователь выбрал тип атаки порт сканнинг, но не ввел нужные параметры
// -20 - Пользователь выбрал тип атаки флуд, но не ввел нужные параметры // -20 - Пользователь выбрал тип атаки флуд, но не ввел нужные параметры
// -100 - неизвестная ошибка // -100 - неизвестная ошибка
// -101 - неизвестная опция, следует предложить вызвать флаг помощи // -101 - неизвестная опция или потерян аргумент, следует предложить вызвать флаг помощи
// -600 - пользователь ввел токен, но не id или наоборот
// Какие-то еще коды? // Какие-то еще коды?
int my_check_params(int argc, char** argv) { int my_check_params(int argc, char** argv) {
@ -60,20 +61,20 @@ int my_check_params(int argc, char** argv) {
opts.telegram_token = optarg; opts.telegram_token = optarg;
break; break;
case 'h': case 'h':
std::cout << "Usage: " << argv[0] << " [options]\n" // std::cout << "Usage: " << argv[0] << " [options]\n"
<< "Required:\n" // << "Required:\n"
<< " -a, --attack TYPE Type of attack (scan|flood)\n" // << " -a, --attack TYPE Type of attack (scan|flood)\n"
<< " -d, --domain DOMAIN Target domain\n" // << " -d, --domain DOMAIN Target domain\n"
<< " -i, --ip IP Target IP\n" // << " -i, --ip IP Target IP\n"
<< " -p, --port PORT Port. Required only for flood type!\n" // << " -p, --port PORT Port. Required only for flood type!\n"
<< "Optional:\n" // << "Optional:\n"
<< " -l, --log FILE Log file\n" // << " -l, --log FILE Log file\n"
<< " -t, --telegram ID Telegram ID\n" // << " -t, --telegram ID Telegram ID\n"
<< " -b, --token TOKEN Telegram bot token\n"; // << " -b, --token TOKEN Telegram bot token\n";
status = 0; status = 0;
break; break;
case '?': case '?':
std::cerr << "Unknown option!\n.--help for info\n"; // std::cerr << "Unknown option!\n.--help for info\n";
status = -101; status = -101;
break; break;
default: default:
@ -84,34 +85,33 @@ int my_check_params(int argc, char** argv) {
// Проверка обязательных параметров // Проверка обязательных параметров
if (status != 0) if (status != 0 && status != -101)
{ {
if (opts.attack_type != "flood" && opts.attack_type != "scan") { if (opts.attack_type != "flood" && opts.attack_type != "scan") {
std::cerr << "Error: Missing required parameters!\n--help for more info\n"; // std::cerr << "Error: Missing required parameters!\n--help for more info\n";
status = -1; status = -1;
} }
else if (opts.attack_type == "scan" && (opts.domain.empty() || opts.ip.empty())) { else if (opts.attack_type == "scan" && (opts.domain.empty() || opts.ip.empty())) {
std::cerr << "Error: Missing required parameters!\n--help for more info\n"; // std::cerr << "Error: Missing required parameters!\n--help for more info\n";
status = -10; status = -10;
} }
else if (opts.attack_type == "flood" && (opts.domain.empty() || opts.ip.empty() || opts.port.empty())) { else if (opts.attack_type == "flood" && (opts.domain.empty() || opts.ip.empty() || opts.port.empty())) {
std::cerr << "Error: Missing required parameters!\n--help for more info\n"; // std::cerr << "Error: Missing required parameters!\n--help for more info\n";
status = -20; status = -20;
} }
else if ((!opts.telegram_id.empty() && opts.telegram_token.empty()) || (opts.telegram_id.empty() && !opts.telegram_token.empty())) {
status = -600;
}
else if (opts.attack_type == "scan" && !opts.domain.empty() && !opts.ip.empty()) { else if (opts.attack_type == "scan" && !opts.domain.empty() && !opts.ip.empty()) {
std::cerr << "Error: Missing required parameters!\n--help for more info\n"; // std::cerr << "Error: Missing required parameters!\n--help for more info\n";
status = 1; status = 1;
} }
else if (opts.attack_type == "flood" && !opts.domain.empty() && !opts.ip.empty() && !opts.port.empty()) { else if (opts.attack_type == "flood" && !opts.domain.empty() && !opts.ip.empty() && !opts.port.empty()) {
std::cerr << "Error: Missing required parameters!\n--help for more info\n"; // std::cerr << "Error: Missing required parameters!\n--help for more info\n";
status = 2; status = 2;
} }
// Какие-то еще коды? // Какие-то еще коды?
} }
return status; return status;
} }