Изначально, срочно нужен был антивирус, залез на torrents.ru и качнул Avira. Позже в поисках кряка в той же теме, узнал, что Avira раздает триальные ключи по 3 месяца на каждое мыло. Оттуда же узнал о забавном сервисе, которые генерирует мыло на 10 минут.
Краткая инструкция для получения ключа выглядела так:
Цитата:
1. Заходим на http://10minutemail.com/10MinuteMail/index.html и получаем временный почтовик.
2. Заходим на https://license.avira.com/en/promotion-hylm9fbv7chaxs8zbl83 , заполняем форму и вставляем мыло, после жмем кнопочку и в течении 2-3 мин на почтовике смотрим письмо, в котором находим ссылку на получение ключа.
3. Получаем удовольствие.
|
Тут естественно в голове всплыло, что бы генерировать эти ключи каждые день автоматически. И по необходимости просто заходить на страницу и брать ключ с максимальным временем использования. Собственно нужна была база фамилий и имен, что бы это выглядело более менее правдоподобно, хотя потом оказалось, в те поля хоть мыло можно вписывать. Для этого и накатал скрипт представленный в первой темы.
А вот собственно код сервиса, который я и хотел реализовать.
PHP код:
<?php
set_time_limit(0);
$names = file('name.txt');
$name = $names[rand(0,count($names))];
$familys = file('family.txt');
$family = $familys[rand(0,count($familys))];
list($mail,$cookie) = reg_new_mail();
if(submit_form_avira($name,$family,$mail))
{
for($i=0;$i<20;$i++)
{
if(check_mail($cookie))
{
echo 'Latter!'.chr(10);
$link = read_letter($cookie);
list($location,$cookie) = avira_login($link);
$file = get_avira_key($location,$cookie);
$file_name = 'Hbedv(Avira_Premium_Security_Suite_Valid_Until_'.date('d-m-Y',time()+60*60*24*90).').key';
file_put_contents('keys/'.$file_name,$file);
echo $file_name.' created!';
break;
}
else
{
echo 'Wait...'.chr(10);
sleep(10);
}
}
}
function submit_form_avira($name,$family,$mail)
{
$url = 'https://license.avira.com/en/promotion-hylm9fbv7chaxs8zbl83';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
preg_match_all('#action="(.+?)"#',$res_curl,$matches);
$action = $matches[1][1];
preg_match('/^Set-Cookie: (.*)/m', $res_curl, $source_cookie);
$cookie = trim($source_cookie[1]);
$post = "customerSalutationId=MIS&customerFirstname=$name&customerLastname=$family&customerEmail=$mail&customerCountryId=BI&buttonActivate=Request license now";
$url = 'https://license.avira.com/'.$action;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$res_curl = curl_exec($ch);
curl_close($ch);
return $res_curl;
}
function reg_new_mail()
{
$url = 'http://10minutemail.com/10MinuteMail/index.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
preg_match('/^Set-Cookie: (.*)/m', $res_curl, $source_cookie);
$cookie = trim($source_cookie[1]);
preg_match('#<br \/>(.+) is your temporary e-mail address#i',$res_curl,$source_mail);
$mail = $source_mail[1];
return $array = array($mail,$cookie);
}
function check_mail($cookie)
{
$url = 'http://10minutemail.com/10MinuteMail/index.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
if(preg_match('#avpe@avira.com#',$res_curl,$match))
return $res_curl;
else return false;
}
function read_letter($cookie)
{
$url = 'http://10minutemail.com/10MinuteMail/index.html?dataModelSelection=message%3Aemails%5B0%5D&actionMethod=index.xhtml%3AmailQueue.select';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
preg_match('#^https:\/\/license\.avira\.com\/en\/hs-(.+)\.#m',$res_curl,$matches);
$link = 'https://license.avira.com/en/hs-'.$matches[1];
return $link;
}
function avira_login($link)
{
$url = $link;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
preg_match('/^Set-Cookie: (.*)/m', $res_curl, $source_cookie);
$cookie = trim($source_cookie[1]);
preg_match('/^Location: (.*)/m', $res_curl, $source_location);
$location = trim($source_location[1]);
return $array = array($location,$cookie);
}
function get_avira_key($location,$cookie)
{
$url = 'https://license.avira.com/en/'.$location;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
preg_match('#href="\/customer\/(.+?)"#',$res_curl,$matches);
$key_link = 'https://license.avira.com/customer/'.$matches[1];
$url = $key_link;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res_curl = curl_exec($ch);
curl_close($ch);
return $res_curl;
}
?>
Это дело кидается в крон и выполняется каждые сутки для генерации нового ключа.
И собственно готовый результат.
http://solker.spb.ru/avira/
|