Десятизначные ICQ-номера.

Довольно часто начали спрашивать, почему у меня на сайте указан десятизначный номер ICQ. Мол, мы что-то пропустили и уже такие номера бывают? Тогда почему этот твой номер не находится? Отвечаю по порядку. «Честный» номер у меня девятизначный. Начинается с единицы. В принципе, его можно еще найти в «открытом» виде в интернете. Указанный на сайте «десятизнак» - его «скрытая» форма, использующая не совсем документированные функции ICQ. Дело в том, что в самой «родной» ICQ, судя по всему, для хранения UIN'а используется четырехбайтная переменная, максимальным значением которой может быть число 4294967295. Кто помнит двоичную систему счисления? Ну в общем, в двоичном виде это выглядит так:



Если попытаться в эту переменную записать большее число, оно просто туда «не поместится». Например, вот что выйдет, если попробовать записать число, на единицу большее чем максимальное значение:



Произошло «переполнение» переменной. В самой переменной остался... Ноль. А «лишний» бит, не умещавшийся в переменной, просто из нее «выпал». Таким образом, если мы попробуем искать в ICQ номер 4294967296, это будет равносильно поиску номера 0. И если к любому номеру прибавить эти самое «лишнее» число 4294967296, мы получим так называемый «скрытый» номер. При добавлении в контакт-лист он все равно преобразуется в нормальный из-за «отсыхания» старшего, «лишнего» бита числа. Спросите, зачем такие сложности? А вас по ICQ спамеры не достают? Нет? Вам повезло, наверное вы нигде в интернете не указываете свой номер. Потому что скрипты спамеров денно и нощно просеивают интернет в поисках рабочих «асек», составляют обширные базы номеров и шлют без устали всяческую нам не нужную рекламу. Ну так вот, когда такой скрипт находит ваш UIN, указанный на каком-нибудь форуме, он первым делом пытается осведомиться у главного ICQ-сервера, есть ли такой номер. И если он модифицирован по указанной мной схеме, то понятное дело, сервер ответит что таких больших номеров у него отродясь не водилось. А когда этот же номер вобъет в свою «аську» обычный пользователь, то «огромный» номер приведется к стандартному виду автоматически, еще до запроса серверу, из-за описанного переполнения переменной. Единственный минус этого метода сокрытия UIN'а от спамеров - то, что в набирающем популярность альтернативном клиенте «аськи», программе QIP для хранения номеров зачем-то используются переменные длиной 8 байт, что исключает переполнение. Соответственно, если пробовать искать модифицированный номер QIP'ом, вы ничего не найдете... А в альтернативном ICQ-клиенте Miranda, например, проблем с «десятизнаками» не возникает, там тоже UIN'ы хранятся в четырехбайтных переменных.
рубрики: FAQ
Коптящий_Небо (19 авг 2007г, 18:49) #
У меня &RQ стоит, - там с десятизначными номерами тоже никаких проблем не возникает, хотя QiP был сделан по образу и подобию &RQ. В любом случае - интересная статья, буду знать! :)

LI 7.05.22
Илиарт (30 мар 2009г, 13:21) #
Странно, у меня мой номер много где указан и спамеры не мучуют :)
V.exeR (30 мар 2009г, 14:05) #
u173 Илиарт: а ты сколько в Интернете лет? ;)
Илиарт (30 мар 2009г, 18:36) #
в сентябре будет 10
Witch_you (19 сен 2010г, 21:07) #
СТранно что-то, но qip не находит тебя в поиске
V.exeR (19 сен 2010г, 23:06) #
u1081 Witch_you: ну я же и пишу - «в ... программе QIP для хранения номеров зачем-то используются переменные длиной 8 байт, что исключает переполнение». То есть как раз объясняю, почему QIP меня не находит в таком виде.