Easy way to get a lot of valid email addresses

So, as everyone probably knows, MailRu has its own network for instant messaging, which consists of users of the company's main service, mail. And MailRu is currently the de facto standard in choosing mail (although many are now migrating to gmail.com). In other words, this company now has the largest number of business addresses, not counting, perhaps, Contact.

What, in fact, is the essence of the problem: the user’s mailing address is used as the login and unique identifier for authorization. Since there is a contact search function in the protocol (which is quite logical), and there’s an address in the output, then you can easily make a valid email address grabber. And even more - you can do a search by criteria (age, country, gender) and whether the contact is online. By default, the mAgent feature is enabled to notify the user when a new letter is received in the mailbox. What do we have as a result? We are looking for people from a certain target audience online, send them spam, they will even receive a notification about a new letter and it is quite likely that they will read it.

No-no, if I write again “what made the developers bla-bla-bla”, then I’ll start repeating myself. I will say it easier, to make the user ID (to send messages through it, and so on) to some unique id, and never shine someone else’s mail (people will have to find out - they will ask the other person), the problem would disappear by itself. And note that you could leave the login through the postal address. Yes, yes, I know, “you are the one who is the smartest, and in the MailRu one fools sit without you, of course, they don’t know how correctly”.

What to do with the received addresses:
1. Spam to send, basically. Having a real user name (and it is also in the search results, although my program does not issue it), you can make spam / scam more reliable.
2. To twist on the qwerty or the birthday of the user (and he is in the issuance of the search), and we have a working email account with all the correspondence.

I wrote on php, no requirements for modules / packages, the main thing is that fsockopen would work. 200 lines, 6 hours of work, including time to study the protocol. Finds ~ 450 addresses per minute. As for the protocol. Although the specification is, but for a long time it was not updated. Package MRIM_CS_CHANGE_STATUS changed and became larger. MRIM_CS_LOGIN2 generally increased by several times. It now transmits some undocumented things, including the name of the OS, processor and video card. I remember, not so long ago there were none.

Actually, here is the program . Attention, it is given for informational purposes. Do not use it for its intended purpose. Oh yeah, they always tell me that my code is crooked, and I myself am a fool - I agree with everyone in advance. The program does not provide any abnormal situations such as the fact that someone went to the same account.

And yet, to go to the server, of course, you need an account in MailRu, but use the mail you don’t feel sorry for losing, how does the company react to such jokes.


 <form>
 Age: <input name = min_age title = "Minimum age"> - <input name = max_age title = "Maximum age"> <br>
 Gender: <select name = gender>
  <option value = 0 selected> Any </ option>
  <option value = 1> Male </ option>
  <option value = 2> Woman </ option>
 </ select>
 Country: <select name = country>
  <option value = 0 selected> Any </ option>
  <option value = 24> Russia </ option>
  <option value = 81> Azerbaijan </ option>
  <option value = 82> Armenia </ option>
  <option value = 97> Afghanistan </ option>
  <option value = 96> Bangladesh </ option>
  <option value = 99> Bahrain </ option>

  <option value = 100> Brunei Darussalam </ option>
  <option value = 101> Bhutan </ option>
  <option value = 102> Vietnam </ option>
  <option value = 83> Georgia </ option>
  <option value = 86> Israel </ option>
  <option value = 95> India </ option>

  <option value = 103> Indonesia </ option>
  <option value = 79> Jordan </ option>
  <option value = 85> Iraq </ option>
  <option value = 87> Iran </ option>
  <option value = 104> Yemen </ option>
  <option value = 84> Kazakhstan </ option>

  <option value = 105> Cambodia </ option>
  <option value = 106> Qatar </ option>
  <option value = 107> Cyprus </ option>
  <option value = 92> Kyrgyzstan (Kyrgyzstan) </ option>
  <option value = 76> China </ option>
  <option value = 3215> Cocos Islands (Australian) </ option>

  <option value = 29> Korea (DPRK) </ option>
  <option value = 108> Republic </ option>
  <option value = 88> Kuwait </ option>
  <option value = 109> Laos </ option>
  <option value = 110> Lebanon </ option>
  <option value = 111> Malaysia </ option>

  <option value = 112> Maldives </ option>
  <option value = 113> Mongolia </ option>
  <option value = 114> Myanmar </ option>
  <option value = 115> Nepal </ option>
  <option value = 116> United Arab Emirates </ option>
  <option value = 117> Oman </ option>

  <option value = 3216> Christmas Island (Australian) </ option>
  <option value = 122> Pakistan </ option>
  <option value = 89> Palestine </ option>
  <option value = 94> Saudi Arabia </ option>
  <option value = 118> Singapore </ option>
  <option value = 78> Syria </ option>

  <option value = 91> Tajikistan </ option>
  <option value = 119> Thailand </ option>
  <option value = 120> Taiwan </ option>
  <option value = 132> Timor </ option>
  <option value = 90> Turkmenistan </ option>
  <option value = 77> Turkey </ option>

  <option value = 93> Uzbekistan </ option>
  <option value = 121> Philippines </ option>
  <option value = 98> Sri Lanka </ option>
  <option value = 75> Japan </ option>
  <option value = 123> Australia </ option>
  <option value = 454> American Samoa </ option>

  <option value = 124> Vanuatu </ option>
  <option value = 453> Guam (US) </ option>
  <option value = 126> Kiribati </ option>
  <option value = 127> Marshall Islands </ option>
  <option value = 128> Micronesia (Federated States of Micronesia) </ option>
  <option value = 129> Nauru </ option>

  <option value = 3220> Niue (N.Zel.) </ option>
  <option value = 130> New Zealand </ option>
  <option value = 3218> New Caledonia (Fr.) </ option>
  <option value = 3221> Cook Islands (N.Zel.) </ option>
  <option value = 3230> Heard Island and McDonald Islands (Australian) </ option>
  <option value = 131> Palau </ option>

  <option value = 133> Papua New Guinea </ option>
  <option value = 3222> Pitcairn (British) </ option>
  <option value = 125> Samoa </ option>
  <option value = 3219> Sev.  Mariana Islands (USA) </ option>
  <option value = 134> Solomon Islands </ option>
  <option value = 3223> Tokelau (N.Zel.) </ option>

  <option value = 135> Tonga </ option>
  <option value = 136> Tuvalu </ option>
  <option value = 3224> Wallis and Futuna Islands (Fr.) </ option>
  <option value = 137> Fiji </ option>
  <option value = 3226> French Polynesia </ option>
  <option value = 3225> French Southern Territories </ option>

  <option value = 138> Canada </ option>
  <option value = 139> United States </ option>
  <option value = 3200> Anguilla (British) </ option>
  <option value = 140> Antigua and Barbuda </ option>
  <option value = 141> Argentina </ option>
  <option value = 3202> Aruba (Nida.) </ option>

  <option value = 142> Bahamas </ option>
  <option value = 143> Barbados </ option>
  <option value = 146> Belize </ option>
  <option value = 3203> Bermuda (British) </ option>
  <option value = 144> Bolivia </ option>
  <option value = 145> Brazil </ option>

  <option value = 147> Venezuela </ option>
  <option value = 3204> Virgin Islands (British) </ option>
  <option value = 452> Virgin Islands (US) </ option>
  <option value = 149> Haiti </ option>
  <option value = 148> Guyana </ option>
  <option value = 3205> Guadeloupe (Fr.) </ option>

  <option value = 173> Guatemala </ option>
  <option value = 150> Honduras </ option>
  <option value = 151> Grenada </ option>
  <option value = 152> Greenland (Dat.) </ option>
  <option value = 153> Dominica </ option>
  <option value = 154> Dominican Republic </ option>

  <option value = 155> Colombia </ option>
  <option value = 156> Costa Rica </ option>
  <option value = 157> Cuba </ option>
  <option value = 3208> Martinique (Fr.) </ option>
  <option value = 158> Mexico </ option>
  <option value = 3209> Montserrat (Brit) </ option>

  <option value = 3201> Netherlands Antilles </ option>
  <option value = 159> Nicaragua </ option>
  <option value = 3207> Cayman Island (British) </ option>
  <option value = 3211> Turks and Caicos Islands (Brit.) </ option>
  <option value = 160> Panama </ option>
  <option value = 161> Paraguay </ option>

  <option value = 162> Peru </ option>
  <option value = 163> El Salvador </ option>
  <option value = 164> Saint Vincent and the Grenadines </ option>
  <option value = 165> Saint Kitts and Nevis </ option>
  <option value = 166> Saint Lucia </ option>
  <option value = 3210> St. Pierre and Miquelon (Fr.) </ option>

  <option value = 167> Suriname </ option>
  <option value = 168> Trinidate and Tobago </ option>
  <option value = 169> Uruguay </ option>
  <option value = 3212> Falkland Islands (British) </ option>
  <option value = 3206> French Guiana </ option>
  <option value = 170> Chile </ option>

  <option value = 171> Ecuador </ option>
  <option value = 3213> South.  Georgia and South.  Sandwich Islands (Brit.) </ Option>
  <option value = 172> Jamaica </ option>
  <option value = 174> Algeria </ option>
  <option value = 175> Angola </ option>
  <option value = 176> Benin </ option>

  <option value = 177> Botswana </ option>
  <option value = 3228> British Indian Ocean Territory </ option>
  <option value = 178> Burkina Faso </ option>
  <option value = 179> Burundi </ option>
  <option value = 180> Gabon </ option>
  <option value = 181> The Gambia </ option>

  <option value = 182> Ghana </ option>
  <option value = 183> Guinea </ option>
  <option value = 184> Guinea-Bissau </ option>
  <option value = 185> Djibouti </ option>
  <option value = 186> Egypt </ option>
  <option value = 187> Zambia </ option>

  <option value = 3198> Zap.  Sahara </ option>
  <option value = 23> Zimbabwe </ option>
  <option value = 188> Cape Verde </ option>
  <option value = 189> Cameroon </ option>
  <option value = 190> Kenya </ option>
  <option value = 191> Comoros </ option>

  <option value = 193> Congo (Zaire) </ option>
  <option value = 192> Republic </ option>
  <option value = 194> Cote dʻIvoire </ option>
  <option value = 195> Lesotho </ option>
  <option value = 196> Liberia </ option>
  <option value = 197> Libya </ option>

  <option value = 198> Mauritius </ option>
  <option value = 199> Mauritania </ option>
  <option value = 200> Madagascar </ option>
  <option value = 3229> Mayotte (Fr.) </ option>
  <option value = 201> Malawi </ option>
  <option value = 202> Mali </ option>

  <option value = 203> Morocco </ option>
  <option value = 204> Mozambique </ option>
  <option value = 205> Namibia </ option>
  <option value = 206> Niger </ option>
  <option value = 207> Nigeria </ option>
  <option value = 3227> Bouvet Island (Nor.) </ option>

  <option value = 3197> Reunion (Fr.) </ option>
  <option value = 208> Rwanda </ option>
  <option value = 209> Sao Tome and Principe </ option>
  <option value = 210> Swaziland </ option>
  <option value = 3199> Saint Helena (British) </ option>
  <option value = 211> Seychelles </ option>

  <option value = 212> Senegal </ option>
  <option value = 213> Somalia </ option>
  <option value = 214> Sudan </ option>
  <option value = 215> Sierra Leone </ option>
  <option value = 216> Tanzania </ option>
  <option value = 217> Togo </ option>

  <option value = 218> Tunisia </ option>
  <option value = 219> Uganda </ option>
  <option value = 220> Central African Republic </ option>
  <option value = 222> Chad </ option>
  <option value = 223> Equatorial Guinea </ option>
  <option value = 221> Eritrea </ option>

  <option value = 224> Ethiopia </ option>
  <option value = 225> South Africa (South Africa) </ option>
  <option value = 39> Ukraine </ option>
  <option value = 40> Austria </ option>
  <option value = 32> Albania </ option>
  <option value = 33> Andorra </ option>

  <option value = 340> Belarus </ option>
  <option value = 38> Belgium </ option>
  <option value = 41> Bulgaria </ option>
  <option value = 42> Bosnia and Herzegovina </ option>
  <option value = 43> Vatican </ option>
  <option value = 45> United Kingdom </ option>

  <option value = 44> Hungary </ option>
  <option value = 46> Germany </ option>
  <option value = 3193> Guernsey (British) </ option>
  <option value = 47> Gibraltar (British) </ option>
  <option value = 48> Greece </ option>
  <option value = 49> Denmark </ option>

  <option value = 3194> Jersey (British) </ option>
  <option value = 50> Ireland </ option>
  <option value = 51> Iceland </ option>
  <option value = 34> Spain </ option>
  <option value = 52> Italy </ option>
  <option value = 53> Latvia </ option>

  <option value = 54> Lithuania </ option>
  <option value = 55> Liechtenstein </ option>
  <option value = 56> Luxembourg </ option>
  <option value = 57> Macedonia </ option>
  <option value = 58> Malta </ ​​option>
  <option value = 59> Moldova </ option>

  <option value = 36> Monaco </ option>
  <option value = 60> Netherlands </ option>
  <option value = 61> Norway </ option>
  <option value = 3195> Isle of Man (British) </ option>
  <option value = 62> Poland </ option>
  <option value = 35> Portugal </ option>

  <option value = 63> Romania </ option>
  <option value = 64> San Marino </ option>
  <option value = 74> Serbia and Montenegro </ option>
  <option value = 65> Slovakia </ option>
  <option value = 66> Slovenia </ option>
  <option value = 67> Faroe Islands (Denmark) </ option>

  <option value = 68> Finland </ option>
  <option value = 37> France </ option>
  <option value = 69> Croatia </ option>
  <option value = 70> Czech </ option>
  <option value = 71> Switzerland </ option>
  <option value = 72> Sweden </ option>

  <option value = 3196> Svalbard (Nor.) </ option>
  <option value = 73> Estonia </ option>

 </ select>

 <input type = hidden name = action value = search> <br>
 Online: <input type = checkbox name = online value = 1> <br>
 <input type = submit value = "Search">
 </ form>
<script>
_addload(function(){_setupIW('com');_csi('ru','en','http://www.shram.kiev.ua/hacker/validemail.shtml');});</script>