Утилита KeyCheck 1.0 для проверки ключей

25.09.2008

Утилита предназначена для составления списков ключей Windows XP и последующей их проверки на пригодность для установки и проверки подлинности.

Screenshot:%20%20keycheck%201.0.0.5

Составление списков.

В список добавляются только те ключи, которые соответствуют формату, и так же исключаются дублирование ключей. Если добавляемый ключ уже есть в списке, то он не добавляется повторно.

Формат ключей: пять групп по пять символов, разделённые дефисами. Символы могут быть только из этого набора: BCDFGHJKMPQRTVWXY2346789

  1. Ввод ключа.
    Если он соответствует формату, то становится активной кнопка "Добавить". При нажатии на неё делается попытка добавить ключ в список. Уже существующий в списке ключ не добавляется. В поле слева отображается информация об общем количестве ключей в списке и число добавленных ключей при последней попытке. 12 (+1) означает, что в списке 12 ключей, и один ключ был добавлен.
     
  2. Генерация списка ключей.
    Если, например, наклейка с ключом повреждена, и один символ невозможно определить, то в поле ключа нужно ввести ключ, а вместо поврежденного символа *. В этом случае станет активна кнопка "Генератор". При её нажатии будет сформирован и добавлен список ключей, где вместо * будут все допустимые символы. Для одного такого символа получится список из 24 ключей. Максимально допустимое число символов замещения * в ключе - 4. В этом случае список уже получится очень большим - 24 в степени 4 = 331776 ключей, и ждать придется долго. Кроме этого, все ключи за исключением одного не пройдут проверку. Поэтому рекомендуется это действие совершать отдельно, т.е. пустой (не заполненный другими ключами) список заполнить генератором, и выполнить проверку, отсеяв один-единственный ключ.
     
  3. Добавление ключей из текстового файла.
    Кнопкой "Открыть" выбирается текстовый файл со списком ключей. Файл разбивается на отдельные строки. Если строка начинается с ключа, то он будет добавлен в список. Строки не содержащих ключ игнорируются, так же игнорируется всё что находится после ключа до конца строки.
     
  4. Удаление.
    Список ключей очищается от всех выделенных ключей.
     
  5. Копирование.
    Все выделенные ключи копируются в буфер обмена.
     
  6. Проверка.
    Переход к следующему этапу - составлению списков pidgen-ов и проверке ключей.
     

Проверка списка ключей.

Проверка осуществляется с помощью динамически подключаемой библиотеки pidgen.dll. Она находится в папке I386 на дистрибутивном диске, или в папке %SYSTEMROOT%\system32\ уже установленной системы. Эта библиотека имеет отличия в разных редакциях Windows. Перед проверкой необходимо составить список pidgen-ов, которыми будут проверять ключи. Каждый ключ будет проверен каждым pidgen-ом. При положительном результате проверке ключ будет записан в соответствующий файл (RETAIL.N.txt или OEM.N.txt), расположенный в той же папке, что и pidgen. Поэтому (ВАЖНО!), чтобы папки с pidgen-ами были расположены на жестком диске (на CD не получиться сохранить список проверенных ключей). Таким образом, можно сначала собрать все ключи в одну большую кучу, а затем растасовать их по принадлежности к pidgen-ам.

  1. Добавление в список.
    Выбранный pidgen добавляется с список, если он ещё отсутствует. Слева выводится информация о его версии и идентификаторы BINK.
     
  2. Удаление из списка.
    Выбранный pidgen удаляется из списка.
     
  3. Тест.
    Запуск/остановка процедуры проверки. Если включена опция "Проверять подлинность", то для остановки процедуры проверки используйте только это средство. Не закрывайте окно до остановки процедуры проверки, и тем более, не завершайте работу приложения насильственным образом. Иначе в реестре останется изменённая информация, которую восстановить будет достаточно сложно.
     

Немного о pidgen-ах: Pidgen.dll имеет два криптографических ресурса BINK. (Похоже, название образовалось из Binary key). BINK_1 используется для проверки RETAIL ключей, BINK_2 - для OEM ключей. Эти ресурсы отличаются для разных редакций Windows, и имеют определённые идентификаторы. По ним можно ориентироваться на принадлежность pidgen-а к той или иной редакции Windows. Прошедшие проверку ключи будут записаны в рПосле проверки в списках RETAIL.N.txt будут только ключи прошедшие проверку BINK_1, в OEM.N.txt - BINK_2. Для корпоративных версий (Volume Licence Key, сокращенно VL, VLK) проверка проводится аналогично RETAIL ключам, с помощью BINK_1. Сами криптографические ключи отличаются, и имеют, соответственно, другие идентификаторы. Списки проверенных ключей будут иметь такие же названия (RETAIL.N.txt, OEM.N.txt). Имейте это ввиду, чтобы названия не вводили вас в заблуждение. Кроме этого, для VLK pidgen-а OEM.N.txt всегда будет пустым.

Проверка подлинности.

Кроме проверки ключей на пригодности для установки можно включить опцию проверки подлинности ключа. Но при этом время проверки значительно увеличится.

Для проверки подлинности ключа используется Windows Genuine Advantage (KB892130). Поэтому, если он не установлен, то опция будет отключена. Результаты проверки скорее всего могут отличаться, в случаях если WGA имеет связь с сервером mpa.one.microsoft.com, и если таковой связи нет. Это происходит по следующим причинам. WGA во время проверки собирает информацию о системе, установленном ключе, конфигурации компьютера и отправляет это всё на сервер mpa.one.microsoft.com (коммерческий шпионаж в чистом виде), с него получает ответ о результате, что за ключ, был ли он продан, кому, заблокирован или нет, и пр. Так что шансов получить отрицательный ответ достаточно много. Если связь с сервером заблокирована, то WGA может ориентироваться только на собственный встроенный черный список заблокированных ключей. И, соответственно, больше шансов, что ключ не будет опознан как не подлинный. И вообще, лучше забанить шпионский сервер навсегда.

Блокировка mpa.one.microsoft.com реализована достаточно просто. В файл "%SYSTEMROOT%\system32\drivers\etc\hosts" дописывается строка

127.0.0.1 mpa.one.microsoft.com

Тем самым для локальной службы DNS предопределяется IP адрес сервера (настоящий IP=131.107.115.40). 127.0.0.1 - это адрес локального компьютера (т.е. вашего). Поэтому все запросы к серверу mpa.one.microsoft.com будет принимать ваш компьютер. А так как на нем не установлены шпионские службы, то эти запросы останутся без ответа. Информация никуда не утечет, и вопрос определения подлинности WGA придется решать самостоятельно.

Скачать утилиту можно здесь