Добрый день всем надо разобраться спамелкой от Kaimi.
пишите в лс
Добрый день всем надо разобраться спамелкой от Kaimi.
Пропущена запятая после "день" или "всем"?
Я конечно понимаю что краткость сестра, но где линки, в чем заключается ошибка и т.д.
С таким же успехом могу ответить на твой пост, что "ошибка вооон там..." Если это задание, то ошибся разделом... Тебе сюда -> О работе (http://forum.antichat.ru/forum57.html)
вот кодинг
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use POSIX qw(floor);
my $afile = './accs.txt'; #Файл с аккаунтами
my $tfile = './text.txt'; #Файл с текстами
my $range = '33203575-33203584'; #Диапазон вопросов
my $delay = 5; #Задержка между сообщениями
$| = 1;
my @alist = loadf($afile);
my @tlist = loadf($tfile);
my ($start, $end) = split /-/, $range;
my $seed = 0;
my ($ua, $ck) = browser();
awrap($ua, $ck, $seed);
for(my $i = $start; $i <= $end; $i++)
{
awrap($ua, $ck, $seed) if !post($ua, $ck, $i, $seed);
sleep $delay;
}
sub post
{
my ($ua, $ck, $id, $seed) = @_;
my $page = $ua->get('http://otvet.mail.ru/question/'.$id.'/')->content;
my $ch = $1 if $page =~ /ch\\" value=\\"(.+?)\\"/;
my $sc = js($page);
if(defined $ch && defined $sc)
{
my $res = $ua->post('http://otvet.mail.ru/doit',
{
action => 'authaddans',
ch => $ch,
qid => $id,
"f$sc" => 1,
Body => text(),
source => '',
})->as_string;
if($res =~ /ваш ответ принят/)
{
cout(' OK ['.$id.']');
return 1;
}
elsif($res =~ /выполнять слишком часто/)
{
cout(' Too fast ['.$id.']');
return 1;
}
elsif($res =~ /не можете отвечать на вопросы/)
{
cout(' Exhausted ['.$id.']');
splice @alist, $seed % scalar @alist, 1;
return 0;
}
elsif($res =~ /неверно заполнены обязательные/)
{
cout(' Field error ['.$id.']');
return 1;
}
else
{
cout(' Error ['.$id.']');
debug($res);
return 1;
}
}
else
{
cout(' Error getting hashes ['.$id.']');
return 1;
}
}
sub awrap
{
my ($ua, $ck, $seed) = @_;
until(auth($ua, $ck, $seed))
{
$seed++;
sleep 1;
}
}
sub auth
{
my ($ua, $ck, $seed) = @_;
die "Account list exhausted\n" unless scalar @alist;
my $cred = $alist[$seed % scalar @alist];
my ($login, $domain, $pass) = ($cred =~ /(.+?)\@(.+?):(.+)/);
if(defined $login && defined $domain && defined $pass)
{
my $res = $ua->post('http://win.mail.ru/cgi-bin/auth',
{
Login => $login,
Domain => $domain,
Password => $pass,
})->content;
if($res =~ /action=\"logout\"/)
{
cout('[+] '.$cred);
return 1;
}
elsif($res =~ /Неверное имя пользователя/)
{
splice @alist, $seed % scalar @alist, 1;
cout('[-] '.$cred);
return 0;
}
else
{
splice @alist, $seed % scalar @alist, 1;
cout('[~] '.$cred);
return 0;
}
}
else
{
splice @alist, $seed % scalar @alist, 1;
cout('Undefined credentials');
return 0;
}
}
sub cout
{
print localtime()." @_\n"
}
sub browser
{
my $ua = new LWP::UserAgent;
my $ck = new HTTP::Cookies;
push @{$ua->requests_redirectable}, 'POST';
$ua->cookie_jar($ck);
return $ua, $ck;
}
sub loadf
{
open(F, '<', $_[0]) || die $_[0].' - '.$!;
chomp(my @list = <F>);
close F;
return @list;
}
sub text
{
return $tlist[rand scalar @tlist];
}
sub js
{
my ($str) = @_;
my @block = ($str =~ /-- block(.+?) -->/g);
my $emuline = $1 if $str =~ /function getAntiSpamFieldName\(\) {(.+?)var arr = new Array\(\);/s;
if(defined $emuline)
{
$emuline =~ s/var//g; $emuline =~ s/([i]{1,4})/\$$1/g; $emuline =~ s/Math\.//g;
my($i, $ii, $iii, $iiii);
eval $emuline;
my %hash;
for(0..$#block)
{
$hash{$1} = $2 if $block[$_] =~ /(\d{1,2})(\w{2})/;
}
my @list = ($i, $ii, $iii, $iiii);
my $answ;
$answ .= $hash{$list[$_]} for 0..3;
return $answ;
}
else
{
return 0;
}
}
sub debug
{
open F, '>>', 'dbg.txt';
print F "@_\n\n\n\n";
close F;
}
значит не авторизуются акки все показывает бед, один парень сказал заменить
if($res =~ /action=logout/) на это if($res =~ /action=\"logout\"/), теперь акки авторизуются но, возникает большое кол-во ошибок Field error и тем самым остановка спамера (на 11 сообщения), что делать?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot