Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #56, ИЮЛЬ 2005 г.

Телефонодобывающий комбайн

Tony (tony@MadTanks.com)

Спецвыпуск: Хакер, номер #056, стр. 056-060-1


Руководство по автоматизированному созданию SMS-спамлиста

Любой из нас наверняка находил в своем почтовом ящике рекламу увеличителя объема бюста. Эпопея email-спама длится уже много лет, но прогресс не стоит на месте, и теперь эту прелесть можно получить не слезая с горшка (некоторые организмы продолжают ваять SMS-поэмы даже там).

Пронумерованый мир

Итак, ты хочешь разослать по SMS рекламу революционных прокладок с перышками, и тебе нужна база номеров мобильных телефонов. Оказывается, сделать такую базу не так уж сложно - было бы желание. В разных странах используют разные способы кодирования и записи телефонных номеров. У нас есть существенное ограничение: правильный номер должен состоять из 11-ти цифр: +7СССXXXXXXX. "+7" - это код нашей страны, ССС – три цифры кода оператора связи, и последние семь цифр - код абонента сети. Иногда пишут вместо "+7" цифру "8", что обозначает код выхода на междугороднюю линию. Вроде бы все просто, только есть одно жирное НО. Нет четкого следования стандартам записи номера: один и тот же номер может быть записан чертовски большим количеством способов, а в каком виде он хранится в файле - это вообще отдельная песня в четырех куплетах. Поэтому основной задачей поиска является анализ строки, содержащей номер телефона.

Храните номера в Сбербанке

Где пользователь может сохранить свой номер и номера телефонов своих друзей? В асе, почтовом клиенте, органайзере и кеше браузера. Но для того чтобы туда забраться, тебе придется попотеть, да и улов с одного клиента будет мал. Предпочтительнее вариант оптового поиска: службы знакомств, кадровые агентства и всевозможные сайты вакансий, газеты бесплатных объявлений и прочие места, где люди по собственному желанию (!) оставляют контактную информацию. Для поиска номеров можно использовать даже спам: там также может быть указан номер мобильного телефона. Твоя месть распространителю таблеток для похудания будет страшна. Не стоит забывать и о любителях халявы: сайт с бесплатными полифоническими мелодиями от продюсеров "Бригады" и аналогичными картинками обеспечит тебе постоянный приток номеров. SMS-чаты, игры и анекдоты доставляются на указанный номер телефона, а о том, что их номера прямиком попадают в список рассылки, халявщикам лучше не знать. Прямо сейчас ты можешь попробовать наиболее простой способ добывания мобильных номеров. Скачай себе на диск один из сайтов с вакансиями (например, телепортом) и натрави на него программу, прилагающуюся к этой статье.

Инструментарий

Печально, но весь инструментарий для удаленной добычи номеров тебе придется писать самостоятельно. Правда, принципы работы у всех этих программ одинаковы, и они реализованы в утилите CellFinder. Что можно сделать с помощью этой утилиты? Просканировать любые файлы на предмет наличия в них записей с номерами мобильных телефонов. Номера могут быть записаны в любом виде и с любыми разделителями. Номер должен начинаться на "+7" или "8", то есть должен быть записан либо в международном, либо в федеральном формате. Забегая вперед, скажу, что даже недалекий пользователь, совсем не напрягаясь, сможет масштабировать функциональность CellFinder по своему усмотрению. Программе в командной строке указываются три параметра: путь, по которому лежат файлы для сканирования, имя файла, в котором будет сохраняться список найденных телефонов, и опция, которая предписывает искать номера только в текстовых файлах. По умолчанию сканируются все файлы в указанном каталоге и подкаталогах. "Хорошо, - скажешь ты, - а если я хочу просканировать машину другого человека на предмет поиска номеров?" Тогда придется писать троянец, который очень незаметно для пользователя будет сканировать его файлы (скажем почту, каталог аськи и кеш браузера). "Незаметно" означает, что ты должен считывать каждый файл небольшими частями (скажем по 1024 байта), делая между каждыми шагами чтения паузу от десятков до сотни миллисекунд. Если ты считываешь файлы большими кусками (или целиком), то лучше делать секундную паузу. И считывать, конечно, не все подряд, а лишь те файлы, которые могут содержать номера телефонов. Еще, как вариант, можно попробовать написать на php или perl сценарий, который работает автономно и сканирует сайты с залежами номеров. Алгоритм поиска в этом случае также ничем не отличается от двух предыдущих случаев.

Содержание  Вперед на стр. 056-060-2