Авторские статьи Пишем spam-list generator

Discussion in 'Статьи' started by Solide Snake, 3 Dec 2008.

  1. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    390
    Likes Received:
    836
    Reputations:
    69
    Пишем spam-list generator


    Приветствую всех пользователей форума Antichat :) Моя статейка будет посвящена написанию простого генератора спам-листов.

    Intro...

    Интернетом я пользуюсь около 4х лет, пользовался разными почтовыми серверами такими как Yandex, Rambler, Google, Mail и т.д. И было мне интересно, какой из этих серверов менее защищён от наплыва спама который приходит на почтовый ящик, как e-mail попадает в спам базы. После небольшой проверки, как уже наверно многие догадались, менее устойчивым к спаму оказался Mail.ru
    В то время как на Goole за месяц приходит в лучшем случае 1 письмо со спамом, на Yandex около 10 максимум, а на Rambler около 5-10, на Mail же приходит не менее 70.
    Посмотрев некоторые сервисы Mail.ru не трудно было догадаться как можно узнать E-mail пользователя.

    Пример:

    Блоги.Меил.Ру

    Видим, что E-mail admin@mail.ru

    Едем дальше, Фотоальбомы

    Следовательно E-mail admin2@list.ru

    Дальше, Мой Мир

    Также E-mail admin3@mail.ru

    Самая интересная ссылка, это приглашение какого-то пользователя пообщаться в Mail Агенте

    Тут открыто видно E-mail admin4@mail.ru

    Из всего этого, можно отдельно выделить сервис Мой Мир, т.к. там есть поиск по Имени, Фамилии и даже цвету глаз. Допустим, вы создали свой сайт, захотели его раскрутить при помощи спама, вы заходите на Мой Мир, вводите критерии пользователей которым по вашему мнению будет интересен ваш сайт, и всё.

    Coding...

    Т.к. статья называется "Пишем spam-list generator", приступим к написанию сего генератора. Писать мы будет на Delphi.
    Генератор будет полу-автоматическим, поэтому пишем в форму TWebBrowser.

    В OnCreate для формы пишем:

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    var
    Flags: OLEVariant;
    begin
    Flags := 0;
    WebBrowser1.Navigate(WideString('http://my.mail.ru'),Flags,Flags,Flags,Flags);
    end;
    Ещё пропишем TMemo и TButton. И не забудем изменить свойство ScrollBars на ssBoth у Memo1.

    Далее добавим следующую функцию:

    Code:
    Function After ( Src:string ; Var S:string ) : string ;
    Var
    F : Word ;
    begin
    F := POS (Src,S) ;
    if F=0 then
    After := ''
    else
    After := COPY(S,F+length(src),length(s)) ;
    end ;
    В OnClick для Button1 пишем:

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    x:word;
    s,temp,n: string;
    Flags: OLEVariant;
    begin
    for x:=0 to WebBrowser1.OleObject.Document.Links.Length-1 do
    begin
    temp:=WebBrowser1.OleObject.Document.Links.Item(x);
    s:=After('http://www.mail.ru/agent?message&to=',temp);
    if s <>'' then memo1.lines.Add(s);
    if x>46 then
    begin
    if After('http://my.mail.ru/my/classmates',temp)<>'' then n:=temp;
    if After('http://my.mail.ru/my/search',temp)<>'' then n:=temp;
    if After('http://my.mail.ru/my/neighbour',temp)<>'' then n:=temp;
    if After('http://my.mail.ru/my/military_search',temp)<>'' then n:=temp;
    end;
    end;
    Flags := 0;
    WebBrowser1.Navigate(WideString(n),Flags,Flags,Flags,Flags);
    end;
    Вот и всё :)

    The End...

    Для работы с этим генератором, нужно будет зарегистрироваться в Мой Мир. Далее, просто запускаем генератор, вводим наш логин и пароль, жмём на ссылку Поиск людей, выбираем критерии и жмём найти.
    Mail показывает сколько нашлось пользователей по заданным критериям, далее жмём на Button1 и в наше Memo1 помещается 20 e-mail’ов, страница обновляется и опять нажимаем на батон и т.д. пока не надоест.
    Вот впринципе и всё, так при помощи такой "дырки" в Mail.ru можно собирать спам листы :)
     
    #1 Solide Snake, 3 Dec 2008
    Last edited: 8 Dec 2008
    2 people like this.
  2. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    390
    Likes Received:
    836
    Reputations:
    69
    Можно конечно)Но это уже ваше дело)
     
  3. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    Кстати еще интересная темка.. Заметил ее давно, но никак руки не доходили написать сборщик мыл..
    Собственно на ответах мэйл.ру сидит не малое кол-во пользователей.
    например перебираем
    И все время попадаем на страницы с вопросами..
    На ответах мэйл.ру рядом с "ником" пользователя, создавшего вопрос/коммент есть картинка показывающая статус пользователя (онлайн/оффлайн). Так вот там в ссылке на изображение для статуса указывается e-mail участника в открытом виде. Так что перебирая ссылки на вопросы можно собрать немаленькую базу мыл.
    На момент написания сообщения последним был вопрос
    Т.е. это уже 20млн страниц. Да и сообщение
    Тоже радует.
     
    #3 gisTy, 3 Dec 2008
    Last edited: 3 Dec 2008
    1 person likes this.
  4. Sharky

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

    Joined:
    1 May 2006
    Messages:
    494
    Likes Received:
    312
    Reputations:
    46
    имхо на статью не тянет... не вижу смысловой нагрузки
     
  5. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    Смысловая нагрузка не в самой статье - имхо после прочтения может появится пару интересных идей написания "по мотивам".
     
  6. Realix

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

    Joined:
    11 Jan 2008
    Messages:
    20
    Likes Received:
    59
    Reputations:
    0
    Нефигра не следовательно admin2@mail.ru , а admin2@list.ru
     
  7. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    390
    Likes Received:
    836
    Reputations:
    69
    Ну ошибся немного))С кем не бывает))
     
  8. Roba

    Roba Banned

    Joined:
    24 Oct 2007
    Messages:
    237
    Likes Received:
    299
    Reputations:
    165
    Накидал скриптик--
    Code:
    #!/usr/bin/perl
    use IO::Socket;
    use strict;
    use threads;
    use threads::shared;
    my  ($k):shared;
    
    my $ot = $ARGV[0]; # Начальная страница
    my $do = $ARGV[1]; # Конечная
    $k = 0;
    my $dir = 'open'; # Директория с открытыми вопросами, можно vote - вопросы на голосовании.
    my ($socket,$s,$i);
    
    open FILE,'>mails.txt';
    
    for(0..$ARGV[2]) {threads->create(\&Grab,$_);}
    for(threads->list) { $_->join; }
    
    sub Grab
    {
    	for($i=$ot;$i<=$do;$i++)
    	{
    		$socket = IO::Socket::INET->new("otvet.mail.ru:80") || die("Can't connecting!");
    		print $socket  "GET http://otvet.mail.ru/$dir/?asort=0&asc=0&opg=$i HTTP/1.0\r\n".
    			           "Host: www.otvet.mail.ru\r\n".
    			           "Accept-Language: ru\r\n".
    			           "Content-Type: application/x-www-form-urlencoded\r\n".
    			           "Content-Length: 214\n\n";
    		while(<$socket>)
    		{
    			$s = <$socket>;
    			if($s=~/message&to=(.+)\"><img src=\"http/) { $k++; print FILE $1.";\r\n"; }; 
    		}
    		close $socket; 
    	}
    }
    print "END!\r\nPage: $ot - $do\r\nALL: $k\r\n"; 
    close FILE;
    сие работает многопоточно, запускать так:
    Code:
    perl bla.pl [начальная страница] [конечная] [потоки]
    Сохраняет в mails.txt, формат:
    Code:
    bla@list.ru;
    bla2@mail.ru;
    ...
     
    1 person likes this.
  9. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    собственно я реализовал что-то подобное только на пхп (следовательно без многопоточности) пару деньков назад и вот что получилось:
    PHP:
    // Mail harvester by gisTy 
    set_time_limit(0); 
    $crountMax 200//через сколько шагов проверять мыльники на наличие повторов и сохранять результат в файл. 
    $crount 0
    $db 0
    $massive[] = ''
    $fh fopen("mails.txt","a");//где mails.txt - файл с мыльниками. 
    for($i 1;;$i++) 

        
    $url "http://otvet.mail.ru/question/".$i
        
    $packet file_get_contents($url); 
        
    preg_match_all("/<span id=\"online:(.*?)\" class=/i"$packet$result); 
        
    $mas array_pop($result); 
        
    $temp array_merge($massive$mas); 
        
    $massive $temp
        
    $crount++; 
        if(
    $crount == $crountMax
        { 
            
    $result array_unique($massive); 
            
    fwrite($fhimplode("\n",$result)); 
            
    $db += count($result); 
             
            unset(
    $massive); 
            
    $massive[] = ''
             
            unset(
    $result); 
            unset(
    $temp); 
            unset(
    $mas); 
            unset(
    $crount); 
        } 
        
    $packet ''

    ?>
     
  10. neval

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

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    gisty
    PHP:
    while ($i 100000)
    {
    <
    here>
    }
     
  11. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    а вот этого малость не понял...
     
    #11 gisTy, 9 Dec 2008
    Last edited: 9 Dec 2008
  12. master01

    master01 Banned

    Joined:
    8 Dec 2008
    Messages:
    24
    Likes Received:
    7
    Reputations:
    0
    Да да, пожалуйста киньте ссылку!
     
  13. Qwazar

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

    Joined:
    2 Jun 2005
    Messages:
    997
    Likes Received:
    905
    Reputations:
    587
    Кто же логику в onClick пихает?
     
  14. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    803
    Likes Received:
    391
    Reputations:
    72
    Скомпилил.. Рульная прога... Автору +))
     
  15. sabotag

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

    Joined:
    23 May 2008
    Messages:
    122
    Likes Received:
    87
    Reputations:
    23
    а ведь программы для сбора мыльников есть....вроде тоже нормально работают :)
     
Loading...
Similar Threads - Пишем spam list
  1. Scraid

    Авторские статьи Пишем IRC бота на PHP

    Replies:
    1
    Views:
    5,034
  2. mr.Penguin
    Replies:
    0
    Views:
    5,861
  3. piupiu
    Replies:
    3
    Views:
    10,140
  4. Antonio Falkone
    Replies:
    35
    Views:
    20,660