Собственно сами участки кода:
while((opts = getopt (argc, argv, "x:u:t:w:h")) != -1){
switch(opts){
case 'h':
check_h = 1;
break;
case 'x':
HOST = optarg;
break;
case 'w':
file_name = optarg;
break;
case 'u':
USER = optarg;
break;
case 't':
THREADS = atoi(optarg);
case '?':
if(optopt == 'w')
fprintf(stderr, "Option -w requires an argument.\n");
else if(optopt == 'x')
fprintf(stderr, "Option -x requires an argument.\n");
else if(optopt == 'u')
fprintf(stderr, "Option -u requires an argument.\n");
else if(optopt == 't')
fprintf(stderr, "Option -t requires an argument.\n");
else if(optopt == 0)
break;
else
fprintf (stderr, "Unknown option `-%c'.\n", optopt);
return 1;
default:
abort();
}
}
2 часть:
int line = 0,maxsize = 0,t = 0;
while( (C = fgetc(wordlist)) != EOF ){
if(C=='\n'){
if(t>maxsize)
maxsize = t;
t = 0;
line++;
}
t++;
}
3 часть:
while( (C = fgetc(wordlist)) != EOF ){
if(C=='\n'){
Password[pos] = '\0';
pos = 0;
tmp = fork();
if(tmp){
pids[j] = tmp;
} else if(tmp == 0){
ssh_brute(Password);
exit(0);
} else {
fprintf(stderr,"\n\t[-] Fork Failed!\n\n");
}
j++;
if(j==THREADS){
for(i=0;i<THREADS;i++){
waitpid(pids[i],NULL,0);
}
for(i=0;i<THREADS;i++){
pids[i] = 0;
}
j = 0;
}
} else {
Password[pos] = C;
pos++;
}
if(*cracked == 1){
for(i=0;i<THREADS;i++){
if(pids[i] == 0) continue;
kill(pids[THREADS],SIGTERM);
}
break;
}
}
fclose(wordlist);
P.S. полный модуль находится по ссылке. Спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть кнопка button_one и слот Paint_orb который по сигналу Clicked делает вот что :
Необходимо создать список виджетов (большой), в каждом виджете списка имеются кнопки\чекбоксы и тд
Есть текстовый файл, в котором записано несколько строкСлова разделены пробелами