Секреты ICQ - Хитрости

Хитрости

Обход авторизации и извещения о добавлении
Наверное, каждый из вас задавался вопросом - можно ли добавить пользователя ICQ так, чтобы ему об этом не приходило вообще никаких извещений? Ниже приведён самый простой способ сделать это.
По поиску находим жертву (того, чей UIN вы хотели бы видеть в своём контакт листе), после этого уводим асю в оффлайн. Из оффлайна добавляем жертву в контакт лист и всё! Этот способ проходит не только в 2000 асе, но и в 99 и даже в 98.
Набор dll-библоитек для обхода авторизации доступен на icq.vsochi.com.

User IP - 0.0.0.0. (Direct Connection)
ICQ имеет возможность для ускорения передачи информации устанавливать соединение с другими клиентами напрямую, не используя сервер. Возможность, задумывавшаяся для благих целей, превратилась в последствии в одну из самых больших прорех в защите. Мало того, что любому Вашему собеседнику становится виден Ваш IP, так называемое "Прямое соединении" (Direct Connection) открывает простой путь к осуществлению так называемого "спуфинга" (Spoofing) - то есть подмены UIN отправителя сообщения, а также бомбардировке - "флуду" (flood) клиента множеством бессмысленных сообщений с якобы различных UIN, делающих невозможной нормальную работу клиента. Вообще говоря, отключение показа IP является стандартной, документированной возможностью ICQ, но поскольку по умолчанию прямое соединение разрешено, для многих нули в IP оказываются настоящим открытием. Итак:

ICQ > Security & Privacy > Direct Connection > Allow Direct Connecting with any user ICQ upon your authorization
Внимание : работает только для ICQ 2000-2001!

"Скрытое" поле Primary Mail
Сервис отправки пароля от UIN на электронную почту построен таким образом, что отправка возможна только на адрес, указанный в поле Primary Mail. Специально для этого в клиенте предусмотрена возможность скрыть это поле от чужих глаз, дабы использовать его ТОЛЬКО в целях получения пароля. Однако, обойти это очень просто! Копируем в буфер обмена Sec.Email и вставляем в строку поиска UIN по e-mail. Сервер выдаёт вам ваш желанный UIN, но в разделе e-mail у него уже будет не секондари, а примари мыло. Вот так.
Аналогичная ситуация и с удалённым Primary mail. Если сначала там был прописан какой-либо адрес, а потом стёрт, то UIN всё равно будет найден при запросе на поиск по данному почтовому адресу. Чтобы этого избежать нужно ОБЯЗАТЕЛЬНО прописать там новый адрес Либо не адрес, а любую строчку символов, главное - не оставлять поле пустым.

Возможность поиска коротких номеров.
ICQ, в оригинальном её виде, не позволяет искать короткие номера ICQ, например - однозначные. "Исправленный" вариант библиотеки ICQSearc.dll build 3281

Многострочные пароли тоже не предусмотрены в оригинальной версии ICQ.
"Исправленный" вариант библиотеки для билда 3281

Аська и реестр. Запускаем несколько копий аськи, убираем ограничение на число пользователей.
Оказывается, никаких программных средств не нужно, чтобы сделать возможным запуск нескольких копий ICQ одновременно! Обычно большинство считает, что тут какая-то хитрость, я даже видел несколько программ для этого =) Всё очень просто. Запускаем regedit.exe и идём сюда HKEY_CURRENT_USER\Software\Mirabilis\ICQ\DefaultPrefs Создаём строчный параметр MultiInstance и присваиваем ему значение Yes. После этого уже можно щёлкать по цветочку и наблюдать запуск аськи номер два…и три… и четыре… пока ресурсов хватает. Только приготовьтесь к тому, что первая аська вылетит из онлайна с сообщением, что номер используется на другом компьютере.
Теперь снимаем ограничение на количество пользователей аськи на локальной машине. Тоже самое. Идём туда же HKEY_CURRENT_USER\Software\Mirabilis\ICQ\DefaultPrefs Делаем параметр OwnersNoLimit, который тоже Yes.
Есть ещё такая штука, как Auto Update, которому теперь уже надо сказать No, правда, я толком не разбирался, что за апдейт она отключает, но, скорее всего, это что-то связанное с рекламой.
Для совсем ленивых, как я, предлагается автоматический вариант тех же действий. Создаём файл Asya.reg, открываем его блокнотом и записываем туда следующее:

REGEDIT4
[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\DefaultPrefs]
"MultiInstance"="Yes"
"Auto Update"="No"
"OwnersNoLimit"="Yes"
сохраняем и щёлкаем на нем мышкой! Готово. Кроме этого, в реестре хранятся описания зарегистрированных пользователей на локальной машине и номер (last owner), который будет активным по умолчанию, когда аська стартует.

Country Unknown
Загляните в свои Details в аське. Есть там среди всего прочего поле, которое называется Country (Страна наша родная). И список выпадающий: от незаполненного поля до Зимбабве. Так вот оказывается, это далеко не полный перечень стран, которые можно там прописать. Если верить одной доке, которую я уже не помню, откуда взял (возможно, с headstrong.de ) поля страны в DAT-файле кодируются следующим образом:

1 = USA
7 = Russia
41 = Switzerland
42 = Czech Republic
850 = Korea (North)
852 = Hong Kong
853 = Macau
855 = Cambodia
856 = Laos
870 = INMARSAT
871 = INMARSAT (Atlantic-East)
872 = INMARSAT (Pacific)
873 = INMARSAT (Indian)
874 = INMARSAT (Atlantic-West)
880 = Bangladesh
886 = Taiwan, Republic of China
960 = Maldives
966 = Saudi Arabia
967 = Yemen
968 = Oman
971 = United Arab Emirates
972 = Israel
973 = Bahrain
5901 = French Antilles
6101 = Cocos-Keeling Islands
6701 = Rota Island
6702 = Tinian Island
6721 = Australian Antarctic Territory
6722 = Norfolk Island
9999 = Unknown
else = (not entered) // ICQ использует 0
Полный список смотрите здесь.
Этот документ, вообще говоря, писался про 99а и 99б версии, но кое-что, в частности, Unknown, работает и в 2001.
Итак, алгоритм.
Как всегда, нам понадобится HEX-редактор.
Делаем копию подопытного ДАТа.
Запускаем аську, идём в наши Details, находим страну (их там две: Home и Work), меняем на что-нибудь аутентичное, чтоб больше ни у кого из вашего контактного списка такого не было прописано, например, Yemen (код 967).
Страны кодируются в ДАТ-файле одним словом - т.е. двумя байтами. Переводим десятичное 967 в шестнадцатеричное 0x3C7. Раз это слово, дополняем его слева нулём - 03C7. Теперь вспоминаем, что память IBMPC совместимых машин хранит слова в обратном порядке, и получаем строчку, которую нам предстоит найти в ДАТе. Это C703.
Такое же преобразование с кодом Unknown=9999 и получаем 0F27.
Открываем наш ДАТ. Ищем слово C703. Оно должно быть в обрамлении строк HomeCountry и HomeFax. Заменяем его на 0F27. Такую операцию нужно повторить дважды, соответственно для Home и Work Country. Вот как это выглядело у меня:
486F6D65436F756E7472790067C7030800486F6D65466178
меняем на
486F6D65436F756E74727900670F270800486F6D65466178
Всё. Если исходная последовательность больше нигде не встречается, то сохраняем ДАТ, запускаем аську и смотрим на результат.
Если же оно встретилось больше двух раз, то можно либо поставить другую страну на первом шаге, либо действовать методом тыка, благо копия файла у нас осталась.
Выходим в онлайн, обновляем данные на сервер. Готово.