Верх страницы
Обложка к записи Десятизначные ICQ-номера
Время для прочтения: 0 мин. 5 сек.

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

Прочитав заголовок статьи, вы решили что это опечатка. Вовсе нет. Десятизначные ICQ-номера бывают. Объясню почему.

«Честный» номер у меня девятизначный. Начинается с двойки. Но для публикации в интернете я использую его «скрытую» форму. Указанный на сайте «десятизнак» — не совсем документированные функции ICQ.

Дело в том, что в «родном» ICQ-клиенте для хранения UIN’а используется четырехбайтная переменная, максимальным значением которой может быть число 4294967295. В двоичном виде это выглядит так:

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

Произошло «переполнение» переменной. В самой переменной остался… Ноль. А «лишний» бит, не умещавшийся в переменной, просто из нее «выпал».

Таким образом, если мы попробуем искать в ICQ номер 4294967296, это будет равносильно поиску номера 0. И если к любому номеру прибавить эти самое «лишнее» число 4294967296, мы получим так называемый «скрытый» номер. При добавлении в контакт-лист он все равно преобразуется в нормальный из-за «отсыхания» старшего, «лишнего» бита числа.

Зачем это нужно? А вас по ICQ спамеры не достают? Нет? Вам повезло, наверное вы нигде в интернете не указываете свой номер. Когда спамерский скрипт находит ваш UIN, указанный на каком-нибудь форуме, он первым делом пытается осведомиться у главного ICQ-сервера, есть ли такой номер. И если он модифицирован по указанной мной схеме, то понятное дело, сервер ответит что таких больших номеров у него отродясь не водилось.

А когда этот же номер вобъет в свою «аську» обычный пользователь, то номер приведется к стандартному виду автоматически, еще до запроса серверу, из-за описанного переполнения переменной.

Минусом данного метода является его не работоспособность в ICQ-клиенте QIP, который для хранения номеров используются переменные длиной 8 байт, что исключает переполнение.

В большинстве альтернативных клиентах под Windows и Linux ICQ-номерок хранится именно в четырехбайтной переменной, позволяя нам использовать скрытые номера.

Источник: Блог Vexer’a

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

4 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Nayjest
14 лет назад

QIP конечно портит картину, а ведь он очень распространен у нас.
Когда-то хотел себе набрутить номерков, имеющих красивые десятизначные номера, но потом решил, что мне и моего шестизначного хватает 🙂

Prohor
13 лет назад

а при чем сдесь 4значные номера?

Предыдущая запись
Следующая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы