Архив Майл.ру Агента-Скачка

Discussion in 'Уязвимости Mail-сервисов' started by Alibek123456, 9 Aug 2012.

  1. Alibek123456

    Alibek123456 New Member

    Joined:
    7 Aug 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Тема:Архив Майл.ру Агента-Скачка
    Цель:выявление ошибок,оптимизация работы и интерфейса.
    Примечание: Скрипт написан на ActivePerl: http://www.activestate.com/activeperl/downloads
    Сохраняешь скрипт как script.pl
    Изменяешь
    my $email = '[email protected]';
    my $pass = 'yourpass';
    на свои значения, сохраняешь, запускаешь...
    В папке со скриптом должны начать появляться файлы с архивами под каждого юзера.

    Простите админы если что не так, я копался-копался но не нашёл нужной мне темы.
    Привет всем форумчанином! Недавно мне понадобился скрипт для скачиванию архива майл.ру агента,такой скрипт я нашёл здесь на сайте, ссылка: http://forum.antichat.ru/threadnav311596-1-10.html
    Так вот в процессе использования скрипта я нашёл некоторые ошибки. Первая: иногда не скачиваются архивы с некоторыми пользователями,при открытии файла переписки(переписки с архива сохраняются в формате html, у каждого юзера собственный файл с перепиской. Пример: [email protected]и в этом файле переписка с этим пользователем ) так вот переписки с некоторыми пользователями вообще не сохраняются,страница html пуста. Вторая: когда ставишь код для скачивания переписки с отдельным юзером,скрипт сохраняет лишь недавнюю переписку. (например переписку двух-летней давности не сохраняет) Знающие люди,пожалуйста просмотрите скрипт на наличие ошибок, кто может помогите с модернизацией интерфейса(сделать попроще и попривычней,чтоб открывалась как программа а не как команда).А вот и сам скрипт:

    /usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; ################# Config ############### my $email = '[email protected]'; my $pass = 'yourpass'; ############### End Config ############## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19"); my $cookie_jar = HTTP::Cookies->new(); $ua->cookie_jar($cookie_jar); sub logg { my ($data, $file) = @_; open(OUT, "> ".$file); print OUT "$data\n"; close(OUT); } sub authorization { my ($email, $pass) = @_; my ($login, $domain) = $email =~ /^(.+?)@(.+?)$/; $cookie_jar->clear(); my $ex = $ua->post('http://win.mail.ru/cgi-bin/auth', ['Login' => $login, 'Domain' => $domain, 'Password' => $pass]); if ($ex->headers_as_string() =~/Set-Cookie: Mpop=/) { return 1; } } sub get_users { my $ex = $ua->post('http://e.mail.ru/cgi-bin/mrimhistory?', ['mrim_hist_password' => $pass, 'PasswordAsk' => 'on'], Referer => 'http://e.mail.ru/cgi-bin/mrimhistory')->content(); my @allusers = $ex =~ /class=letavtor title=\"(.+?)\"/g; while(1) { my ($nextpage) = $ex =~ /<a href=\"(.+?)\" id=\"nextbut\">/; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @users = $ex =~ /class=letavtor title=\"(.+?)\"/g; foreach (@users) { push(@allusers, $_); } } return @allusers; } sub get_messages { my ($user) = @_; my $i = 0; my $ex = $ua->get('http://e.mail.ru/cgi-bin/mrimhistory?mode=1&email='.$user)->content(); my @allmess = $ex =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/gs; while(1) { my ($nextpage) = $ex =~ /<a href=\"(.+?)\" id=\"nextbut\">/; last if (!$nextpage); $ex = $ua->get('http://e.mail.ru/cgi-bin/'.$nextpage)->content(); my @mess = $ex =~/<td class=\"letavtor\"><nobr><span.+?>(.+?)<nobr><\/span><\/td>.+?<td class=lettem>(.+?)<\/td>.+?<td class=dat title=\"(.+?)\">/gs; foreach (@mess) { push(@allmess, $_); } print "\t\tpage:".$i++."\n"; } my $arhive = ''; while(@allmess) { my $data = pop(@allmess); my $message = pop(@allmess); my $name = pop(@allmess); $arhive .= $name.' : '.$data."<br>\r\n".$message."<br><br>\r\n\r\n"; } logg($arhive, $user.'.html'); } authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }


    скрипт для сохранения переписки с отдельным юзером:
    authorization($email, $pass); my @allusers = get_users(); get_messages('Сюда логин друга');

    Скрипт приведённый выше вставляем вместо: authorization($email, $pass); my @allusers = get_users(); print "Users: ".scalar(@allusers)."\n\n\n"; foreach (@allusers) { print "\t".$_."\n"; get_messages($_); }

    Прошу кто может помочь,помогите. Кому не лень,кому не жалко. Очень требуется по работе. Буду чрезмерно благодаренЁ
     
    #1 Alibek123456, 9 Aug 2012
    Last edited: 12 Aug 2012
  2. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    код невозможно читать, отформатируй
    к тому же я по части Делфи/пхп. Подскажи мне где хранится переписка юзеров у агента - можт накорябаю тебе на делфи приложение
     
  3. Alibek123456

    Alibek123456 New Member

    Joined:
    7 Aug 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    дык я не знаю как сделать когд в длину, в ширину только получается
     
  4. Alibek123456

    Alibek123456 New Member

    Joined:
    7 Aug 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    вот так получше?
     
  5. Zed0x

    Zed0x Member

    Joined:
    4 Jun 2012
    Messages:
    114
    Likes Received:
    29
    Reputations:
    23
    Сам пиши тег *code*, а не через форму.
     
  6. Alibek123456

    Alibek123456 New Member

    Joined:
    7 Aug 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    спасибо
     
  7. Alibek123456

    Alibek123456 New Member

    Joined:
    7 Aug 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    пишу сам тег,всё равно в ширину
     
  8. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    бля чел у тя код построчно? вот напиши |code| и дальше ПОСТРОЧНО свой код |/code|
    и вопрос мой актуален