Лёгкий способ добыть много валидных почтовых адресов

Итак, как все, наверное, знают, у МейлРу есть своя сеть для обмена мгновенными сообщениями, которая состоит из пользователей главного сервиса компании — почты. А МейлРу на данный момент стандарт де факто в выборе почты (хотя многие сейчас мигрируют в gmail.com). Другими словами, у этой компании сейчас самое большое количество рабочих адресов, не считая, быть может, Контакта.

В чём, собственно, суть проблемы: для авторизации в качестве логина и уникального идентификатора используется почтовый адрес пользователя. Так как в протоколе присутствует функция поиска контактов (что вполне логично), а в выдаче есть адрес, то спокойно можно сделать граббер валидных почтовых адресов. И даже больше — можно делать поиск по критериям (возраст, страна, пол) и находится ли контакт онлайн. По умолчанию в mAgent’е включена функция оповещения пользователя при получении нового письма на почтовый ящик. Что в результате имеем? Ищем людей из определённой целевой аудитории онлайн, отправляем им спам, они даже получат извещение о новом письме и вполне вероятно его прочитают.

Не-не, если я опять напишу «что заставило разработчиков бла-бла-бла», то начну уже повторяться. Скажу проще, сделать идентификатор пользователя (что бы через него отправлять ему сообщения и так далее) каким-нибудь уникальным id, а чужую почту вообще нигде не светить (надо будет людям узнать — сами спросят у собеседника), проблема бы отпала сама собой. И, заметьте, что логиниться можно было бы оставить и через почтовый адрес. Да-да, я знаю, «ты один такой самый умный, а в МейлРу одни дураки сидят и без тебя, конечно, не знают как правильно».

Что делать с полученными адресами:
1. Спам рассылать, в основном. Имея настоящее имя пользователя (а оно тоже есть в выдаче поиска, хотя моя программа и не выдаёт его), можно сделать спам/лохотрон более достоверным.
2. Побрутить на qwerty или день рождения пользователя (и он есть в выдаче поиска), и у нас есть рабочий почтовый аккаунт со всей перепиской.

Писал на php, требований к модулям/пакетам никаких, главное, что б fsockopen работал. 200 строк, 6 часов работы, включая время на изучение протокола. Находит по ~450 адресов в минуту. Что касается протокола. Хоть спецификация и есть, однако долго её не обновляли. Пакет MRIM_CS_CHANGE_STATUS изменился и стал крупнее. MRIM_CS_LOGIN2 вообще увеличился в разы. В нём теперь передаются какие-то недокументированные вещи, включая название ОСи, процессора и видеокарты. Помнится мне, ещё не так давно их не было.

Собственно, вот программа. Внимание, она дана в ознакомительных целях. Не надо её использовать по назначению. Ах да, мне всегда говорят, что код у меня кривой, и сам я дурак — заранее со всеми соглашусь. В программе не предусмотрено никаких внештатных ситуаций типа того, что кто-то зашёл на этот же аккаунт.

И ещё, для захода на сервер, конечно же, требуется учётная запись в MailRu, но используйте ту почту, которую вам не жалко потерять, мало ли как компания отнесётся к таким шуточкам.



<form>
Возраст: <input name="min_age" title="Минимальный возраст">—<input name="max_age"  title="Максимальный возраст"><br>
Пол: <select name="gender">
 <option value="0" selected>Любой</option>
 <option value="1">Мужчина</option>
 <option value="2">Женщина</option>
</select>
Страна: <select name="country">
 <option value="0" selected>Любая</option>
 <option value='24'>Россия</option>
 <option value='81'>Азербайджан</option>
 <option value='82'>Армения</option>
 <option value='97'>Афганистан</option>
 <option value='96'>Бангладеш</option>
 <option value='99'>Бахрейн</option>

 <option value='100'>Бруней-Даруссалам</option>
 <option value='101'>Бутан</option>
 <option value='102'>Вьетнам</option>
 <option value='83'>Грузия</option>
 <option value='86'>Израиль</option>
 <option value='95'>Индия</option>

 <option value='103'>Индонезия</option>
 <option value='79'>Иордания</option>
 <option value='85'>Ирак</option>
 <option value='87'>Иран</option>
 <option value='104'>Йемен</option>
 <option value='84'>Казахстан</option>

 <option value='105'>Камбоджа</option>
 <option value='106'>Катар</option>
 <option value='107'>Кипр</option>
 <option value='92'>Киргизия (Кыргызстан)</option>
 <option value='76'>Китай</option>
 <option value='3215'>Кокосовые острова (Австр.)</option>

 <option value='29'>Корея (КНДР)</option>
 <option value='108'> Республика</option>
 <option value='88'>Кувейт</option>
 <option value='109'>Лаос</option>
 <option value='110'>Ливан</option>
 <option value='111'>Малайзия</option>

 <option value='112'>Мальдивы</option>
 <option value='113'>Монголия</option>
 <option value='114'>Мьянма</option>
 <option value='115'>Непал</option>
 <option value='116'>Объединенные Арабские Эмираты</option>
 <option value='117'>Оман</option>

 <option value='3216'>Остров Рождества (Австр.)</option>
 <option value='122'>Пакистан</option>
 <option value='89'>Палестина</option>
 <option value='94'>Саудовская Аравия</option>
 <option value='118'>Сингапур</option>
 <option value='78'>Сирия</option>

 <option value='91'>Таджикистан</option>
 <option value='119'>Таиланд</option>
 <option value='120'>Тайвань</option>
 <option value='132'>Тимор</option>
 <option value='90'>Туркмения</option>
 <option value='77'>Турция</option>

 <option value='93'>Узбекистан</option>
 <option value='121'>Филиппины</option>
 <option value='98'>Шри Ланка</option>
 <option value='75'>Япония</option>
 <option value='123'>Австралия</option>
 <option value='454'>Американское Самоа</option>

 <option value='124'>Вануату</option>
 <option value='453'>Гуам (США)</option>
 <option value='126'>Кирибати</option>
 <option value='127'>Маршалловы Острова</option>
 <option value='128'>Микронезия (Федеративные Штаты Микронезии)</option>
 <option value='129'>Науру</option>

 <option value='3220'>Ниуэ (Н.Зел.)</option>
 <option value='130'>Новая Зеландия</option>
 <option value='3218'>Новая Каледония (Фр.)</option>
 <option value='3221'>Острова Кука (Н.Зел.)</option>
 <option value='3230'>Острова Херд и Макдональд (Австр.)</option>
 <option value='131'>Палау</option>

 <option value='133'>Папуа - Новая Гвинея</option>
 <option value='3222'>Питкерн (Брит.)</option>
 <option value='125'>Самоа</option>
 <option value='3219'>Сев. Марианские острова (США)</option>
 <option value='134'>Соломоновы Острова</option>
 <option value='3223'>Токелау (Н.Зел.)</option>

 <option value='135'>Тонга</option>
 <option value='136'>Тувалу</option>
 <option value='3224'>Уоллис и Футуна острова (Фр.)</option>
 <option value='137'>Фиджи</option>
 <option value='3226'>Французская Полинезия</option>
 <option value='3225'>Французские Южные территории</option>

 <option value='138'>Канада</option>
 <option value='139'>США</option>
 <option value='3200'>Ангилья (Брит.)</option>
 <option value='140'>Антигуа и Барбуда</option>
 <option value='141'>Аргентина</option>
 <option value='3202'>Аруба (Нид.)</option>

 <option value='142'>Багамы</option>
 <option value='143'>Барбадос</option>
 <option value='146'>Белиз</option>
 <option value='3203'>Бермуды (Брит.)</option>
 <option value='144'>Боливия</option>
 <option value='145'>Бразилия</option>

 <option value='147'>Венесуэла</option>
 <option value='3204'>Виргинские острова (Брит.)</option>
 <option value='452'>Виргинские острова (США)</option>
 <option value='149'>Гаити</option>
 <option value='148'>Гайана</option>
 <option value='3205'>Гваделупа (Фр.)</option>

 <option value='173'>Гватемала</option>
 <option value='150'>Гондурас</option>
 <option value='151'>Гренада</option>
 <option value='152'>Гренландия (Дат.)</option>
 <option value='153'>Доминика</option>
 <option value='154'>Доминиканская Республика</option>

 <option value='155'>Колумбия</option>
 <option value='156'>Коста-Рика</option>
 <option value='157'>Куба</option>
 <option value='3208'>Мартиника (Фр.)</option>
 <option value='158'>Мексика</option>
 <option value='3209'>Монтсеррат (Брит)</option>

 <option value='3201'>Нидерландские Антилы</option>
 <option value='159'>Никарагуа</option>
 <option value='3207'>Остров Кайман (Брит.)</option>
 <option value='3211'>Острова Теркс и Кайкос (Брит.)</option>
 <option value='160'>Панама</option>
 <option value='161'>Парагвай</option>

 <option value='162'>Перу</option>
 <option value='163'>Сальвадор</option>
 <option value='164'>Сент-Винсент и Гренадины</option>
 <option value='165'>Сент-Китс и Невис</option>
 <option value='166'>Сент-Люсия</option>
 <option value='3210'>Сент-Пьер и Микелон (Фр.)</option>

 <option value='167'>Суринам</option>
 <option value='168'>Тринидат и Тобаго</option>
 <option value='169'>Уругвай</option>
 <option value='3212'>Фолклендские острова (Брит.)</option>
 <option value='3206'>Французская Гвиана</option>
 <option value='170'>Чили</option>

 <option value='171'>Эквадор</option>
 <option value='3213'>Юж. Джорджия и Юж. Сандвичевы о-ва (Брит.)</option>
 <option value='172'>Ямайка</option>
 <option value='174'>Алжир</option>
 <option value='175'>Ангола</option>
 <option value='176'>Бенин</option>

 <option value='177'>Ботсвана</option>
 <option value='3228'>Британская территория в Индийском океане</option>
 <option value='178'>Буркина-Фасо</option>
 <option value='179'>Бурунди</option>
 <option value='180'>Габон</option>
 <option value='181'>Гамбия</option>

 <option value='182'>Гана</option>
 <option value='183'>Гвинея</option>
 <option value='184'>Гвинея-Бисау</option>
 <option value='185'>Джибути</option>
 <option value='186'>Египет</option>
 <option value='187'>Замбия</option>

 <option value='3198'>Зап. Сахара</option>
 <option value='23'>Зимбабве</option>
 <option value='188'>Кабо-Верде</option>
 <option value='189'>Камерун</option>
 <option value='190'>Кения</option>
 <option value='191'>Коморы</option>

 <option value='193'>Конго (Заир)</option>
 <option value='192'> Республика</option>
 <option value='194'>Кот-д`Ивуар</option>
 <option value='195'>Лесото</option>
 <option value='196'>Либерия</option>
 <option value='197'>Ливия</option>

 <option value='198'>Маврикий</option>
 <option value='199'>Мавритания</option>
 <option value='200'>Мадагаскар</option>
 <option value='3229'>Майотт (Фр.)</option>
 <option value='201'>Малави</option>
 <option value='202'>Мали</option>

 <option value='203'>Марокко</option>
 <option value='204'>Мозамбик</option>
 <option value='205'>Намибия</option>
 <option value='206'>Нигер</option>
 <option value='207'>Нигерия</option>
 <option value='3227'>Остров Буве (Норв.)</option>

 <option value='3197'>Реюньон (Фр.)</option>
 <option value='208'>Руанда</option>
 <option value='209'>Сан-Томе и Принсипи</option>
 <option value='210'>Свазиленд</option>
 <option value='3199'>Святая Елена (Брит.)</option>
 <option value='211'>Сейшелы</option>

 <option value='212'>Сенегал</option>
 <option value='213'>Сомали</option>
 <option value='214'>Судан</option>
 <option value='215'>Сьерра-Леоне</option>
 <option value='216'>Танзания</option>
 <option value='217'>Того</option>

 <option value='218'>Тунис</option>
 <option value='219'>Уганда</option>
 <option value='220'>Центральноафриканская Республика</option>
 <option value='222'>Чад</option>
 <option value='223'>Экваториальная Гвинея</option>
 <option value='221'>Эритрея</option>

 <option value='224'>Эфиопия</option>
 <option value='225'>Южно-Африканская Республика (ЮАР)</option>
 <option value='39'>Украина</option>
 <option value='40'>Австрия</option>
 <option value='32'>Албания</option>
 <option value='33'>Андорра</option>

 <option value='340'>Белоруссия</option>
 <option value='38'>Бельгия</option>
 <option value='41'>Болгария</option>
 <option value='42'>Босния и Герцеговина</option>
 <option value='43'>Ватикан</option>
 <option value='45'>Великобритания</option>

 <option value='44'>Венгрия</option>
 <option value='46'>Германия</option>
 <option value='3193'>Гернси (Брит.)</option>
 <option value='47'>Гибралтар (Брит.)</option>
 <option value='48'>Греция</option>
 <option value='49'>Дания</option>

 <option value='3194'>Джерси (Брит.)</option>
 <option value='50'>Ирландия</option>
 <option value='51'>Исландия</option>
 <option value='34'>Испания</option>
 <option value='52'>Италия</option>
 <option value='53'>Латвия</option>

 <option value='54'>Литва</option>
 <option value='55'>Лихтенштейн</option>
 <option value='56'>Люксембург</option>
 <option value='57'>Македония</option>
 <option value='58'>Мальта</option>
 <option value='59'>Молдавия</option>

 <option value='36'>Монако</option>
 <option value='60'>Нидерланды</option>
 <option value='61'>Норвегия</option>
 <option value='3195'>Остров Мэн (Брит.)</option>
 <option value='62'>Польша</option>
 <option value='35'>Португалия</option>

 <option value='63'>Румыния</option>
 <option value='64'>Сан-Марино</option>
 <option value='74'>Сербия и Черногория</option>
 <option value='65'>Словакия</option>
 <option value='66'>Словения</option>
 <option value='67'>Фарерские о-ва (Дания)</option>

 <option value='68'>Финляндия</option>
 <option value='37'>Франция</option>
 <option value='69'>Хорватия</option>
 <option value='70'>Чехия</option>
 <option value='71'>Швейцария</option>
 <option value='72'>Швеция</option>

 <option value='3196'>Шпицберген (Норв.)</option>
 <option value='73'>Эстония</option>

</select>

<input type="hidden" name="action" value="search"><br>
В сети: <input type="checkbox" name="online" value="1"><br>
<input type="submit" value="Ищем">
</form>