- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
<?php
$fin = fopen($argv[1], 'r');
if($fin === false) die();
$fout = fopen('dump.csv', 'w');
if($fout === false) die();
while(!feof($fin)) {
$rawline = fgets($fin);
if(!preg_match('#\[+(.*)\]+,?#', $rawline, $matches)) continue;
$fields = str_getcsv($matches[1]);
$parts = explode(')', $fields[0]);
if(count($parts) < 2) continue;
list($host, $path) = $parts;
$domains = explode(',', $host);
$dirs = explode('/', $path);
if($domains[0] === 'ru' && $domains[1] === 'mail') {
$email = $dirs[2] . '@' . $dirs[1] . '.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'rambler' && $dirs[1] = 'users') {
if(strpos($dirs[2], '@') === false) {
$email = $dirs[2] . '@rambler.ru';
} else {
$email = $dirs[2];
}
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'ya') {
$email = $domains[2] . '@yandex.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.by';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.ua';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.kz';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@yandex.com';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $domains[2] . '@ya.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
} else if($domains[0] === 'ru' && $domains[1] === 'yandex' && $dirs[1] = 'users') {
$email = $dirs[2] . '@yandex.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.by';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.ua';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.kz';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@yandex.com';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
$email = $dirs[2] . '@ya.ru';
$hash = md5($email);
fputcsv($fout, array($hash, $email));
}
}
fclose($fout);
fclose($fin);
Генератор радужных таблиц для е-мейлов.
Особенность программы в том, что «JSON» парсится как «CSV» в целях экономии оперативки.
Программе скармливал следующие данные:
(содержит ≈ 117 тыс. адресов @mail.ru)
(содержит ≈ 80 тыс. адресов @inbox.ru)
(содержит ≈ 85 тыс. адресов @list.ru)
(содержит ≈ 67 тыс. адресов @bk.ru)
(содержит ≈ 54 тыс. адресов @rambler.ru)
(содержит ≈ 8 тыс. адресов @yandex.ru)
(содержит ≈ 4 тыс. адресов @yandex.ru)
(содержит ≈ 15 тыс. адресов @yandex.ru)
Меня шмонай ты, вертухай,
Да загляни под юбочку,
Да посмотри на булочки.
Понюхай попку носиком,
Прикинься, киса, пёсиком,
Вот в этом вся и разница,
Кто хочет, а кто дразнится.
Из ответа достать resumeKey (он будет самой последней строкой) и к последующим запросам добавлять &resumeKey. Тогда можно выкачать все профили.
Ещё придумал, как получить гугловские адреса. У многих логин в «Блогспоте» совпадал с логином в «Гмейле», поэтому нужно сделать запрос следующего вида:
Пытался добыть список всех блогов «Блогспота». 650 страниц результатов по 3К (итого примерно 2 миллиона) — это только аккаунты на букву «a». Значит, всего можно скачать несколько десятков миллионов.
Результаты по другим доменам:
@mail.ru: 1,7 млн.
@bk.ru: 100 тыс.
@inbox.ru: 80 тыс.
@list.ru: 80 тыс. (надо ещё проверить foto.mail.ru, video.mail.ru, otvet.mail.ru, blogs.mail.ru, вдруг найдутся не попавшие в список учётки).
@rambler.ru (а также @ro.ru, @lenta.ru и т. п.): 50 тыс.
@yandex.ru: 70 тыс. с «Фоток», 150 тыс. с «Я.ру» (возможно, они пересекаются).
Сезоны меняются, но лес существует.
Глубоко в деревьях что-то скрывается.
Огромные тени, которые зовут меня.
Тени зовут!
Громкая тьма!
Тени зовут!
Они отвезут меня туда!
Они поднимаются и обнимают мое тело.
Внезапно сглотнув, на всю жизнь - нет надежды.
Меня медленно тянет внутрь к костному мозгу леса.
Медленно исчезаю, худой и бесплодный.
Жизнь пластмассова, она фантастична
Довольно молодая вещь
Вам нужно немного любви (T.L.C.)
Нежная любовь
И я отвезу тебя туда
Я хочу любить тебя (П.Я.Т.)
Довольно молодая вещь
Вам нужно немного любви (T.L.C.)
Нежная любовь
Я отвезу тебя туда
аххахахах
Как много рыба?
нанананананнаа
Черные тучи в небе.
Величественный вид.
Злоба!
Неистовство!
Ярость!
Гнев!
ШТОРМ!
В шторме собирается, необузданная ненависть
Это глаз зла. Разрушение оно вызывает.
Здесь нет законов, не сейчас, никогда.
ШТОРМ!
Неистовство!
Ярость!
Гнев!
Злоба!
Изначально меморандум должен был действовать до 1 сентября этого года, в конце августа срок был продлен до 31 декабря — при условии, что до 30 сентября в Госдуму должны быть внесены поправки в антипиратское законодательство, которые закрепляют прописанные в меморандуме положения. Законопроект в указанный срок не был внесен в Госдуму, а значит, меморандум перестал действовать с 1 октября.
Из компаний, подписавших меморандум, текущую ситуацию РБК прокомментировали только Rambler Group и ассоциация "Интернет-видео". "Мы хорошо знаем, какой вред наносят пираты, поэтому мы будем делать все от нас зависящее, чтобы пиратский контент исчезал как можно быстрее", — говорится в заявлении гендиректора Okko Ивана Городецкого.
Гендиректор "Интернет-видео" Алексей Бырдин отметил, что будет "очень разочарован", если с 1 октября интернет-компании прекратят удалять ссылки на пиратский контент.
В комнате, где ужинал мужчина, перегорела лампочка, и позже врачам пришлось вынимать кусок сала при свете фонаря.
Въебал обоим по плюсу.